2013-10-26 2 views
2

Мне нужно написать скрипт в python, который дает координаты 2-х точек в 3d-пространстве, находит коллинеарную точку в distane 1 единица из одной заданной точки. Этот третий пункт должен быть между этими двумя. Я думаю, что обойдусь скриптом, но я не уверен, как его вычислить с математической точки зрения. Я нашел кое-что в Google, но они не отвечают на мой вопрос.Найти точку в 3d коллинеарном с двумя другими точками

Спасибо за любой совет.

+0

Что вы подразумеваете под «на расстоянии 1 единица от одной точки»? –

+1

Стоит заметить, что не может быть допустимого решения, когда две точки слишком близко друг к другу. –

ответ

2

Учитывая, что 2 точки, (x1, y1, z1) и (x2, y2, z2), вы можете взять разницу между ними, поэтому в итоге вы получаете (x2-x1, y2-y1, z2-z1). Возьмите норму этого (т. Е. Возьмите расстояние между исходными 2 точками) и разделите (x2-x1, y2-y1, z2-z1) на это значение. Теперь у вас есть вектор с тем же уклоном, что и линия между двумя первыми двумя точками, но он имеет величину 1, так как вы его нормализуете (деля по его величине). Затем добавьте/вычтите этот вектор в одну из исходных точек, чтобы получить окончательный ответ.

Смежные вопросы