两个已知向量的法向向量的长度是不变的常数吗?

时间:2018-10-18 06:58:34

标签: python vector

众所周知,可以使用叉积来计算法线向量。我的问题是我在不同坐标系中获得了同一对向量的不同法线向量长度。这里是代码Price / Vs12是已知向量。

Vs13

def crossProduct(Vs12,Vs13): Fs1=Vs12[1]*Vs13[2]-Vs13[1]*Vs12[2] Fs2=-Vs12[0]*Vs13[2]+Vs13[0]*Vs12[2] Fs3=Vs12[0]*Vs13[1]-Vs13[0]*Vs12[1] Fs=np.array([Fs1,Fs2,Fs3]) return Fs def vectorLenth(x,y,z): lenth_V=(x**2+y**2+z**2)**1/2 return lenth_V lenth_Fs=vectorLenth(Fs[0],Fs[1],Fs[2]) lenth_Ft=vectorLenth(Ft[0],Ft[1],Ft[2]) lenth_Fs 3460825052841.606 lenth_Ft 3460925056778.934 / Fs是不同坐标系中的法线向量。该值在允许的误差范围内吗?

坐标系1中三个点的长度是

Ft

在坐标系2中,它们是

3277117.1973625002,15955141.603046002,5011646.0980985

它们很近。

1 个答案:

答案 0 :(得分:0)

您的实现似乎正确。但是,由于两个向量ab的叉积的大小由||a x b|| = ||a||*||b||*sin(theta)给出,其中thetaa和{{ 1}},叉积的长度与所选坐标系无关。您使用什么坐标系?在两个坐标系中都没有给定的向量bVs12,就不可能分辨出出了什么问题。