![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
BOB4uK |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 28.2.2004 Репутация: нет Всего: нет |
Есть массив точек, упорядоченных по алфавиту (ABCDEF), при построении многоугольника ВИЗУАЛЬНО они должны располагаться ПО ЧАСОВОЙ СТРЕЛКЕ!
Вопрос: Как программно можно определить, что ВИЗУАЛЬНО точки расположены по часовой или против часовой стрелки? Пример на рисунке… ![]() Сначала я думал что если последняя точка находится слева от первой -> против часовой стрелки, если же справа -> по часовой стрелке, но потом пришел пример (на втором рисунке) в голову который этот вариант отбросил! ![]() |
|||
|
||||
Soah |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 18.2.2009 Репутация: 9 Всего: 54 |
Проверяем с конца, есть ли точки между которыми находится А по горизонтали(для последнего примера [G,F], [F,E], [E,D], [D,C])
если есть, тогда смотрим где они находятся по вертикали если выше A, тогда смотрим на значение х у этих точек если x уменьшается, значит против часовой если увеличивается, значит по часовой если ниже A, смотрим на значение х у этих точек если x уменьшается, значит по часовой если увеличивается, значит против часовой если нет таких точек, тогда делай как ты написал. |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 5 Всего: 41 |
мысли некоторые появились:
1) либо можно раскрутить такой вариант если по часовой то при движении вправо от АВ (относительно АВ, надо понимать что если АВ параллельно оси ох, то право от АВ будет вверху, или внизу, завист от конкретных координат А и В) мы попадаем в область фигуры (точки, которые принадлежат фигуре), а в обратном направлении мы попадаем в свободную область... не знаю, понял ли ты... но вот такая идея, смотреть относительно АВ, либо мы входим в фигуру, либо выходим из нее Можно не обязательно брать АВ, а две любые последовательные точки... В B A \ | | право \ право | право право| А ___________В В____________А \ | | право А A B думаю, понятно что имеется ввиду под понятием право относительно АВ 2) это уже долго объяснять не буду, тупо считать куда мы поворачиваем и сколько раз рисуя фигуру (это образно) те смотреть что В относительно А выше (запомнить что пошли вверх), С относительно В левее (запомнить и это) а потом проанализировать путь... тоже вариант... не знаю понял ты или нет, но я старался ... ![]() ![]() ![]() ![]() ![]() Это сообщение отредактировал(а) Dmi3ev - 28.2.2009, 20:22 -------------------- |
|||
|
||||
Alexiski |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
Сортируем точки, выбираем самый верхний отрезок. По его направлению можно судить о направлении обхода однозначно.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |