UNPKG

d3-3d

Version:

D3.js plugin for 3d visualization

46 lines (37 loc) 830 B
export function rotateRzRyRx(po, angles){ var rc = angles.rotateCenter; po.x -= rc[0]; po.y -= rc[1]; po.z -= rc[2]; var rz = rotateZ(po, angles.z); var ry = rotateY(rz, angles.y); var rx = rotateX(ry, angles.x); rx.x += rc[0]; rx.y += rc[1]; rx.z += rc[2]; return rx; } function rotateX(p, a){ var sa = Math.sin(a), ca = Math.cos(a); return { x: p.x, y: p.y * ca - p.z * sa, z: p.y * sa + p.z * ca }; } function rotateY(p, a){ var sa = Math.sin(a), ca = Math.cos(a); return { x: p.z * sa + p.x * ca, y: p.y, z: p.z * ca - p.x * sa }; } function rotateZ(p, a){ var sa = Math.sin(a), ca = Math.cos(a); return { x: p.x * ca - p.y * sa, y: p.x * sa + p.y * ca, z: p.z }; }