имя алгоритма для островных полигонов между неперекрывающимися объектами - PullRequest
0 голосов
/ 06 мая 2020

Я ищу название алгоритма и не могу определить, какой это алгоритм. Моя задача:

Дано: 1. Размер (ширина, высота) родительского контейнера 2. Позиция (X, Y) и размер (ширина, высота) для количества прямоугольных angular и квадратных частиц которые не могут перекрывать друг друга и могут уместиться внутри контейнера

Задача: найти пустые точки многоугольника либо против часовой стрелки, либо по часовой стрелке, когда пользователь нажимает на пустое место

Я пробовал ,

enter image description here

Мой код

https://pastebin.com/2cnMb67G

while ((islandCurrentX != islandStartX || islandCurrentY != islandStartY) && count < 500)
                                                {
                                                    int tempIslandX = (islandCurrentX == -1 ? islandStartX : islandCurrentX);
                                                    int tempIslandY = (islandCurrentY == -1 ? islandStartY : islandCurrentY);
                                                    //break;
                                                    count++;

Но если Я следую этому, когда я достигну нижней части пустой части, он снова идет против часовой стрелки, а не по часовой стрелке. По какому алгоритму искать в inte rnet? Еще одна вещь, я искал алгоритм связанных компонентов, который предназначен для пиксельной обработки данных. Но у меня есть данные о положении и размере. Если я конвертирую его в пиксельный формат, моя форма windows (C#) станет медленной во время поиска. (нужно искать по каждому клику). Заранее спасибо

1 Ответ

0 голосов
/ 08 мая 2020

Спасибо за потраченное драгоценное время. Я сделал это, меняя последовательные направления после каждого движения. https://pastebin.com/dNrHFn5W

(начинается с)

List<Point> points = new List<Point>();
DataRow[] drNearestTop = dtCurrentPattern.Select("Starting_Y+Image_Length<" + controlRelatedCoords.Y + " and Starting_X<=" + controlRelatedCoords.X + " and Starting_X+Image_Width>=" + controlRelatedCoords.X + "");

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...