![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 93
|
![]()
Есть небольшой рисунок, нужно отбросить всё, что находится вне трапеции. Что посоветуете? - (отбросить это значит закрасить/залить белым, например)
![]() Последний раз редактировалось AlexDn; 01.06.2015 в 20:43. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
![]()
Вот кусок алгоритма, может не совсем красивого, но быстрее всего подходящего для вашего задания. Написал на "полуДельфийском" языке:
Код:
P.S. На рисунке не трапеция, вспоминайте геометрию за 9 (10?) класс. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 93
|
![]()
Что то я не понимаю как Ваш алгоритм сможет отличить где область внутри трапеции?
|
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Этот алгоритм можно себе визуально представить так: сначала плеснули белой краской слева-направо (справа от четырехугольника оказалась незакрашенная область - он её "закрыл" собой), затем справа-налево (докрасили "защищенную" область). Каждая строка красится, пока не упрёмся в четырехугольник. Такой алгоритм сработает только на выпуклом четырехугольнике.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 28.09.2013
Сообщений: 115
|
![]()
находите координаты первой точки (не черной и не белой), и заливаете белым
Код:
Что бы еще такого сделать, чтобы ничего не делать?
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
![]() Цитата:
В моем алгоритме мы идем построчно слева направо пока не найдем черную точку (либо до конца рисунка). Если черная точка нашлась - значит мы "натолкнулись" на трапецию и ДАЛЬШЕ НЕ ИДЕМ. И так с каждой строчкой повторить. Но при таком алгоритме будет залита левая часть от трапеции. Поэтому делаем аналогично: идем с последней точки строки влево, пока не встретим черную точку (т.е. границу трапеции). PS Этот алгоритм подходит для любого ВЫПУКЛОГО многоугольника. Последний раз редактировалось GNDragonFly; 02.06.2015 в 11:45. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вот такая задачка... | nark25 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 31.05.2009 23:40 |
вот такая задачка | student90 | БД в Delphi | 3 | 25.09.2008 10:12 |