Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.049 c
2-1162244867
!aLeXa!
2006-10-31 00:47
2006.11.19
Как послать форме сообщение maximize?


15-1162300387
Rule
2006-10-31 16:13
2006.11.19
Интересуюсь компонтой типа встроенного веб броузера


11-1139053039
Boguslaw
2006-02-04 14:37
2006.11.19
Unicode


15-1161954526
GRAND25
2006-10-27 17:08
2006.11.19
1С:Несуразности


2-1162381860
Stan
2006-11-01 14:51
2006.11.19
Управление компонентами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский