使用两个自旋向量中的点对球体上的x,y,z坐标进行插值?

我想要实时绘制位于单位球体(r = 1)表面上的三维点。

这里有两个旋转矢量在工作。 一个矢量围绕Y轴旋转,它是X和Z值是使用完全位于X / Z平面上的圆的cos()和sin()计算出来的,其中所有Y值都等于0。 X轴,它是使用完全位于Z / Y平面上的圆的cos()和sin()计算出的Z值和Y值,所有X值都等于0.两个向量的角动量通常不是相同。 然而,矢量的端点位于半径等于1的共同球体的表面上。因此它们具有相同的大小,并且都起源于相同的0,0,0点。

假设第一个矢量有一个称为angXZ的角动量项和第二个angZY。 这意味着我可以随时计算两个点,一个用于每个旋转矢量,使用angXY和angZY。 对于这两个三维点,计算第三个点的公式是什么?这个公式也将位于单位球面上,并且是从angXZ和angZY计算的两点之间的正确插值?

我可以在脑海中看到,如果有任何两个三维点位于单位球体的表面上,则只有一个圆形(平面),它们的圆周都会位于上面。 我也可以直观地认为,计算插值点的坐标归结为当投影到它们共有圆周的圆上时将两个计算点创建的角平分。 但是我无法将我的头围绕在翻译和数学上。

是否有一个简单的公式,它需要位于单位球面上的两个三维点来计算第三个点,该点也位于该曲面上,并且是前两个点之间的正确插值?

如果有问题,我正在使用Delphi Pro 6。

后续:直观地看来,我应该能够从这对自旋向量计算出的两点的线性中点,并将该点投影到单位球面上。 例如,下面链接中的公式给出了计算任意两个3D点之间中点的公式。 那么我不能再采用这个3D点并使用一些公式,以一种将它投影回单位球体表面的方式来调整它的XYZ坐标?

寻找两点之间的坐标?


让M和N成为你的两个点,O是原点。 我们将找到P,MN的中间部分:OP = OM + ON / 2。您计算OP的大小:| OP |。 OR = OP / | OP |您需要的点将是R = OM + ON / 2 | OP |。

计算这个好运气。 我不知道德尔福,但也许它允许直接矢量操作。 如果不是解析几何。

中点的坐标是M和N的坐标的算术平均值(你可以计算出这些)。 获得| OP |的大小 你提取x ^ 2 + y ^ 2 + z ^ 2的平方根。 要得到R,只需将P的坐标分成刚刚计算的大小。

当M和N相反时(P == O),您分别处理。

链接地址: http://www.djcxy.com/p/85001.html

上一篇: Interpolate x, y, z coordinates on a sphere using points from two spin vectors?

下一篇: Stuck thread at UIComponent.popComponentFromEL