2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5 ... 8  След.
 
 Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 16:38 


21/05/16
4292
Аделаида
Скажем, у нас есть картинка, и на ней пикселями задан многоугольник (причем он может быть и не совсем многоугольником, скажем, "линза", деленная линией пополам).
Какой можно сделать алгоритм нахождения порядка "отрисовки" вершин многоугольника, для того, чтобы потом использовать это как polygon в SVG?

Гугл молчит.
Сам пытался пробовать делать алгоритм хождения в противоположном направлении (т.е. направление, откуда пришел) "поворачивая" такую стрелку в противоположном направлении против часовой, и смотря, где она пересеклась с многоугольником, и алгоритм хождения в "прямом" направлении, поворачивая стрелку по часовой. Но есть примеры, где оба этих алгоритма не работают.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 17:20 
Заслуженный участник


27/04/09
28128
Кажется, понял задачу. То есть есть какое-то связное множество, склеенное из квадратиков квадратной сетки, и вы ходите по их центрам, пытаясь получить ломаную, которая будет содержать все центры квадратиков этого множества? Я бы предложил ходить по вершинам внешних квадратиков, так и с направлением обхода трудно будет что-то не так сделать — всегда (кроме начального хода, когда есть выбор, и можно легко сориентироваться, куда идти, чтобы обход был по часовой или против часовой по желанию) можно идти только в одну сторону — туда, где ещё не посещали.

Или не то?

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 17:23 


21/05/16
4292
Аделаида
arseniiv в сообщении #1457652 писал(а):
То есть есть какое-то связное множество, склеенное из квадратиков квадратной сетки, и вы ходите по их центрам, пытаясь получить ломаную, которая будет содержать все центры квадратиков этого множества?

Да, правильно. Только не центров, а просто квадратиков (это пиксели) и надо, чтобы ломаная содержала вершины в правильном порядке.
arseniiv в сообщении #1457652 писал(а):
Я бы предложил ходить по вершинам внешних квадратиков, так и с направлением обхода трудно будет что-то не так сделать — всегда (кроме начального хода, когда есть выбор, и можно легко сориентироваться, куда идти, чтобы обход был по часовой или против часовой по желанию) можно идти только в одну сторону — туда, где ещё не посещали.

Хм, хорошая идея. Надо будет подумать.

-- 25 апр 2020, 00:59 --

В случае многоугольника, похоже, так получится. А в случае
kotenok gav в сообщении #1457645 писал(а):
"линза", деленная линией пополам
?

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 17:35 
Заслуженный участник


27/04/09
28128
Я не очень понял какая это форма, но для любого односвязного (да, выше забыл точнее написать, а то дырки будут) множества так должна найтись граница. Можно даже неквадратные пиксели брать, а брать произвольное замощение плоскости и его односвязный состоящий из целого числа плиток кусок. (Да и с дырками можно разобраться, если сначала найти их.)

А потом вы собирались упрощать границу? А то больно задача на трассировку растровой картинки похожа. Если так, то по алгоритмам трассировки по идее должна быть какая-то литература… я только не знаю какая, не интересовался.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 17:43 


21/05/16
4292
Аделаида
Множество односвязно, но дело в том, что там у вершины пикселя может быть несколько соседей (больше двух).

Похоже, это и есть трассировка, спасибо!
Погуглю.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 17:47 
Заслуженный участник


27/04/09
28128
kotenok gav в сообщении #1457659 писал(а):
Множество односвязно, но дело в том, что там у вершины пикселя может быть несколько соседей (больше двух).
Ну да, до четырёх, но ведь только те соседи, которые «дышат воздухом», нам интересны.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 17:50 


21/05/16
4292
Аделаида
arseniiv в сообщении #1457662 писал(а):
Ну да, до четырёх, но ведь только те соседи, которые «дышат воздухом», нам интересны.

Скажем, в такой линзе у начальной точки будут четыре соседа, в одном из которых мы уже были. Если мы будем выбирать следующего соседа случайно, есть риск не пойти по какой-то линии.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 18:02 
Заслуженный участник


27/04/09
28128
Да, всё-таки я наверно не понял как она выглядит… Нарисуйте как-нибудь.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 18:53 


21/05/16
4292
Аделаида
Линзой я называю что-то типа такого:
https://hostingkartinok.com/show-image.php?id=138731750ff610c1e30b8abc4caaf05f

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 19:20 
Заслуженный участник


27/04/09
28128
Изображение :-(

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 19:35 


21/05/16
4292
Аделаида
Еще будут проблемы с таким:
https://hostingkartinok.com/show-image.php?id=42e2ad14cc7d13a956b2b3ddbcad4d7b

-- 25 апр 2020, 03:05 --

Странно, у меня открывается.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 19:36 


05/09/16
12108
В качестве идеи. "Правильный порядок" -- такой, при котором длина (периметр) минимальна и нет самопересечений.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 19:43 
Заслуженный участник


27/04/09
28128
Если переходить по прямой ссылке типа https://s8.hostingkartinok.com/uploads/images/2020/04/42e2ad14cc7d13a956b2b3ddbcad4d7b.png, фаерфокс говорит такое:
    Цитата:
    Ошибка при установлении защищённого соединения

    При соединении с s8.hostingkartinok.com произошла ошибка.

    • Страница, которую вы пытаетесь просмотреть, не может быть отображена, так как достоверность полученных данных не может быть проверена.
    • Пожалуйста, свяжитесь с владельцами веб-сайта и проинформируйте их об этой проблеме.
Может быть это проблема с предлагающим провайдерам блокировать всё подряд роскомнадзором, не знаю.

-- Пт апр 24, 2020 21:45:26 --

Если вставить её в img, то форум пишет «не удалось определить размеры изображения», хм. Ожидалось бы наверно что не должен.

P. S. Ссылка в посте ниже тоже не открывается.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 19:46 


21/05/16
4292
Аделаида
Прямая ссылка на первую картинку:
https://s8.hostingkartinok.com/uploads/ ... aaf05f.png

-- 25 апр 2020, 03:17 --

А вот вторая у меня тоже не открывается.

 Профиль  
                  
 
 Re: Алгоритм "поиска" многоугольника
Сообщение24.04.2020, 20:12 


05/09/16
12108
kotenok gav
На радикал залейте :)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 116 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group