forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Математика (http://forum.boolean.name/forumdisplay.php?f=85)
-   -   Пересечение (http://forum.boolean.name/showthread.php?t=2276)

HolyDel 04.01.2007 01:54

Пересечение
 
Предположим есть сфера в точке с координатами x,y,z и радиусом R. Есть линия с концами в точках с координатами x1,y1,z1 и x2,y2,z2.
Собсно вопрос: Как определить проходит линия сквозь сферу или нет?

Atomikc 04.01.2007 02:18

Re: Пересечение
 
А в Блице вроде есть спец функция-лучь, который проверяет пересечения и столкновения, его ещё применяют для пуль.

HolyDel 04.01.2007 02:49

Re: Пересечение
 
Спс. меня интересовало именно математическое решение.
путем недолгих логичсеких рассуждений допер что достаточно определить расстояние от точки до прямой и сравнить его с радиусом. Пойду откапывать формулу. Если кто знает напишите, а то хз откопаю, нет ли.

alcoSHoLiK 04.01.2007 04:21

Re: Пересечение
 
Вложений: 2
Там такая формула, что тебе ее лучше не видеть)
В данном случае математически действовать сложновато, так как прямая в математика бесконечна, а у тебя отрезок.
Чтобы определить пересечение, нужно проверить, находится ли сфера между концов отрезка (центр +- радиус), составить уравнение прямой, проходящей через 2 точки, привести ее к каноническому виду (я это сделал косвенно), найти расстояние.

Вот типа формулы. Первую можно пропустить, сразу подставить значения в конечную формулу.


Часовой пояс GMT +4, время: 16:23.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot