![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 147
|
как узнать координаты точки пересечения прямой и мувиклипа? я проверил при помощи hitTestObject() пересеклась ли моя прямая и мувик. если пересеклась, то в какой точке? помоги, плиз, разобраться
|
|
|||||
|
Математикой.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 147
|
наверняка уже есть все давно высчитанное до меня. подскажите, где можно найти формулы и применить их
Добавлено через 56 секунд т.к. у меня опыт во Flash не большой, то я надеялся, что я просто не знаю функцию, которая вернет мне координату точки пересечения... эх... |
|
|||||
|
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
Если в двумерном пространстве (на плоскости) искать - то у вас серьезные проблемы
![]() Если в трехмерном (т.е. пересечение плоскости мувика и прямой) - то смотрите по ссылке http://ru.wikipedia.org/wiki/%D0%9D%...80%D0%B8%D1%8F |
|
|||||
|
Modus ponens
|
public static function intersectionPoint(p0:Point, p1:Point, p2:Point, p3:Point):Point { var rX:Number = ((p0.x * p1.y - p0.y * p1.x) * (p2.x - p3.x) - (p0.x - p1.x) * (p2.x * p3.y - p2.y * p3.x)) / ((p0.x - p1.x) * (p2.y - p3.y) - (p0.y - p1.y) * (p2.x - p3.x)); var rY:Number = ((p0.x * p1.y - p0.y * p1.x) * (p2.y - p3.y) - (p0.y - p1.y) * (p2.x * p3.y - p2.y * p3.x)) / ((p0.x - p1.x) * (p2.y - p3.y) - (p0.y - p1.y) * (p2.x - p3.x)); return new Point(rX, rY); } ![]()
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 15.02.2010 в 20:01. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 147
|
я так понимаю "слегка" дооптимизировать
![]() |
|
|||||
|
о пересечении прямой(геометрическое понятие) и мувиклипа (программный объект) и говорить-то не очень серьезно, хотя понятно, что под мувиклипом подразумевается некая фигура, но если неизвестно какая, то какие тут могут быть формулы..
как вариант: прошагать по прямой с каким-то шагом (точностью), походу проверяя hitTestPoint мувика с каждой точкой, затратно, но будешь все знать: где пресекается, сколько раз и т.д. Последний раз редактировалось silin; 15.02.2010 в 21:07. |
|
|||||
|
Однако же, если шаг будет больше, чем линия пересечения - можно тупо перескочить её. Везде свои плюсы и минусы.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Modus ponens
|
Ну, формула-то рабочая - вычисляет точку пересечения двух прямых, а если вам нужны пересечения с кривыми - это уже считаете сами, мой слабый интеллект не справится
![]()
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 147
|
всем спасибо. похоже придется достать конспект по матану и сдуть пыль
почитать про аппроксимацию. любую (практически любую) сложную фигуру можно свести к простой с определенной степенью точности... а пока что попробую вариант, который предложил silin. буду шагать ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|