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,...