1

假设四面体的四个顶点之一位于原点,另外三个位于向量uvw的末尾。如果向量uv已知,并且uvvw以及wu之间的角度也已知,则似乎存在w的封闭形式解:旋转向量形成的两个圆锥的交点在关于u轴的uw角度处,并通过在vw处旋转矢量相对于v轴的角度。

尽管我在几天内无法提出封闭形式的解决方案,但我希望这是由于我缺乏 3d 几何经验,并且有更多经验的人可能会提出有用的建议。

4

2 回答 2

1

我遇到了同样的问题,发现 MBo 的回答非常有用。但我认为我们可以多说一点w的值,因为我们可以自由选择要工作的坐标系。特别是,如果我们选择 x 轴在u的方向,并且 xy -plane以包含向量v,则 MBo 的方程组变为:

   wx         = cos(uw)
vx*wx + vy*wy = cos(vw)
||w||         = 1

这个坐标系给出

vx = cos(uv), vy = sin(uv)

所以我们马上就明白了

                                                   _____________________
    (           cos(vw) - cos(uv) * cos(uw)    +  /        2              )
w = ( cos(uw), ----------------------------- , - /  1 - cos (uw) - wy*wy  )
    (                     sin(uv)              \/                         )

平方根上的 +- 给出了两种可能的解决方案,当然除非1 - cos^2(uw) - wy^2 <= 0. 当uv线性相关(指向同一方向)时,除以sin(uv)也突出显示了退化情况。

我们可以进行的另一项检查是,如果向量uv是正交的,则已知 wy = cos(vw)(参见https://math.stackexchange.com/questions/726782/find-a-3d-vector-given-the-angles-of-the -axes-and-a-magnitude)。这不属于上面的表达式(因为cos(uv) = 0and sin(uv) = 1)。

于 2014-08-21T08:53:19.483 回答
0

没有足够的数据来计算顶点 w 位置。但是有可能找到单位向量w(如果它存在的话)。只需使用标量积属性并求解方程组(我使用 (vx,vy,vz) 作为单位(归一化)向量v的组成部分)

vx*wx+vy*wy+vz*wz=Cos(v,w angle)
ux*wx+uy*wy+uz*wz=Cos(u,w angle)
wx^2+wy^2+wz^2=1  //unit vector

这个系统可以给我们: 没有解决方案(锥体不重叠);一种解决方案(锥体接触);两种解决方案(两条射线作为锥面相交)

于 2013-02-21T03:42:48.177 回答