如何创建两两夹角相等的3D向量及实现旋转调整方案
问题1:如何创建三个两两夹角相等的3D向量
3D空间中存在两种典型的两两等夹角向量构型,分别对应共面和不共面场景:
共面构型(夹角120°)
这类向量位于同一平面内,夹角固定为120°,步骤如下:
- 取第一个单位向量:
v₁ = (1, 0, 0) - 第二个向量由
v₁绕z轴旋转120°得到:v₂ = (-1/2, √3/2, 0) - 第三个向量由
v₁绕z轴旋转240°得到:v₃ = (-1/2, -√3/2, 0)
验证:任意两个向量的点积为-1/2,模长均为1,因此夹角为120°,满足两两相等。
不共面构型(夹角≈109.47°)
这类向量对应正四面体的三个顶点方向,夹角余弦值为-1/3,步骤如下:
- 取第一个向量:
v₁ = (1, 1, 1) - 第二个向量:
v₂ = (-1, -1, 1) - 第三个向量:
v₃ = (-1, 1, -1)
验证:任意两个向量的点积为-1,模长均为√3,因此夹角余弦值为-1/3,满足两两相等。若需要单位向量,将三个向量分别除以√3即可。
问题2:调整旋转后的向量使三者两两夹角相等
已知初始三个等长向量均平行于y轴,设为单位向量v₀=(0,1,0),其中一个向量绕x轴旋转45°后得到v₁,先计算v₁的坐标:
绕x轴旋转45°的旋转矩阵为:
[1, 0, 0 ] [0, √2/2, -√2/2] [0, √2/2, √2/2]
代入v₀得到:v₁=(0, √2/2, √2/2)
通过以下步骤调整另外两个向量,使三者两两夹角相等:
- 调整第二个向量:将
v₀先绕x轴旋转45°,再绕z轴旋转120°。- 绕x轴旋转45°后得到:
(0, √2/2, √2/2) - 再绕z轴旋转120°(旋转矩阵如下):
计算得:[cos120°, -sin120°, 0] [sin120°, cos120°, 0] [0, 0, 1]v₂=(-√6/4, -√2/4, √2/2)
- 绕x轴旋转45°后得到:
- 调整第三个向量:将
v₀先绕x轴旋转45°,再绕z轴旋转240°(或-120°),计算得:v₃=(√6/4, -√2/4, √2/2)
验证:三者两两点积均为1/4,模长均为1,因此夹角余弦值为1/4,夹角≈75.52°,满足两两相等的要求。
内容的提问来源于stack exchange,提问作者John Marston
相关产品推荐
相关产品推荐

