collisionTest
by jason870509
HTML
<div id="normal">normalVector</div>
<script src="https://threejs.org/build/three.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js">
</script>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
CSS
#normal {
position: absolute;
top: 2%;
width: 100%;
padding: 10px;
color: #000000
}
body {
overflow: hidden
}
JavaScript
var renderer, scene, camera;
var controls;
var circle
var mouse = new THREE.Vector2();
var pickables = [];
var rec, mat1, mat2, raycaster, R
class Box2 {
constructor() {
this.max = new THREE.Vector3()
this.min = new THREE.Vector3()
}
}
init();
animate();
//r = box2 c = vector3
function check_Intersection(r, c, rad) {
var rad2 = rad * rad
r.max.x -= c.x
r.max.y -= c.y
r.min.x -= c.x
r.min.y -= c.y
console.log(r)
if (r.max.x < 0) {
if (r.max.y < 0) { //left down 1
if (((r.max.x * r.max.x + r.max.y * r.max.y) < rad2))
return 1
return 0
//return ((r.max.x * r.max.x + r.max.y * r.max.y) < rad2)
} else if (r.min.y > 0) { //left up 2
if (((r.max.x * r.max.x + r.min.y * r.min.y) < rad2))
return 2
return 0
//return ((r.max.x * r.max.x + r.min.y * r.min.y) < rad2)
} else { //left 3
if ((Math.abs(r.max.x) < rad))
return 3
return 0
//return (Math.abs(r.max.x) < rad)
}
} else if (r.min.x > 0) {
if (r.max.y < 0) { //right down 4
if (((r.min.x * r.min.x + r.max.y * r.max.y) < rad2))
return 4
return 0
//return ((r.min.x * r.min.x + r.max.y * r.max.y) < rad2)
} else if (r.min.y > 0) { //right up 5
if (((r.min.x * r.min.x + r.min.y * r.min.y) < rad2))
return 5
return 0
//return ((r.min.x * r.min.x + r.min.y * r.min.y) < rad2)
} else { //right 6
if ((r.min.x < rad))
return 6
return 0
//return (r.min.x < rad)
}
} else {
if (r.max.y < 0) { //center down 7
if ((Math.abs(r.max.y) < rad))
return 7
return 0
//return (Math.abs(r.max.y) < rad)
} else if (r.min.y > 0) { //center up 8
if ((r.min.y < rad))
return 8
return 0
//return (r.min.y < rad)
} else //center
return 9
//return true
}
}
function coordinateOrigin(recMesh, r, c, rad) {
r.max.x = 10 / 2
r.max.y = 20 / 2
r.min.x =...