return force;
},
hook: function(velocity, anchor, rest_length, k) {
var force = velocity.clone().sub(anchor);
var distance = force.length() - rest_length;
force.normalize();
force.multiplyScalar(-1 * k * distance);
return force;
}
};
module.exports = exports;
},{}],5:[function(require,module,exports){
var Util = require(‘./util’);
var exports = function(){
var HemiLight = function() {
this.rad1 = Util.getRadian(60);
this.rad2 = Util.getRadian(30);
this.range = 1000;
this.hex1 = 0xffffff;
this.hex2 = 0x333333;
this.intensity = 1;
this.obj;
};
HemiLight.prototype = {
init: function(hex1, hex2) {
if (hex1) this.hex1 = hex1;
if (hex2) this.hex2 = hex2;
this.obj = new THREE.HemisphereLight(this.hex1, this.hex2, this.intensity);
this.setPosition();
},
setPosition: function() {
var points = Util.getSpherical(this.rad1, this.rad2, this.range);
this.obj.position.set(points[0], points[1], points[2]);
}
};
return HemiLight;
};
module.exports = exports();
},{“./util”:8}],6:[function(require,module,exports){
var Util = require(‘./Util’);
var debounce = require(‘./debounce’);
var Camera = require(‘./camera’);
var HemiLight = require(‘./hemiLight’);
var Mover = require(‘./mover’);
var body_width = document.body.clientWidth;
var body_height = document.body.clientHeight;
var last_time_activate = Date.now();
var canvas = null;
var renderer = null;
var scene = null;
var camera = null;
var light = null;
var movers_num = 10000;
var movers = [];
var points_geometry = null;
var points_material = null;
var points = null;
var textplate_geometry = null;
var textplate_material = null;
var textplate = null;
var antigravity = new THREE.Vector3(0, 30, 0);
var initThree = function() {
canvas = document.getElementById(‘canvas’);
renderer = new THREE.WebGLRenderer({
antialia