![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пересечение луча и "какой-то" фигуры... [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 луч пересекает плоскость
вроде ниче не попутал.....