Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.03.2010, 17:52
gr_crd вне форума Посмотреть профиль Отправить личное сообщение для gr_crd Посетить домашнюю страницу gr_crd Найти все сообщения от gr_crd
  № 1  
Ответить с цитированием
gr_crd
 
Аватар для gr_crd

Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
Question Нахождение уравнения плоскости, если известны...

Допустим есть камера - плоскость на которую проецируются точки.
Координата камеры известна C(cx,cy,cz);
Также есть угол поворота камеры вокруг осей OZ OY OX:

Например, камера расположена в точке (cx=100,cy=-20,cz=-350);
Повернута: camrotz = 30; camroty = 25; camrotx = 15; градусов.


А теперь вопрос:

Как найти уравнение той плоскости, которая образуется при данных параметрах камеры? Эт вообще реально в данном случае?
__________________
заткнись и делай

Старый 04.03.2010, 18:15
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Конечно реально =)
Уравнение плоскости - это вектор поворота (Ax + By + Cz) + величина сдвига по этому вектору (D).
На пальцах - берем лист бумаги и протыкаем его стержнем от авторучки. Стержень это наш вектор поворота. Он же - нормаль к плоскости. Теперь подвигаем лист бумаги туда-сюда - вот Вам величина сдвига

ЗЫ
А вообще Вам просто надо
1) получить матрицу камеры
2) инвертировать ее
3) умножить инвертированную матрицу на вектора проецируемых вершин
4) умножить вектора на матрицу проекции Matrix3D.projectVector()
5) вы получите x и y точек проекции
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 04.03.2010 в 18:20.
Старый 04.03.2010, 18:36
gr_crd вне форума Посмотреть профиль Отправить личное сообщение для gr_crd Посетить домашнюю страницу gr_crd Найти все сообщения от gr_crd
  № 3  
Ответить с цитированием
gr_crd
 
Аватар для gr_crd

Регистрация: 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-отсечение... (думаю что это так и есть))

вот...
__________________
заткнись и делай

Старый 04.03.2010, 18:48
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Инвертировать матрицу - это не умножить на -1
Цитата:
так вот нужно узнать расстояние от точки до этой плоскости камеры
и в чем проблема? если z точки > 0 - рисуем, если нет - не рисуем. Имеется ввиду точка, уже умноженная на инвертированную матрицу камеры

ABC - это величина по XYZ соответственно. То есть вектор (10, 21, 32) - это (10X + 21Y + 32Z)
__________________
...вселенская грусть

Старый 04.03.2010, 18:58
gr_crd вне форума Посмотреть профиль Отправить личное сообщение для gr_crd Посетить домашнюю страницу gr_crd Найти все сообщения от gr_crd
  № 5  
Ответить с цитированием
gr_crd
 
Аватар для gr_crd

Регистрация: Mar 2009
Адрес: Kazakhstan, Almaty
Сообщений: 121
Цитата:
Имеется ввиду точка, уже умноженная на инвертированную матрицу камеры
ааа блин это же просто все уже и так почти готово)) какже сразу не дошло...
биг спс!
__________________
заткнись и делай

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
камера , плоскость , проекция , точка , уравнение

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.