Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Пересечение луча и "какой-то" фигуры...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
1-1089310020
enreas_
2004-07-08 22:07
2004.07.25
Клавиатура


4-1087126783
SergeyM
2004-06-13 15:39
2004.07.25
Раскладка клавиатуры


8-1083785851
Mongoose
2004-05-05 23:37
2004.07.25
нужен совет по TTrackBar


14-1088956768
}|{yk
2004-07-04 19:59
2004.07.25
Можно ли использовать with


3-1088487606
Ярослав
2004-06-29 09:40
2004.07.25
Массивы в IB