|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.06.2015, 20:28 | #1 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 93
|
Вот такая графическая задачка
Есть небольшой рисунок, нужно отбросить всё, что находится вне трапеции. Что посоветуете? - (отбросить это значит закрасить/залить белым, например)
Последний раз редактировалось AlexDn; 01.06.2015 в 20:43. |
01.06.2015, 22:32 | #2 |
Пользователь
Регистрация: 05.07.2012
Сообщений: 11
|
Вот кусок алгоритма, может не совсем красивого, но быстрее всего подходящего для вашего задания. Написал на "полуДельфийском" языке:
Код:
P.S. На рисунке не трапеция, вспоминайте геометрию за 9 (10?) класс. |
01.06.2015, 23:18 | #3 |
Пользователь
Регистрация: 02.10.2009
Сообщений: 93
|
Что то я не понимаю как Ваш алгоритм сможет отличить где область внутри трапеции?
|
01.06.2015, 23:52 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Этот алгоритм можно себе визуально представить так: сначала плеснули белой краской слева-направо (справа от четырехугольника оказалась незакрашенная область - он её "закрыл" собой), затем справа-налево (докрасили "защищенную" область). Каждая строка красится, пока не упрёмся в четырехугольник. Такой алгоритм сработает только на выпуклом четырехугольнике.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
02.06.2015, 00:05 | #5 |
Форумчанин
Регистрация: 28.09.2013
Сообщений: 115
|
находите координаты первой точки (не черной и не белой), и заливаете белым
Код:
Что бы еще такого сделать, чтобы ничего не делать?
|
02.06.2015, 11:39 | #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 |