![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
![]() Представим, что координатная плоскость - это помещение размером 10 х 10 метров. Точка A представляет собой текущую камеру наблюдения. Стрелкой показано направление камеры. Вопросы: 1) Как опредилить, какой угол зрения у наблюдателя(точка A) и на основе этого изобразить видимую часть стены? 2) Как на основании расстояния от А до стены изобразить стену в получившейся точке пространства? 3) Как опредилить: находится ли наблюдатель вплотную к стене или нет? 4) Как изобразить стену, потолок, пол помещения? Вопросы рассматриваются на основе графического движка Wolfenstein3D. В Delphi через стандартные средства верно неудобно будет выводить графику, что может послужить альтернативой вывода графики? ВНИМАНИЕ! Пожалуйста, не флудите в теме! Если Вам нечего ответить, промолчите. Если Вы заметили ошибку в тексте или Вам что-либо не понятно, напишите мне личное сообщение. Пожалуйста, не игнорируйте мои просьбы. В противном случае я буду вынужден нажать на кнопку жалобы. Спасибо за внимание. Последний раз редактировалось Манжосов Денис :); 01.07.2009 в 09:17. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Дэн, не сочти это за флуд, но нам давали лабу в которой в АвтоЛИСПе определялись видимости стен в помещении от наблюдателя.
Там смысл был примерно таков: Есть некий угол обозрения скажем 45 градусов - в ег пределах глаз видит. В цикле проходим по этому углу и высчитываем угол между стеной и лучом из глаза в стенку, в цикле поворачиваемом в пределах тех самых 45 градусов. Если угол не равен 180 значит стена видима... Точно не помню решения но смысл примерно в этом. А вот полезное чтиво с ссылками: http://ru.wikipedia.org/wiki/Wolfenstein_3D
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 | |
Участник клуба
Регистрация: 29.01.2008
Сообщений: 1,039
|
![]()
Это не флуд, а очень полезная информация.
Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Если очень интересно могу завтра принести код на Автолиспе для Автокада. Но там никак с райтрайсом не связано, просто приметивный рассчет. P.S. Я делал программу которая скользит лучем лазера по поверхности вращения в 3DStudio MAX Script. там есть интересная функа intersectRay, она как раз показывает пересечение от некоторой точки до некоторого обьекта. Это Я так к сведению, как бы я решал такие задачи. и помоему еще в GLScene есть подобный метод.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Подобие вольфенштейна на паскале (с ray casting'ом)
http://sources.ru/pascal/games/lab3d.htm
пыщь
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Принципы работы icq | Mantell | Общие вопросы .NET | 0 | 30.06.2009 10:42 |
Замена символов на латинские и ни чего лишнего | Kib | Общие вопросы Delphi | 5 | 29.06.2009 12:00 |
Принципы объектно-ориентированного программирования. | Silent_Hell | Помощь студентам | 1 | 25.05.2009 12:53 |
Поиск лишнего/иного символа при сравнении двух строк | Bezdar | Microsoft Office Excel | 5 | 13.11.2008 13:07 |
ICQ Bot - защита от флуда | snakesoft | Работа с сетью в Delphi | 4 | 13.12.2007 04:35 |