import React from 'react' import ReactDOM from 'react-dom' import FractalTreeBranch from './FractalTreeBranch' // The height and width of the entire window const { innerHeight, innerWidth } = window // Store the current mouse position let mousePosition = { x: innerWidth / 2, y: innerHeight / 2, } function renderFrame() { // Compute "lean" and "sprout" based on time and current mouse position let time = Date.now() let fromHorizontalCenter = (innerWidth / 2 - mousePosition.x) / innerWidth let fromVerticalCenter = (innerHeight / 2 - mousePosition.y) / innerHeight let lean = 0.03 * Math.sin(time / 2000) + fromHorizontalCenter / 4 let sprout = 0.3 + 0.05 * Math.sin(time / 1300) + fromVerticalCenter / 5 - 0.2 * Math.abs(0.5 - fromHorizontalCenter / 2) ReactDOM.render( <div style={{ position: 'absolute', top: 0, left: 0, bottom: 0, right: 0, overflow: 'hidden', }}> <FractalTreeBranch lean={lean} size={150} sprout={sprout} /> </div>, document.getElementById('root'), ) // Schedule another frame window.requestAnimationFrame(renderFrame) } // Render the first frame renderFrame()