|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2007, 21:03 | #1 |
Регистрация: 14.11.2007
Сообщений: 4
|
Построчный алгоритм заполнения многоугольника с затравкой (Билдер С++)
Программа отображения графических примитивов. Построчный алгоритм заполнения многоугольника с затравкой.
Помогите пожалуйста. Вообще не представляю как это должно быть. Подскажите хоть чем-то. Есть многоугольник (или же его надо самому нарисовать). И программа заполняет его данным алгоритмом. Заранее спасибо. Очень прошу помочь. Последний раз редактировалось SKA_zo4nik; 14.11.2007 в 21:06. |
15.11.2007, 14:29 | #2 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Можно поподробнее, что значит с затравкой?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
15.11.2007, 16:04 | #3 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
это значит что дается внутренний пиксель, и от него пляшем ...
заливка в Painte - это она и есть
Берегите друг друга!
|
15.11.2007, 20:00 | #4 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Ну раз построчный, то построчно и заполняй. Сделай двойной цикл for и в нем проверяй цвет пикселей, если цвет равен заданному меняй его. Похоже на перебор матрицы. Еще нужна будет проверка принадлежности пикселя к многоугольнику.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
15.11.2007, 20:53 | #5 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
Берегите друг друга!
|
16.11.2007, 00:11 | #6 |
Регистрация: 14.11.2007
Сообщений: 4
|
спасибо большое. Буду разбираться.
|
16.12.2007, 12:56 | #7 |
Регистрация: 14.11.2007
Сообщений: 4
|
А у кого-нить есть сам код такой программы на С++? А то мне по коду проще разобраться.........очень нужно...
|
11.01.2008, 22:08 | #8 |
Регистрация: 14.11.2007
Сообщений: 4
|
а как задается затравочный пиксел? вообще не представляю себе, как все должно происходить
|
28.03.2011, 20:15 | #9 |
Новичок
Джуниор
Регистрация: 28.03.2011
Сообщений: 1
|
Алгоритм заполнения с затравкой
есть код Delfi
Код:
first input last output (по принципу патронов в магазине). Принцип работы алгоритма следующий: Поместить затравочный пиксел в стек Пока стек не пуст Извлечь пиксел из стека Присвоить пикселу требуемое значение Для каждого из соседних к текущему 4-х связных пикселов проверить: является ли он граничным пикселом или не присвоено ли уже пикселу требуемое значение. Проигнорировать пиксел в любом из этих двух случаев. В противном случае поместить пиксел в стек. На псевдокоде это можно представить таким образом: Затравка (х, у) выдает затравочный пиксел Push – процедура, которая помещает пиксел в стек Pop – процедура, которая извлекает пиксел из стека Пиксел (х, у) = Затравка (х, у) инициализируем стек Push Пиксел (х, у) while (стек не пуст) извлекаем пиксел из стека Pop Пиксел (х, у) if Пиксел (х, у) < > Нов_значение then Пиксел (х, у) = Нов_значение end if проверим, надо ли помещать соседние пикселы в стек if (Пиксел (х + 1, у) < > Нов_значение and Пиксел (х + 1, у) < > Гран_значение) then Push Пиксел (х + 1, у) if (Пиксел (х, у + 1) < > Нов_значение and Пиксел (х, у + 1) < > гран_значение) then Push Пиксел (х, у + 1) if (Пиксел (х – 1, у) < > Нов_значение and Пиксел (х – 1, у) < > Гран_значение) then Push Пиксел (х – 1, у) if (Пиксел (х, у – 1) < > Нов_значение and Пиксел (х, у – 1) < > гран_значение) then Push Пиксел (х, у – 1) end if end while Простой алгоритм с затравкой не всегда применим, ввиду большого размера стека. Последний раз редактировалось AlDelta; 29.03.2011 в 00:55. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программа решающая по двум переменным через формулу - с++ билдер | NirVv | Помощь студентам | 1 | 09.06.2008 03:45 |
Можно ли в билдер с++ сделать игровой 3Д проект? | Руслантус | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 16.03.2008 03:16 |
Заполнения Webbrowser | GAGARIN-NEW | Компоненты Delphi | 5 | 12.12.2007 23:38 |
Рисование многоугольника (собственный класс) | MaTBeu | Общие вопросы C/C++ | 1 | 08.12.2007 14:53 |
Программа для автоматического заполнения полей | Маркъ | Общие вопросы Delphi | 2 | 23.06.2007 12:38 |