如何解决z 轴保持垂直的 3D 旋转
This codepen 有一个小的旋转函数,它接受 theta 和 phi 值。旋转公式可以在互联网上的任何地方找到,而且相当简单:
function rotate(P,C,theta,phi) {
let ct = Math.cos(theta);
let st = Math.sin(theta);
let cp = Math.cos(phi);
let sp = Math.sin(phi);
let x = P.x - C.x;
let y = P.y - C.y;
let z = P.z - C.z;
P.x = ct * x - st * cp * y + st * sp * z + C.x;
P.y = st * x + ct * cp * y - ct * sp * z + C.y;
P.z = sp * y + cp * z + C.z;
}
这个旋转是一个演示,但很容易忘记立方体的哪个面是最初的底面。
openSCAD 另一方面有一个非常好的旋转,对象的 z 轴总是显示为一条垂直线:
如果您只更改 theta
值,上述函数的行为将相同。一旦您更改 phi
值,立方体星星就会倒下。
我将如何在 JavaScript 中编写这样的旋转?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。