Center of Dilation

by sirfizx

HTML

<script src="http://andrewray.me/threejs-examples/font-example/js/janda_manatee_solid_regular.typeface.js"></script>

CSS

body {
    overflow: hidden;
    background-color: #ccccff;
}

JavaScript

var camera, scene, renderer, ambientLight, directionalLight;
var geometry;
var material; 
var mesh;
var v1i,v2i,v3i;
var v1, v2, v3;
var d1,d2,d3;
var poc;
var ttc;
var elapsedTime;
var clock;

init();
animate();

function init() {

    // SCENE
    scene = new THREE.Scene();

    // CAMERA
    camera = new THREE.PerspectiveCamera
                 (50, //Field of View Angle
                  window.innerWidth / window.innerHeight,//Aspect Ratio
                  1,//Near clipping plane
                  10000);//Far clipping plane
    camera.position.set(0, 65, 100);
    camera.lookAt(scene.position);

    // LIGHTs
    ambientLight = new THREE.AmbientLight(0x101010);
    scene.add(ambientLight);
    directionalLight = new THREE.DirectionalLight(0xffffff);
    directionalLight.position = camera.position;
    scene.add(directionalLight);
    
    // POINT OF CONVERGENCE
    poc = new THREE.Vector3(-30,30,0);
    
    // TIME TO CONVERGE
    ttc = 0.5; // 0.5 seconds to converge
    
    // GEOMETRY
    geometry = new THREE.Geometry();
    v1i = new THREE.Vector3(-50, 0, 0); 
    v2i = new THREE.Vector3(0, 50, 0);
    v3i = new THREE.Vector3(50, 0, 0);
    v1 = v1i;
    v2 = v2i;
    v3 = v3i;
    d1 = new THREE.Vector3();
    d2 = new THREE.Vector3();
    d3 = new THREE.Vector3();
    //console.log(d2.sub(poc,v2));
    d1.sub(poc,v1);
    d2.sub(poc,v2);
    d3.sub(poc,v3);

    geometry.vertices.push(v1);
    geometry.vertices.push(v2);
    geometry.vertices.push(v3);

    geometry.faces.push(new THREE.Face3(0, 1, 2));
    geometry.computeFaceNormals();
    

    // MATERIAL
    material = new THREE.MeshLambertMaterial({
        color: 0xff0000,
        shading: THREE.FlatShading 
    });
    material.side = THREE.DoubleSide;
    //material.side = THREE.FrontSide;

    // MESH
    mesh = new THREE.Mesh(geometry, material);

    scene.add(mesh);

    // RENDERER
    renderer = new THREE.CanvasRenderer();
    renderer.setSize(window.innerWidth,...