// Задача: Направете топките да се движат в // паралелепипед, като рикошират от стените и // са подвластни на гравитацията. var renderer = new THREE.WebGLRenderer({antialias:true}); renderer.setSize( window.innerWidth, window.innerHeight ); renderer.setAnimationLoop( drawFrame ); document.body.appendChild( renderer.domElement ); renderer.shadowMap.enabled = true; renderer.shadowMap.type = THREE.PCFSoftShadowMap; var scene = new THREE.Scene(); scene.background = new THREE.Color( 'skyblue' ); var aspect = window.innerWidth/window.innerHeight; var camera = new THREE.PerspectiveCamera( 30, aspect ); camera.position.set( 0, 60, 300 ); camera.lookAt( new THREE.Vector3( 0, -10, 0 ) ); // брой топчета var n = 10; var balls = []; // топчета за движене, случайната начална скорост // е вградена в топчето (това е полето v) for( var i=0; i= maxX ) { v.x = -v.x; p.x = maxX-(p.x-maxX); } // if( p.x <= minX ) { v.x = -v.x; p.x = minX-(p.x-minX); } // // if( p.z >= maxZ ) { v.z = -v.z; p.z = maxZ-(p.z-maxZ); } // if( p.z <= minZ ) { v.z = -v.z; p.z = minZ-(p.z-minZ); } } renderer.render( scene, camera ); }