Форум: "Игры";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизПересечение луча и "какой-то" фигуры... Найти похожие ветки
← →
Goida © (2004-03-30 10:17) [0]Как мне определить пересекается лучь с фигурой в пространстве или нет?
Мне нужны хотябы базовые формулы или правила...
← →
Morok (2004-03-30 10:57) [1]фигура состоит из полигонов, определяй пересечения со всеми полигонами............
луч - отрезок.
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 луч пересекает плоскость
вроде ниче не попутал.....
← →
Morok (2004-03-30 11:02) [2]а еще нужно объект заключать в б бокс и прверять сначала на пересечение с боксом (например можно объект вписать в шар)
ну и далее понятно.....
← →
Goida © (2004-03-30 11:12) [3]Другими словами, нужо искать пересечение луча с плоскостью (полигоном), так?
← →
Morok (2004-03-30 11:25) [4]ну да, так, а как же иначе.....
← →
Shopot © (2004-03-30 23:31) [5]А вообще возьми любую книгу по Аналитической геометрии.
Там это все очень хорошо описано. И еще там есть про 3-х
мерные построения. Ну вообщем все, чтобы написать самому
2-d, 3-d игру.
← →
Goida © (2004-04-01 15:20) [6]Что-то читаю и никак разобраться не могу, а как, например, мне найти точку пересечения с треугольником в пространстве? А со сферой?
← →
shiftdel (2004-04-05 01:12) [7]это очень просто: запусти google и набери в строке поиска "пересечение луча с треугольником" или "пересечение луча со сферой". И смотри статьи. Еще есть сайты, на которых можно поискать (типа dtf.ru или gamedev.ru).
вообще удивительно, чего же хотел Goida - чтоб ему в форуме изложили краткий курс аналитической геометрии?
(почитал этот форум и как-то хочется спросить не знаю кого - сколько глупости надо иметь, чтоб задавать некоторые вопросы)
← →
Tano © (2004-04-06 00:44) [8]Отправил на мыло свой модуль - там примитивная 3D-геометрия.
Компилятор: TMT Pascal 32bit. Алгоритм простой, там главное посмотри используемые структуры (record) и функцию
FindCrossLinAndPl(var Lin :tLine3D; var Pl :tPlane3D; var CrPo :tPoint3D; var S :Double);
Писал подобное и на ASM (быстрее считает, использует инструкции FPU), но там разобраться - глухо, сам не помню, давно было.
Формулы вроде в комментах писал (в формате Pascal)
Непонятно - пиши.
ЗЫ. Интересно, а попадаются программеры, которых никогда не интересовало 3D-моделирование? ;-)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c