Published
Edited
Sep 11, 2018
1 fork
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
delta = {
let delta = [];
for(let i = 0; i<mov.length-1;++i) {
let C0 = new THREE.Vector3(mov[i].x0,mov[i].y0,mov[i].z0);
let B0 = new THREE.Vector3(mov[i].x1,mov[i].y1,mov[i].z1);
let A0 = new THREE.Vector3(mov[i].x2,mov[i].y2,mov[i].z2);
let C1 = new THREE.Vector3(mov[i+1].x0,mov[i+1].y0,mov[i+1].z0);
let B1 = new THREE.Vector3(mov[i+1].x1,mov[i+1].y1,mov[i+1].z1);
let A1 = new THREE.Vector3(mov[i+1].x2,mov[i+1].y2,mov[i+1].z2);
let u0 = B0.sub(C0);
let v0 = A0.sub(B0);
let u1 = B1.sub(C1);
let v1 = A1.sub(B1);
let u0n = u0.clone().normalize();
let u1n = u1.clone().normalize();
let q = new THREE.Quaternion();
q.setFromUnitVectors(u0n,u1n);
let alpha = (Math.PI-u1.angleTo(v1))-(Math.PI-u0.angleTo(v0));
let beta = orientedAngle(v0.clone().applyQuaternion(q),v1.clone(),u1n);
delta.push( {rot: q, alpha: alpha, beta: beta} );
}
return delta;
}
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more