hw2 helper

drop

by Rebecca Chen

HTML

<div id="info">Bounce & Contact
<br>left button to restart
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.min.js"></script>

CSS

#info {
  position: absolute;
  top: 0px;
  width: 100%;
  padding: 10px;
  text-align: center;
  color: #ffff00
}

body {
  overflow: hidden;
}

JavaScript

var camera, scene, renderer;
var pos, vel, force;
var m = 1;
var clock = new THREE.Clock();
var ballR = 5; 
init();
animate();
var planeNormal0 = new THREE.Vector3(2,5,0).normalize();
var planeNormal1 = new THREE.Vector3(0,1,0);
var planeNormal2 = new THREE.Vector3(-1,1,0).normalize();
var planeNormal = new THREE.Vector3();

function buildTrapezoid (points, material) {
	var geometry = new THREE.Geometry();
	for (var i = 0; i < 4; i++) 
		geometry.vertices.push (new THREE.Vector3(points[i][0], points[i][1],0));
  var face = new THREE.Face3(0,1,3);
  geometry.faces.push (face);
  var face = new THREE.Face3(1,2,3);
  geometry.faces.push (face);
  geometry.computeBoundingSphere();
  geometry.computeFaceNormals();
  geometry.computeVertexNormals();
  return new THREE.Mesh (geometry, material);
}

function height(x) {
	if (x < 0)
  	return -0.4*(x+50);
  else if (x < 20)
  	return -20;
  else 
  	return -20+(x-20);
}
function init() {
    renderer = new THREE.WebGLRenderer({
      antialias: true
    });
	
  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.setClearColor(0x888888);
  document.body.appendChild(renderer.domElement);

  scene = new THREE.Scene();
  camera = new THREE.OrthographicCamera(-50, 50, 50, -50, -10, 100);
  camera.position.z = 10;
  scene.add(camera);

  ////////////////////////////////////////////////////////////////////////////////////////////
	/*
  var floor = new THREE.Mesh (new THREE.PlaneGeometry(100,50), new THREE.MeshBasicMaterial({color:0xff1234}));
  floor.position.set (-40,-50,0);
  scene.add (floor);
  */
  
  var floorMat = new THREE.MeshBasicMaterial();
  var f0 = buildTrapezoid ([[-50,0],[-50,-50],[0,-50],[0,-20]], floorMat);
  scene.add (f0);
  f0 = buildTrapezoid ([[0,-20],[0,-50],[20,-50],[20,-20]], floorMat);
  scene.add (f0);
  f0 = buildTrapezoid ([[20,-20],[20,-50],[50,-50],[50,10]], floorMat);
  scene.add (f0);
  
  
  ball = new THREE.Mesh (new THREE.CircleGeometry(ballR,20), new...