|
|
|||||
Регистрация: Dec 2006
Сообщений: 140
|
Как узнать направление Vector?
Рисуем с помощью Vector:
public function DrawPathExample(){ var square_commands:Vector.<int> = new Vector.<int>(5,true); square_commands[0] = 1;//moveTo square_commands[1] = 2;//lineTo square_commands[2] = 2; square_commands[3] = 2; square_commands[4] = 2; var square_coord:Vector.<Number> = new Vector.<Number>(10,true); square_coord[0] = 20; //x square_coord[1] = 10; //y square_coord[2] = 50; square_coord[3] = 10; square_coord[4] = 50; square_coord[5] = 40; square_coord[6] = 20; square_coord[7] = 40; square_coord[8] = 20; square_coord[9] = 10; graphics.beginFill(0x442266);//set the color graphics.drawPath(square_commands, square_coord); } |
|
|||||
Регистрация: Jan 2009
Сообщений: 20
|
Если многоугольник выпуклый можно попробовать так.
Берем три соседние точки x1,y1, x2,y2, x3,y3. Дальше проверяем, чтобы вторая точка (x2,y2) лежала слева или на линии (x1,y1, x3,y3). И так в цикле перебираем все. |
|
|||||
Регистрация: Jan 2009
Сообщений: 20
|
Предствьте линию. Если точка слева от направления этой линии, то очевидно, что по часовой.
Да, кстати, проверять лежит ли точка (x2,y2) НА линии (x1,y1, x3,y3) не надо, т.к. это бесмысленно. Зачем чертить отрезок тремя точками. |
|
|||||
Регистрация: Nov 2009
Адрес: SPb
Сообщений: 26
|
при таком подходе случай y1=y3 надо рассматривать отдельно
|
|
|||||
Регистрация: Jan 2009
Сообщений: 20
|
С какого это перепугу?
Главное, чтобы точки не совпадали (иначе дополнительные проверки нужно будет писать) и ваш полигон был правильным. |
|
|||||
Регистрация: Nov 2009
Адрес: SPb
Сообщений: 26
|
Все, верно, прошу прощения
|
|
|||||
Для выпкулого пногоугольника все гораздо проще:
1. Берем любые 3 точки, идущие подряд. 2. Условие по часовой=true, против=false: (x1-x0)*(y2-y1) - (x2-x2)*(y1-y0) > 0 Для невыпуклого могут быть участки и по часовой и против, может их проссумировать как-то. Википедия в помощь |
|
|||||
Регистрация: Jan 2009
Сообщений: 20
|
Да действительно, цикл не нужен
Но это в том случае, если есть гарантия, что угольник правильный. |
|
|||||
Не "правильный" а "выпуклый"
Выбирай, не хочу: http://www.google.ru/search?q=%D0%9E...client=firefox |
Часовой пояс GMT +4, время: 00:57. |
|
« Предыдущая тема | Следующая тема » |
Теги |
Vector |
|
|