Главная страница
    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.041 c
15-1162199622
Сатир
2006-10-30 12:13
2006.11.19
Создание невизуального компонента.


15-1162101613
vaskin80
2006-10-29 09:00
2006.11.19
Подарок брату. Помогите!


2-1162537219
WhiteBarin
2006-11-03 10:00
2006.11.19
Как сделать чтобы при загрузке была доступна только моя программа


2-1162459271
Amt2001
2006-11-02 12:21
2006.11.19
Помогите разобраться


15-1162559111
ArtemESC
2006-11-03 16:05
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский