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

Вниз

Сфера и треугольник   Найти похожие ветки 

 
VolanD666   (2006-02-03 10:28) [0]

Здравствуейте, программеры! Занялся я тут Collision Detection ( на основе сферы ). Нашел статью про то, как определить пересечение сферы с треугольником. Вот только не много ее не пойму. Пересечение сферы с плоскостью треугольника я сделал, а как найти "точку пересечения", что то не могу разобраться. Подскажите, please...


 
XProger ©   (2006-02-03 11:39) [1]

Точка пересечения лежит в треугольнике.
Точка пересечения лежит на перпендикуляре опущенном из центра сферы на плоскость...
Хотя, зачем находить точку пересечения? Нашёл факт, что сфера "въехала" в плоскость треугольника - отодвинул сферу на (Radius - Dist) * Normal, где Radius - радиус сферы, Dist - расстояние до плоскости треугольника и Normal - нормаль к треугольнику.
Вот кривой примерчик на тему http://xproger.mirgames.ru/?id=2#XSource


 
VolanD666   (2006-02-03 12:04) [2]


> Хотя, зачем находить точку пересечения?

Ну, а если сфера пересекла плоскость, а не треугольник?


 
XProger ©   (2006-02-03 13:26) [3]

VolanD666, Pos - Normal * Dist - вот твоя точка


 
VolanD666   (2006-02-03 14:30) [4]


> VolanD666, Pos - Normal * Dist - вот твоя точка

В этой статье так же написано, вот это я как раз и не понял :-)


 
XProger ©   (2006-02-03 14:48) [5]

Листочек бумажки и ручка :)


 
VolanD666   (2006-02-03 15:13) [6]

Все равно не понял. Как отнимая от вектора-положения игрока нормаль к треугольнику ( длиной Dist ) мы можем получить точку пересечения :-O


 
XProger ©   (2006-02-03 15:29) [7]

Читай первые 2 строки [1] поста :)


 
Кефир87 ©   (2006-02-03 16:30) [8]

Pos и Normal - Векторные величины (x,y,z) а Dist скалярная величина - нверно радиус сферы 8)


 
XProger ©   (2006-02-03 16:39) [9]

Dist - расстояние до плоскости по нормали Normal (перпендикуляру) из центра сферы Pos ;)


 
VolanD666   (2006-02-03 18:01) [10]


> Читай первые 2 строки [1] поста :)

Отнимая от одного конца вектора, сам вектор, мы получим другую его точку?
Только вот я не понял про нормаль, а если треугольник далеко, то и нормаль не может быть рядом со сферой. ( я нормаль находил векторным произведением, между двумя векторами-сторонами треугольника )?


 
XProger ©   (2006-02-03 21:06) [11]

Pos - радиус-вектор
Normal - единичный вектор

Теперь, быстро лезем в учебник по алгебре за 8 класс (или яндекс) и понимаем различие!


 
VolanD666   (2006-02-04 07:50) [12]

В общем, с векторами я понял, а что с нормалью?


 
XProger ©   (2006-02-04 12:32) [13]

VolanD666, а что с ней?


 
VolanD666   (2006-02-04 13:02) [14]

Ok, все получилось!



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.056 c
5-1143100549
Vopros
2006-03-23 10:55
2006.11.19
цвет строки и разделительных линий TStringGrid


2-1162200542
TrainerOfDolphins
2006-10-30 12:29
2006.11.19
Установка frx-компонентов...


2-1162315461
Ivolg
2006-10-31 20:24
2006.11.19
Пакеты


2-1162731703
TTempFile
2006-11-05 16:01
2006.11.19
DWord & Word


9-1139153587
VolanD666
2006-02-05 18:33
2006.11.19
Collision Detection





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский