Нарисуйте линию длиной X с заданной точкой в ​​пространстве и вектором. - PullRequest
3 голосов
/ 06 мая 2009

До того, как все подскакивают за то, что я выполняю домашнее задание, мой вопрос не касается моей домашней работы. У меня просто проблема с тем, чтобы заставить некоторые вещи правильно рисовать.

Я пытаюсь нарисовать линии перпендикулярно плоскости. Я знаю три точки в пространстве, которые составляют самолет. Из этих координат я могу вычислить векторы и получить вектор нормали плоскости. Используя координаты от центра трех точек и вектора нормали, я могу нарисовать линию, перпендикулярную плоскости.

Моя проблема в том, что длина этой линии связана с вектором нормали, потому что я просто добавляю вектор к координатам, чтобы получить две точки для рисования линии. Без использования какого-либо отвратительного кода грубой силы, как мне нарисовать линию фиксированной длины с учетом любой точки в трехмерном пространстве и любого вектора.

(Я спрашиваю здесь, потому что я не знаю терминов, которые можно использовать для поиска в Google, в моем учебнике ничего не говорится об этом, и мой профессор не будет доступен до того, как это произойдет.)

1 Ответ

7 голосов
/ 06 мая 2009

Вам нужно «нормализовать» ваш нормальный вектор ..

, чтобы сделать это, разделите вектор на его величину.

длина или величина вектора r определяется как:

<strike> </strike> l = &radic; x<sup>2</sup> + y<sup>2</sup> + z<sup>2</sup>

затем вы делите r на его длину (т.е. делением каждого его компонента) давая
n = { x/l, y/l, z/l }

, который даст вам новый нормальный вектор длины 1.

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

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