|
0 / 0 / 0
Регистрация: 05.07.2020
Сообщений: 12
|
|
Реализация алгоритмов растровой графики для заполнения сплошных областей06.10.2020, 18:16. Показов 1612. Ответов 3
Метки нет (Все метки)
Помогите, пожалуйста, с лабораторной работой.
Описание алгоритма: Дано : Pop(x,y) -процедура извлечения из стека координат (x,y) очередного пиксела Push(x,y) - процедура помещения в стек координат (x,y) очередного пиксела Нарисовать_точку(x,y,col) - процедура для подкрашивания цветом col пиксела с координатами(x,y) с(x,y) - цвет пиксела с координатами (x,y) cb - цвет для подкрашивания пикселов границы области ci - цвет для подкрашивания пикселов внутри области (х0,y0) - координаты затравочного пиксела Получить : Перекрасить сплошную область с данным затравочным пикселом и цветом границы в цвет ci. 1.Инициализировать стек:Push(x0,y0). 2.Пока стек не пуст выполнить: начало Извлечь пиксел из стека и закрасить его в цвет области: Pop(x,y); Нарисовать_точку(x,y,ci); 3.Присвоить: xw=x; x=x+1. 4.Пока c(x,y) # cb заполняем интервал справа от затравки: Нарисовать_точку(x,y,ci); x=x+1;по окончанию идти к 5. 5.Присвоить: xr=x-1; x=xw; x=x-1. 6.Пока c(x,y) # cb заполнть интервал слева от затравки: Нарисовать_точку(x,y,ci);x=x-1; по окончанию идти к 7. 7.Сохранить крайний слева пиксел: xl=x+1; 8.Проверить строки ниже и выше данной, если там есть еще незаполненные пикселы искать затравку, начиная с левого края: Для j от -1 до 2 с шагом 3 выполнить: начало x=xl; y=y+j; Пока x <= xr искать затравку на строке ниже(выше): начало fl="ложь"; Пока ( c(x,y)#cb and c(x,y)#ci and x<xr ) заполнить точки внутри: начало Увеличить х на единицу. Если (not fl) = "истина" то присвоить fl="истина". конец Если fl="истина" то крайний справа пиксел - в стек: начало Если ( x=xr and c(x,y)#cb and c(x,y)#ci ) то Push(x,y) иначе Push(x-1,y). Присвоить fl="ложь". конец Продолжить проверку,если интервал был прерван: Присвоить xb=x. Пока (c(x,y)=cb or c(x,y)=ci and x<xr) увеличить x на 1. Если x=xb то присвоить: x=x+1. конец конец конец пункта 2. 6.Закончить. Алгоритм правильно заполняет любую область, справляется с внутренними дырами и зубцами на границе. Используется при закраске, когда известна хотя бы одна точка внутри необходимой для закрашивания области. Задание: 1. Написать на языке PASCAL программу, реализующую алгоритм заливки многоугольника любой формы. 2. Проверить правильность работы программы, нарисовав с помощью функций модуля GRAPH невыпуклый многоугольник (с дырами внутри), закрасьте его заданным цветом, указав координаты принадлежащей многоугольнику точки. 3. Написать и отладить программу, реализующую алгоритм построчного заполнения выпуклого многоугольника, заданного координатами вершин и цветом границы.
0
|
|
| 06.10.2020, 18:16 | |
|
Ответы с готовыми решениями:
3
Реализация алгоритмов растровой развертки линий Рисование сплошных областей Загрузка растровой графики |
|
|
||||||
| 07.10.2020, 13:25 | ||||||
Сообщение было отмечено mr-Crocodile как решение
Решение
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.07.2020
Сообщений: 12
|
|
| 16.10.2020, 13:01 [ТС] | |
|
Спасибо! Но у меня компилятор пишет:"Нет индексного свойства по умолчанию для типа set of Tuple '2" (в строке 15). Как это исправить?
0
|
|
|
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
|
|
| 16.10.2020, 13:06 | |
Сообщение было отмечено musikh как решение
Решение
musikh, обновляй PascalABC.NET
1
|
|
| 16.10.2020, 13:06 | |
|
Помогаю со студенческими работами здесь
4
Поточные выводы растровой графики Стили заполнения областей Графики скорости работы алгоритмов сортировки Посоветуйте пакет для работы с растровой графикой
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|