Как узнать направление Vector?
Рисуем с помощью Vector:
Код AS3:
|
Если многоугольник выпуклый можно попробовать так.
Берем три соседние точки x1,y1, x2,y2, x3,y3. Дальше проверяем, чтобы вторая точка (x2,y2) лежала слева или на линии (x1,y1, x3,y3). И так в цикле перебираем все. |
Это мы узнаем по часовой или против? Или и так и так?
|
Предствьте линию. Если точка слева от направления этой линии, то очевидно, что по часовой.
Да, кстати, проверять лежит ли точка (x2,y2) НА линии (x1,y1, x3,y3) не надо, т.к. это бесмысленно. Зачем чертить отрезок тремя точками. |
Цитата:
|
С какого это перепугу?
Главное, чтобы точки не совпадали (иначе дополнительные проверки нужно будет писать) и ваш полигон был правильным. |
Все, верно, прошу прощения:)
|
Для выпкулого пногоугольника все гораздо проще:
1. Берем любые 3 точки, идущие подряд. 2. Условие по часовой=true, против=false: (x1-x0)*(y2-y1) - (x2-x2)*(y1-y0) > 0 Для невыпуклого могут быть участки и по часовой и против, может их проссумировать как-то. Википедия в помощь |
Да действительно, цикл не нужен :)
Но это в том случае, если есть гарантия, что угольник правильный. |
Не "правильный" а "выпуклый"
Выбирай, не хочу: http://www.google.ru/search?q=%D0%9E...client=firefox |
Часовой пояс GMT +4, время: 22:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.