如何在两个具有最大角度的3d向量之间获得3d向量?

问题描述 投票:0回答:1

假设我有一个向量v1 =(0,0,1),一个向量v2 =(1,0,0),最大角度为20度,我如何获得这两个向量之间的向量,在这两个向量正在形成的二维平面中,但从第一个向量(v1)旋转了20度? (假设与v1和v2的夹角超过20度)

math vector 3d
1个回答
0
投票

没有矩阵的方法:

位于该平面上的任何矢量都可以用以下形式表示:

v3 = x v1 + y v2

因此,我们需要找到a和b。而且,向量之间的距离可能小于20度。假设所有向量均已归一化。

v3 v1 = cosA = x + y v1 v2
|v3| = 1 = x2 + y2 + x y v1 v2

在您的特定情况下,这些方程式的解是:

x = cosA, y = sqrt(1 - cos2(A))
v3 = cosA v1 + sqrt(1 - cos2(A)) v2

通常,您需要求解以下方程式:

x + Ay + B = 0
x2 + y2 + Axy + C = 0

其中

A = v1 v2, B = - cosA, C = -1

如果您在解决问题时遇到困难,我会在评论中给您一些提示。

© www.soinside.com 2019 - 2024. All rights reserved.