【发布时间】:2012-08-24 10:56:52
【问题描述】:
我试图弄清楚如何将球体从自身的 A 点旋转到自身的 b 点。我找到了一些 Unity3d 代码:
Quaternion rot = Quaternion.FromToRotation (pointA, pointB);
sphere.transform.rotation *= rot; //Multiply rotations to get the resultant rotation
通过http://answers.unity3d.com/questions/21921/rotate-point-a-on-sphere-to-point-b-on-sphere.html,但我不知道如何在 Three.js 中实现它。
这是我的代码:
var s = sphere mesh
var va = 1st start vector
var vb = 2nd end vector;
var qa = new THREE.Quaternion(va.x, va.y, va.z, 1);
var qb = new THREE.Quaternion(vb.x, vb.y, vb.z, 1);
var qc = new THREE.Quaternion();
THREE.Quaternion.slerp(qa, qb, qc, 1);
s.useQuaternion = true;
s.quaternion = qc;
谢谢!
【问题讨论】:
-
只是出于好奇,我在下面提供的答案中是否有任何内容不能满足您的需求?如果有什么方法对您更有用,我愿意提供帮助。
-
3.js/js 语法而非数学语法的代码示例会很棒!
-
这有几个问题。首先,我不熟悉 3.js。实际上,我正在为自己学习 js,并且此时我的脑海中还没有足够直截了当的地方来公正地对待它。另一个也许更大的问题是关于你是否理解下面的概念。如果你不这样做,你可能会更好地发展这种理解,而不是得到你以后无法维护的代码。那么,您了解什么是交叉点积吗?如果没有,我可以扩展这些概念,您可以自己编写代码。
-
@and 由于这个问题是几年前的问题,你现在有任何关于语法的 threejs 知识吗?
-
@neil 我还没学过threejs...我最初是根据数学标签回答这个问题的,而不是其他任何一个。
标签: javascript math webgl three.js