两个已知向量的法向量的透镜是不变常数吗?

  • 本文关键字:向量 常数吗 两个 python vector
  • 更新时间 :
  • 英文 :


众所周知,法向量可以用叉积计算。我的问题是,我在不同的坐标系中得到了同一对向量的不同法线矢量透镜。这是代码,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/Ft是不同坐标系中的法线向量。该值是否在允许的错误范围内?

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

3277117.1973625002,15955141.603046002,5011646.0980985

在坐标系 2 中,它们是

3277163.597499995 ,15955363.79005001 ,5011715.192850016

他们很接近。

您的实现似乎是正确的。然而,由于两个向量ab的交叉积的大小由||a x b|| = ||a||*||b||*sin(theta)给出,其中thetaab之间的角度,叉积的长度与所选坐标系无关。您使用什么坐标系?如果没有给定的向量Vs12和两个坐标系中的Vs13,就不可能判断出了什么问题。

最新更新