Найти 3D точки равностороннего треугольника на основе его 2D проекции координат - PullRequest
0 голосов
/ 22 сентября 2018

Предполагается, что 3D-модель состоит из трех равноотстоящих точек и начала координат (0,0,0) в их центре.Расстояние между этими точками известно.Эти трехмерные точки кажутся камерой, матрица проекции которой известна.Я могу получить доступ к каждой точке (x, y) на плоскости камеры.Я пытаюсь получить трехмерные координаты этих точек и частично построить матрицу модели.

Пока что, когда я умножаю 2D-точку на матрицу проекции, я могу найти их соответствующие 3D-позиции, но я не уверен, как поступить или что именно искать, чтобы помочь мне установить отношениямежду этими 3 точками, чтобы восстановить трехмерную модель (масштаб, вращение) этого объекта.

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

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

1 Ответ

0 голосов
/ 23 сентября 2018

Сначала можно отменить проецирование каждой из трех 2D-точек в 3D-пространство с различной глубиной (используя матрицу обратной проекции).Затем у вас есть для каждой 2D-точки луч, на котором может лежать фактическая точка.Представим луч с

x(t) = p + t * d,

, где t - скалярный параметр, p1 - одна из непроецированных точек, а d - разница между двумя непроецированными точками.Затем, учитывая известное расстояние от трехмерных точек r, вы хотите найти их местоположение лучей.Т.е. вы хотите найти параметры трех лучей t1, t2, t3, чтобы

(p1 + t1 * d1 - p2 - t2 * d2)^2 = r^2
(p2 + t2 * d2 - p3 - t3 * d3)^2 = r^2
(p3 + t3 * d3 - p1 - t1 * d1)^2 = r^2

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

Итак, у вас остались числовые решатели.Я бы начал с чего-то простого и попробовал бы метод Ньютона .Начните с разумного положительного t вектора.

...