baseball collision test
by Alan Lin
HTML
<div id="info">Baseball demo
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r78/three.min.js"></script>
<script src="https://dl.dropboxusercontent.com/u/3587259/Code/Threejs/OrbitControls.js"></script>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://jyunming-chen.github.io/tutsplus/js/KeyboardState.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/dat-gui/0.5.1/dat.gui.min.js"></script>
CSS
#info {
position: absolute;
top: 2%;
width: 100%;
padding: 10px;
text-align: center;
color: #ffff00
}
body {
overflow: hidden;
}
JavaScript
var scene, renderer, camera;
var controls;
var keyboard = new KeyboardState();
var clock = new THREE.Clock();
var clock2 = new THREE.Clock();
var swing = false, turn2 = true ;
var period = 0.5;
var long = 0 , v0 = 0;
var ball0,ball1;
var batR = 0.5, batH = 10;
var ballr = 0.7;
var hitturn = false , hitting;
var ss = 0, s;
var pos ,vel,force;
var ball0 = new THREE.Vector3(), ball0trans = new THREE.Vector3();
var ball1 = new THREE.Vector3(), ball1trans = new THREE.Vector3();
var pt, turnover, x,y,z;
init();
animate();
function onDocumentMouseDown(event) {
event.preventDefault();
if ( event.button === 0){ // left button
swing = true;
clock.start();
}
if ( swing === true && event.button === 2){ // roller
swing = false;
turn2 = true;
clock = new THREE.Clock();
hitturn = false;
}
}
var batpose1= {
batorigin_Y: -Math.PI/2,
batorigin_Z: -Math.PI/2
};
var batpose2= {
batorigin_Y: -Math.PI/3,
batorigin_Z: -Math.PI/2
};
var batpose3= {
batorigin_Y: -Math.PI/5,
batorigin_Z: -Math.PI/2
};
var batpose4= {
batorigin_Y: 0.0,
batorigin_Z: -Math.PI/2
};
var batpose5= {
batorigin_Y: Math.PI/10,
batorigin_Z: -Math.PI/2
};
var batpose6= {
batorigin_Y: Math.PI/4,
batorigin_Z: -Math.PI/2
};
var batpose7= {
batorigin_Y: Math.PI/2.5,
batorigin_Z: -Math.PI/2
};
var batpose8= {
batorigin_Y: Math.PI/2,
batorigin_Z: -Math.PI/2
};
var batpose9= {
batorigin_Y: Math.PI/1.5,
batorigin_Z: -Math.PI/2
};
var key = [ {s: 0,pose: batpose1},
{s: 0.2,pose: batpose2},
{s: 0.3,pose: batpose3},
{s: 0.4,pose: batpose4},
{s: 0.5,pose: batpose5},
{s: 0.6,pose: batpose6},
{s: 0.7,pose: batpose7},
{s: 0.8,pose: batpose8},
{s: 1,pose: batpose9},
];
function init() {
//主頁面
scene = new THREE.Scene();
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth,...