Держите отрицательное значение расстояния 3d - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь вычислить отклонения координат.У меня могут быть как положительные, так и отрицательные отклонения.

У меня есть номинальные координаты x, y, z и фактические координаты x, y, z.Но какой бы метод я ни пробовал, расстояние всегда получается положительным.И это имеет смысл.Но мне нужно, чтобы отрицательные отклонения были отрицательными.Вот как это выглядит:

a = (float(nX), float(nY), float(nZ))
b = (float(aX), float(aY), float(aZ))
plt.mlab.dist(a, b)

Если я использую эти координаты в качестве примера: -9.69498 13.53853 43.00000 -9.69941 13.53559 43.00029 Они должны дать мне отрицательное отклонение -0.005 (округлено)

Любые советы о том, как этого добиться?

1 Ответ

0 голосов
/ 14 мая 2019

Я понял это.Мне также нужен вектор точки.Я собираюсь использовать вектор номинальной точки.Затем я устанавливаю номинальную точку (XYZ) как начало координат, а вектор как направление (IJK) - как положительный.Как только у меня есть направление, я могу видеть, расположена ли фактическая точка (IJK) «плюс» или «минус» относительно номинальной точки в направлении вектора.

В настоящее время у меня неткод для этого, так как у меня не было времени возиться с этим.И я также могу получить искомое отклонение непосредственно от источника точек (экспортируется вместе с координатами).Поэтому я думаю, что я буду использовать их, таким образом, у меня есть все, что мне нужно.

Вот решение: ((nX-aX) * I) + ((nY-aY) * J) + ((nZ-aZ) * K) Где nX - номинальная X-координата, а aX - фактическая X-координата.I, J и K это вектор XY Z. Таким образом, отклонение от номинала, умноженное на вектор, дает мне то же расстояние, что и sqrt, но как отрицательное или положительное в зависимости от того, где оно находится, в зависимости от направления вектора.Подумайте, это называется точечное произведение или что-то в этом роде.

...