![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сфера и треугольник [VC]
VolanD666 © (2006-02-03 10:28:00)Здравствуейте, программеры! Занялся я тут Collision Detection ( на основе сферы ). Нашел статью про то, как определить пересечение сферы с треугольником. Вот только не много ее не пойму. Пересечение сферы с плоскостью треугольника я сделал, а как найти "точку пересечения", что то не могу разобраться. Подскажите, please...
VolanD666 (2006-02-04 13:02:00) [1]Ok, все получилось!
XProger (2006-02-04 12:32:00) [2]VolanD666, а что с ней?
VolanD666 (2006-02-04 07:50:00) [3]В общем, с векторами я понял, а что с нормалью?
XProger (2006-02-03 21:06:00) [4]Pos - радиус-вектор
Normal - единичный вектор
Теперь, быстро лезем в учебник по алгебре за 8 класс (или яндекс) и понимаем различие!
VolanD666 (2006-02-03 18:01:00) [5]
> Читай первые 2 строки [1] поста :)
Отнимая от одного конца вектора, сам вектор, мы получим другую его точку?
Только вот я не понял про нормаль, а если треугольник далеко, то и нормаль не может быть рядом со сферой. ( я нормаль находил векторным произведением, между двумя векторами-сторонами треугольника )?
XProger (2006-02-03 16:39:00) [6]Dist - расстояние до плоскости по нормали Normal (перпендикуляру) из центра сферы Pos ;)
Кефир87 (2006-02-03 16:30:00) [7]Pos и Normal - Векторные величины (x,y,z) а Dist скалярная величина - нверно радиус сферы 8)
XProger (2006-02-03 15:29:00) [8]Читай первые 2 строки [1] поста :)
VolanD666 (2006-02-03 15:13:00) [9]Все равно не понял. Как отнимая от вектора-положения игрока нормаль к треугольнику ( длиной Dist ) мы можем получить точку пересечения :-O
XProger (2006-02-03 14:48:00) [10]Листочек бумажки и ручка :)
VolanD666 (2006-02-03 14:30:00) [11]
> VolanD666, Pos - Normal * Dist - вот твоя точка
В этой статье так же написано, вот это я как раз и не понял :-)
XProger (2006-02-03 13:26:00) [12]VolanD666, Pos - Normal * Dist - вот твоя точка
VolanD666 (2006-02-03 12:04:00) [13]
> Хотя, зачем находить точку пересечения?
Ну, а если сфера пересекла плоскость, а не треугольник?
XProger (2006-02-03 11:39:00) [14]Точка пересечения лежит в треугольнике.
Точка пересечения лежит на перпендикуляре опущенном из центра сферы на плоскость...
Хотя, зачем находить точку пересечения? Нашёл факт, что сфера "въехала" в плоскость треугольника - отодвинул сферу на (Radius - Dist) * Normal, где Radius - радиус сферы, Dist - расстояние до плоскости треугольника и Normal - нормаль к треугольнику.
Вот кривой примерчик на тему http://xproger.mirgames.ru/?id=2#XSource