Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пересечение луча и "какой-то" фигуры... [Delphi, Windows]


Goida ©   (2004-03-30 10:17:00) 

Как мне определить пересекается лучь с фигурой в пространстве или нет?
Мне нужны хотябы базовые формулы или правила...


Tano   (2004-04-06 00:44:00) [1]

Отправил на мыло свой модуль - там примитивная 3D-геометрия.
Компилятор: TMT Pascal 32bit. Алгоритм простой, там главное посмотри используемые структуры (record) и функцию
FindCrossLinAndPl(var Lin :tLine3D; var Pl :tPlane3D; var CrPo :tPoint3D; var S :Double);
Писал подобное и на ASM (быстрее считает, использует инструкции FPU), но там разобраться - глухо, сам не помню, давно было.
Формулы вроде в комментах писал (в формате Pascal)
Непонятно - пиши.
ЗЫ. Интересно, а попадаются программеры, которых никогда не интересовало 3D-моделирование? ;-)


shiftdel   (2004-04-05 01:12:00) [2]

это очень просто: запусти google и набери в строке поиска "пересечение луча с треугольником" или "пересечение луча со сферой". И смотри статьи. Еще есть сайты, на которых можно поискать (типа dtf.ru или gamedev.ru).
вообще удивительно, чего же хотел Goida - чтоб ему в форуме изложили краткий курс аналитической геометрии?
(почитал этот форум и как-то хочется спросить не знаю кого - сколько глупости надо иметь, чтоб задавать некоторые вопросы)


Goida   (2004-04-01 15:20:00) [3]

Что-то читаю и никак разобраться не могу, а как, например, мне найти точку пересечения с треугольником в пространстве? А со сферой?


Shopot   (2004-03-30 23:31:00) [4]

А вообще возьми любую книгу по Аналитической геометрии.
Там это все очень хорошо описано. И еще там есть про 3-х
мерные построения. Ну вообщем все, чтобы написать самому
2-d, 3-d игру.


Morok   (2004-03-30 11:25:00) [5]

ну да, так, а как же иначе.....


Goida   (2004-03-30 11:12:00) [6]

Другими словами, нужо искать пересечение луча с плоскостью (полигоном), так?


Morok   (2004-03-30 11:02:00) [7]

а еще нужно объект заключать в б бокс и прверять сначала на пересечение с боксом (например можно объект вписать в шар)
ну и далее понятно.....


Morok   (2004-03-30 10:57:00) [8]

фигура состоит из полигонов, определяй пересечения со всеми полигонами............

луч - отрезок.

p1,p2 - координаты начала и конца отрезка.

есть формула определения расстония от точки до плоскости.

dist1 := P1 * Plane.Normal + Plane.D;
dist2 := P2 * Plane.Normal + Plane.D;

if (dist1 > 0 and dist2 < 0) or
   (dist1 < 0 and dist2 > 0) then луч пересекает плоскость

вроде ниче не попутал.....


Наверх

Титульная страница Поиск, карта сайта Написать письмо