![]() |
hitTest линии и квадрата
Вложений: 1
Понимаю, что тема не раз уже обсуждалась, но поиск не дал ни одного толкового ответа.
Как определить "правильное" пересечение пунктирной линии с кавдратом? (hitTest, естественно, не подходит). Можно ли это сделать как-то геометрически? |
Например, проверить пересечении линии со всеми сторонами прямоугольника по очереди. Вообще ИМХО лучше самостоятельно вывести формулу проверки пересечения, но если будет тяжко, вот: http://algolist.ru/maths/geom/intersect/lineline2d.php
|
Намек:
if(линия._x >= квадрат._x and линия._x <= линия._x + линия._width) |
Цитата:
|
Цитата:
На вашу ссылку зашел, но там для меня , увы, все как-то непонятно :( Можете написать пример на флеше? |
flazher, сейчас у меня нет времени, может быть завтра смогу набросать что-то. Но лучше ты сам попытайся разобраться с материалом по ссылке.
Там пишут: Цитата:
http://algolist.ru/maths/geom/inters.../lineline2.gif После того как найдём ua и ub, если они обе от 0 до 1, то отрезки пересекаются. С этим понятно? Да, там же есть пример кода на C. Можешь оттуда перевести. |
и все-таки, как так сделать? теперь это понадобилось мне.
Добавлено через 35 секунд :rtfm:и все-таки, как так сделать? теперь это понадобилось мне. |
Вот, нашёл:
Код AS1/AS2:
Проверяет пересечение отрезков v1v2 и v3v4. Смысл в том чтоб представить квадрат в виде отрезков. Для квадрата их будет четыре (: И по очереди проверить пересечение твоего отрезка и отрезков квадрата. Vector2 - может быть любой класс, имеющий свойства x и y. Могу свой класс скинуть, там уже почти вся нужная математика описана PS можно было спокойно написать эту функцию самостоятельно, всё что нужно для этого написано в посте 6 |
вот, быстро накидал кода:)
лови: Код AS1/AS2:
|
Вот
это вы намутили!!! :eek: |
| Часовой пояс GMT +4, время: 10:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.