|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
|
Нахождение уравнения плоскости, если известны...
Допустим есть камера - плоскость на которую проецируются точки.
Координата камеры известна C(cx,cy,cz); Также есть угол поворота камеры вокруг осей OZ OY OX: Например, камера расположена в точке (cx=100,cy=-20,cz=-350); Повернута: camrotz = 30; camroty = 25; camrotx = 15; градусов. А теперь вопрос: Как найти уравнение той плоскости, которая образуется при данных параметрах камеры? Эт вообще реально в данном случае?
__________________
заткнись и делай |
|
|||||
Конечно реально =)
Уравнение плоскости - это вектор поворота (Ax + By + Cz) + величина сдвига по этому вектору (D). На пальцах - берем лист бумаги и протыкаем его стержнем от авторучки. Стержень это наш вектор поворота. Он же - нормаль к плоскости. Теперь подвигаем лист бумаги туда-сюда - вот Вам величина сдвига ЗЫ А вообще Вам просто надо 1) получить матрицу камеры 2) инвертировать ее 3) умножить инвертированную матрицу на вектора проецируемых вершин 4) умножить вектора на матрицу проекции Matrix3D.projectVector() 5) вы получите x и y точек проекции
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 04.03.2010 в 18:20. |
|
|||||
Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
|
(Ax + By + Cz) + D
D - на пальцах понятно)) где x y z - координаты вектора поворота, так? а где A B C что? 1. матрица есть 2. всмысле перемножить все элементы на -1 или трансформировать ее в единичную? 3. да это так и происходит 4. я делаю без нативной Matrix3D. 5. ээм да я их и так получаю. просто мне нужно сделать Z-отсечение. Т.к. если кака-я то из точек уходит за пределы камеры она должна проецироваться на плоскость камеры иначе будут страшные глюки. Когда использовал стандартную камеру, то если координата Z точки превышала 0 то для проекции я использовал точку -1 и все было нормально и работало на ура. Но как только сделал произвольную камеру - это здесь уже не прокатывает т.к. точки я не перемещаю, а перемещаю камеру => координата z любой точки остается прежней - но перемещается камера - так вот нужно узнать расстояние от точки до этой плоскости камеры, если оно меньше 0 тогда проецировать на плоскость камеры а не за ее пределы - собственно говоря и есть z-отсечение... (думаю что это так и есть)) вот...
__________________
заткнись и делай |
|
|||||
Инвертировать матрицу - это не умножить на -1
Цитата:
ABC - это величина по XYZ соответственно. То есть вектор (10, 21, 32) - это (10X + 21Y + 32Z)
__________________
...вселенская грусть |
|
|||||
Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
|
Цитата:
биг спс!
__________________
заткнись и делай |
Часовой пояс GMT +4, время: 00:39. |
|
« Предыдущая тема | Следующая тема » |
Теги |
камера , плоскость , проекция , точка , уравнение |
|
|