2013-07-11 3 views
1

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

Что я знаю о фотоаппарате: x, y, height, pitch, heading, roll (все относительно плоскости), а также горизонтальные и вертикальные углы обзора (предоставляется производителем камеры).

+0

Разве это не должно быть в math.stackexchange? – wombat

+0

Я спрашиваю, как решить эту проблему программно, извините за то, что неясно. – superware

+0

Я бы предположил, что код был бы простым, если бы математическое решение проблемы – wombat

ответ

2

Ключ к решению проблемы мышления с точки зрения камеры системы, которая определяется положением камеры с (которые вы уже знаете) и три ортонормальные векторов координат, скажем у (справа) , v (вверх) и w (вдали от камеры). Они могут быть вычислены из тона, заголовка и рулона (углы Эйлера); они являются столбцами соответствующей матрицы вращения (см., например, http://planning.cs.uiuc.edu/node102.html или Wikipedia). Точные формулы зависят от вашей интерпретации этих углов (порядка, в котором применяются преобразования).

С их помощью можно вычислить направлений д из четырех лучей г (T) = гр + T д, которые соответствуют углам изображения, как д = ш +/- tan (h/2) u +/- tan (v/2) v где v и h - вертикальные и горизонтальные углы обзора.

Наконец, вы можете вычислить пересечения этих лучей с плоскостью (см., Например, Wikipedia http://en.wikipedia.org/wiki/Line-plane_intersection), чтобы найти углы изображения камеры на этой плоскости.

+0

вы могли бы уточнить, что означает «t» в приведенном выше? Кроме того, как бы создать единую плоскость для пересечения лучей? – ssast

+0

проверить [эта страница] (https://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-generating-camera-rays) (параметр _t_ объясняется в разделе «Определяющие лучи») и [ эту страницу] (https://www.scratchapixel.com/lessons/3d-basic-rendering/minimal-ray-tracer-rendering-simple-shapes/ray-plane-and-ray-disk-intersection) (информация об определении плоские уравнения) для хорошего введения в raytracing math – oseiskar

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