HW5
by k6e2n0t12
HTML
<div id="info">HW5</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeric/1.2.6/numeric.min.js"></script>
</div>
<button id="bttn" class="buttonClass" onclick="javascript:button_click()">reset</button>
CSS
#info {
position: absolute;
width: 100%;
padding: 10px;
text-align: center;
color: #ffff00
}
.buttonClass {
position: absolute;
//top:100px;
//right:400px;
margin:5px;
}
body {
overflow: hidden;
}
JavaScript
var camera, scene, renderer, border;
var mouse = new THREE.Vector2();
var input = [
[, ], //1
[, ], //2
[, ], //3
[, ], //4
[, ], //5
[, ], //6
[, ], //7
[, ], //8
[, ], //9
[, ]
]; //10
//var input= [[2.5,2.4 ],[0.5,0.7 ],[2.2,2.9 ],[1.9,2.2 ],[3.1,3.0 ],[2.3,2.7 ],[2,1.6 ],[1,1.1 ],[1.5,1.6 ],[1.1,0.9 ]];//for test
var dots;
var worldxmaxymax=[,],worldxmaxymin=[,],worldxminymax=[,],worldxminymin=[,];
init();
animate();
makeNewInput();
function init() {
scene = new THREE.Scene();
camera = new THREE.OrthographicCamera(-50, 50, 50, -50, -10, 10);
camera.position.z = 10;
scene.add(camera);
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0x888888);
document.body.appendChild(renderer.domElement);
window.addEventListener('resize', onWindowResize, false);
window.addEventListener('mousedown', onDocumentMouseDown, false);
makeNewInput();
findOBB();
drawOBB();
}
function makeNewInput() {
for (var c = 0; c < input.length; c++) {
input[c] = [(Math.random() * 100 - 50)/3, (Math.random() * 100 - 50)/3];
}
}
function onDocumentMouseDown(event) {
event.preventDefault();
mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
console.log(mouse.x * 50 + ', ' + mouse.y * 50);
}
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
}
function findOBB() {
var mean=[0,0];
for (var c = 0; c < input.length; c++) {
mean[0]=mean[0]+input[c][0];
mean[1]=mean[1]+input[c][1];
console.log("input["+c+"][0]"+input[c][0]);
}
mean[0]=mean[0]/input.length;
mean[1]=mean[1]/input.length;
//console.log("mean"+mean[0]);
//step1
var local= [[, ],[, ],[, ],[, ],[, ],[, ],[, ],[, ],[, ],[, ]];
for (var c = 0; c < input.length; c++) {
...