Ssylka

Объектно-ориентированное рисование фигур в GIMP Script-Fu

В Script-Fu, для создания фигур, используется объектный подход, где каждая фигура — это объект с методами для инициализации, рисования и получения габаритов. Это позволяет избежать централизованной функции отрисовки и упрощает расширение функциональности.
Объектно-ориентированное рисование фигур в GIMP Script-Fu
Изображение носит иллюстративный характер

Для реализации «наследования» используется макрос, который вставляет тело шаблонной функции в метод. Это позволяет избежать дублирования кода. Определены классы фигур: brush-fig, shape-fig, pencil-fig, каждый из которых реализует свой метод отрисовки.

Класс complex-fig позволяет объединять несколько фигур в одну. При этом сохраняется абстракция фигуры, что упрощает работу с составными фигурами. Каждая фигура может быть отрисована в заданной рамке с помощью метода draw-to-rect, который автоматически применяет нужное преобразование.

В качестве примера показано создание стрелки, которая может быть частью сложной фигуры, и отрисовка составных фигур в разных рамках. Это демонстрирует гибкость объектно-ориентированного подхода и возможность повторного использования кода.


Новое на сайте

15287Жидкость, восстанавливающая форму: нарушение законов термодинамики 15286Аркадия ведьм: загадка Чарльза годфри Леланда и её влияние на современную магию 15285Кто станет новым героем Звёздных войн в 2027 году? 15283Ануше Ансари | Почему космические исследования важны для Земли 15282Гизем Гумбуская | Синтетический морфогенез: самоконструирующиеся живые архитектуры по... 15281Как предпринимателю остаться хозяином своей судьбы? 15280Люси: путешествие к древним обломкам солнечной системы 15279Роберт Лиллис: извлеченные уроки для экономически эффективных исследований дальнего... 15278Почему супермен до сих пор остаётся символом надежды и морали? 15277Райан Гослинг в роли нового героя «Звёздных войн»: что известно о фильме Star Wars:... 15276Почему экваториальная Гвинея остаётся одной из самых закрытых и жестоких диктатур мира? 15275Почему морские слизни становятся ярче под солнцем? 15274Глен Вейль | Можем ли мы использовать ИИ для построения более справедливого общества? 15273Лириды: где и как увидеть древний звездопад в этом апреле? 15272Сдержит ли налог на однодневных туристов в Венеции наплыв гостей?