three.js dev template
by realhunts
HTML
<script src="https://rawgit.com/mrdoob/three.js/dev/build/three.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
CSS
body {
background-color: #000;
margin: 0px;
overflow: hidden;
}
JavaScript
// Simple three.js example
var renderer, scene, camera, controls, alpha, boxMesh, curve, startTime;
init();
animate();
function init() {
// renderer
renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set(0, 0, 40);
// controls
controls = new THREE.OrbitControls(camera, renderer.domElement);
var path = new THREE.Path();
curve = new THREE.CatmullRomCurve3( [
new THREE.Vector3( -10, 0, 10 ),
new THREE.Vector3( -5, 5, 5 ),
new THREE.Vector3( 0, 0, 0 ),
new THREE.Vector3( 5, -5, 5 ),
new THREE.Vector3( 10, 0, 10 )
] );
var points = curve.getPoints( 50 );
var geometry = new THREE.BufferGeometry().setFromPoints( points );
var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
// Create the final object to add to the scene
var curveObject = new THREE.Line( geometry, material );
var boxGeo = new THREE.BoxGeometry( 1, 1, 1 );
boxMesh = new THREE.Mesh(boxGeo);
boxMesh.position.copy(curve.getPoint(0));
console.log(Math.floor(2.45) - 2.45);
console.log(new Date().getTime());
scene.add(curveObject,boxMesh);
startTime = new Date().getTime();
}
function animate() {
requestAnimationFrame( animate );
var time = (new Date().getTime() - startTime)/2000;
alpha = -(Math.floor(time) - time);
curve.getPoint( alpha, boxMesh.position );
renderer.render( scene, camera );
}