UNPKG

830 BJavaScriptView Raw
1export function rotateRzRyRx(po, angles){
2
3 var rc = angles.rotateCenter;
4
5 po.x -= rc[0];
6 po.y -= rc[1];
7 po.z -= rc[2];
8
9 var rz = rotateZ(po, angles.z);
10 var ry = rotateY(rz, angles.y);
11 var rx = rotateX(ry, angles.x);
12
13 rx.x += rc[0];
14 rx.y += rc[1];
15 rx.z += rc[2];
16
17 return rx;
18}
19
20function rotateX(p, a){
21 var sa = Math.sin(a), ca = Math.cos(a);
22 return {
23 x: p.x,
24 y: p.y * ca - p.z * sa,
25 z: p.y * sa + p.z * ca
26 };
27}
28
29function rotateY(p, a){
30 var sa = Math.sin(a), ca = Math.cos(a);
31 return {
32 x: p.z * sa + p.x * ca,
33 y: p.y,
34 z: p.z * ca - p.x * sa
35 };
36}
37
38function rotateZ(p, a){
39 var sa = Math.sin(a), ca = Math.cos(a);
40 return {
41 x: p.x * ca - p.y * sa,
42 y: p.x * sa + p.y * ca,
43 z: p.z
44 };
45}