Является ли длина вектора нормалей двух известных векторов постоянной величиной? - PullRequest
0 голосов
/ 18 октября 2018

Как известно, вектор нормали можно рассчитать с помощью перекрестного произведения.Мой вопрос заключается в том, что я получил разные длины векторов нормалей одной и той же пары векторов в разных системах координат. Вот код, 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 - вектор нормалей в разных системах координат.Является ли значение в допустимом диапазоне ошибок 8

длина трех точек в системе координат 1

3277117.1973625002,15955141.603046002,5011646.0980985

в системе координат 2 они

3277163.597499995 ,15955363.79005001 ,5011715.192850016

Они близки к.

1 Ответ

0 голосов
/ 18 октября 2018

Ваша реализация кажется правильной.Однако, поскольку величина перекрестного произведения двух векторов a и b определяется как ||a x b|| = ||a||*||b||*sin(theta), где theta - угол между a и b, длина перекрестного произведения не зависитвыбранной системы координат.Какие системы координат вы используете?Без заданных векторов Vs12 и Vs13 в обеих системах координат невозможно определить, что пошло не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...