Преобразовать координаты в другую систему координат - PullRequest
1 голос
/ 29 ноября 2011

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

illustration

Я думаю, это похожепреобразование из камеры в 3D-модели на экран, но у меня нет координат и векторов камеры.Есть ли какие-либо статьи или идеи, которые вы можете порекомендовать по этому поводу, или у вас даже есть матрица / алгоритм для обмена?

1 Ответ

3 голосов
/ 29 ноября 2011

При выполнении переходов из одной системы координат в другую основное действие заключается в выравнивании этих систем. Вот что вам нужно:

  • Перевести нижнюю левую угловую точку синего прямоугольника (начало 2D-системы координат) в начало 3D-системы координат (T)
  • Совместите ось x двух систем с вращением (R1)
  • Совместите другую ось (ось Y) с другим поворотом. (R2)

В линейной алгебре преобразования применяются в обратном порядке, поэтому, учитывая заданную точку p в трехмерном пространстве, вы получите результат:

R2 * R1 * T * p

Статьи в Википедии о Матрице перевода и Матрица вращения являются хорошими ресурсами о том, как вычислить эти матрицы.

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

...