Показать сообщение отдельно
Старый 16.03.2011, 15:20
dedsky вне форума Посмотреть профиль Отправить личное сообщение для dedsky Найти все сообщения от dedsky
  № 8  
Ответить с цитированием
dedsky
 
Аватар для dedsky

Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
Я тут кажись чего-то родил

Перебираем все объекты Point.
Уточнение: для каждого объекта P0, P1 и т.д. создан массив со всеми прилегающими сторонами. Сторона описана двумя векторами. На схеме обозначены синими стрелками. (Про вектор наглядно показано здесь)

Из P0 движемся в следующую соседнюю вершину (P1), здесь встречаем свой массив векторов. Для поворота направо определяем вектор из этого массива с наименьшим углом к P0 P1. По нему движемся дальше до встречи с начальной точкой. Всё, первый спрайт создан (0 в красном кружке).
Смотрим следующую точку.
Точки, у которых перебрали все вектора исключаем из перебора.

Примерно так. Думал наткнуться на готовый алгоритм.
Извините за косноязычие, не могу доходчиво объяснять задачу.