Главная страница
    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.121 c
6-1151330478
RealGanj
2006-06-26 18:01
2006.11.19
Переача файла по сети


8-1144682476
Михаил (Киров)
2006-04-10 19:21
2006.11.19
Цветная печать


11-1121340015
Barloggg
2005-07-14 15:20
2006.11.19
Хочу избавиться от MCK


15-1161986483
Ne-Ld
2006-10-28 02:01
2006.11.19
Видна не распознает USB накопители., Что делать?


15-1162287463
Арс
2006-10-31 12:37
2006.11.19
Что такое Zend Optimizer?





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