Разработка векторного редактора в среде Delphi

Возможности и функции современных графических редакторов. Создание графического векторного редактора на языке визуального программирования Delphi. Описание классов TLine и TListLine. Варианты построения линии в зависимости от настраиваемых параметров.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 29.04.2018
Размер файла 373,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Стерлитамакский филиал Башкирского государственного университета

УДК 004.424

Разработка векторного редактора в среде Delphi

Гаскаров А.Г., Дмитриев В.Л.

В настоящее время достаточно большое количество графических редакторов могут работать с двумя видами изображений: растровыми и векторными. Современная векторная графика - не просто геометрические фигуры с элементами текста. Векторные программы - это мощные инструменты с возможностью создания фотореалистических коллажей. Граница между векторной и растровой графикой постепенно исчезает. И то, что раньше было возможно только в растровых редакторах, теперь доступно пользователям таких пакетов, как Adobe Illustrator, Expression, Canvas, InkScape, Scribus, и др.

Многие современные графические редакторы для своего нормального функционирования предъявляют высокие требования к компьютерам, например, мощный процессор, большой объем оперативной памяти. Отчасти это связано с тем, что многие разработчики современного программного обеспечения намеренно забывают об оптимизации кода программ, рассчитывая в основном лишь на мощности современных систем. Такой подход оправдан, очевидно, тем, что он существенно сокращает время разработки программы за счет использования стандартных вычислительных алгоритмов. Но с точки зрения быстродействия, а в некоторых случаях, и качества, такой подход нецелесообразен. В результате оптимизации кода программы, предъявленные требования могут быть существенно уменьшены. Для этого надо знать принципы работы таких графических редакторов. С этой целью в представленной работе рассматривается возможность создания графического векторного редактора на языке визуального программирования Delphi, обладающего достаточным инструментарием для реализации наиболее распространенных задач.

Кроме того, в случаях, когда часто приходится рисовать какие-либо простейшие фигуры и различным образом менять их форму, использование программ, требующих значительных системных ресурсов, нецелесообразно; можно использовать ряд более простых продуктов, в том числе и программу, описанную в данной работе.

К числу необходимых функций, которыми должен обладать простейший графический редактор, относятся:

- построение простейших геометрических фигур и линий (прямоугольник, эллипс, прямая, ломаная, и другие);

- написание какого-либо текста;

- возможность изменять форму, цвет (контура и заливки), толщину контура, стиль заливки уже построенных фигур;

- возможность перемещать и копировать построенные фигуры;

- возможность сохранять результаты работы в виде отдельного файла в нескольких форматах;

- возможность открыть и редактировать ранее сохраненную работу.

Для работы с прямоугольниками, эллипсами, прямыми, ломаными, текстом удобно описать новые классы объектов. Назовем их соответственно TRectangle, TEllipse, TLine, TBrokenLine, TText. Также необходимо создать соответствующие списки классов TListRectangle, TListEllipse, TListLine, TListBrokenLine, TListText. Кроме того, для работы с разнообразными стилями заливки и стилями линий описываются соответствующие новые типы. Так как часть свойств и методов одного класса может повторяться в другом классе, то необходимо использовать механизмы наследования.

Ниже для примера приведена часть кода, содержащая описание двух классов - TLine и TListLine (подробных описаний методов соответствующих классов не приводится, т.к. они достаточно громоздки и сложны).

TLine = class

private

Old_X,Old_Y: Integer;

function Patch(xx,yy: Integer): Real;

procedure PenBrushStyle(Sender: TImage);

procedure SetLineProperty(TLS: T_LineStyle);

procedure ViewCollection1(Sender: TImage); //свободная волна

procedure ViewCollection2(Sender: TImage); //пилообразная линия

procedure ViewCollection3(Sender: TImage); //винтовая линия

procedure ViewCollection4(Sender: TImage); //спираль

procedure ViewCollection5(Sender: TImage); //роза

procedure ViewCollection6(Sender: TImage); //синусоида

public

x1,y1,x2,y2: Integer;

Color: TColor;

Style: T_LineStyle;

Width: Byte;

District: Word;

MarkerWidth: Word;

Marker_OK: Boolean;

L_C1: L_Collection1;

L_C2: L_Collection2;

L_C3: L_Collection3;

L_C4: L_Collection4;

L_C5: L_Collection5;

L_C6: L_Collection6;

constructor Create(xx,yy: Integer); overload;

procedure Move(Sender: TImage; xx,yy: Integer; Size: Byte);

procedure RePaint(Sender: TImage; Col: Boolean);

procedure Marker(Sender: TImage);

function Resize(xx,yy: Integer): Byte;

procedure Constr_Copy(VR_TR: TLine);

end;

TListLine = class

private

List: TList;

public

Count: Integer;

SelectItem: Integer; //определяет ближайшую фигуру при ее выделении

Number_Select: Integer; //хранит номер выделенной фигуры

constructor Create;

procedure Add(xx,yy: Integer);

function Path_Selected(xx,yy: Integer):Real;

end;

Любая линия или фигура может быть скопирована и в дальнейшем вставлена на любом этапе работы с программой. Кроме того, реализована возможность расширенной вставки - в этом случае вставлять можно любую из ранее скопированных фигур пяти видов. Для реализации этой возможности описан следующий тип:

F_Clipboard = record {Хранит информацию о типах скопированных фигур}

F_Clip_1: TRectangle;

F_Clip_2: TEllipse;

F_Clip_3: TLine;

F_Clip_4: TBrokenLine;

F_Clip_5: TText;

F_Type: Byte; //тип последней скопированной фигуры

F_ExtType: array[1..5] of Boolean; //типы уже скопированных фигур

end; {F_Clipboard}

При отрисовке линий поддерживаются широкие возможности настройки их свойств, что зачастую приводит к тому, что линия становится похожей более на какую-либо фигуру (рис. 1). Для ломаной линии предусмотрены следующие возможности: добавление и удаление узлов, замыкание линии. Кроме того, ломаная линия может быть трех типов (простая ломаная, линия четвертого порядка, кривая Безье).

Рис. 1. Некоторые варианты линии в зависимости от настраиваемых параметров

графический редактор векторный delphi

Для фигур предусмотрены три стиля заливки: заливка линиями, градиентная заливка, текстурное заполнение. В первых двух случаях предоставляются широкие возможности настройки свойств заливки. В третьем случае происходит заполнение выбранной текстурой (текстура хранится во внешнем файле), добавлена возможность пользователю самостоятельно добавить новые текстуры в программу.

При работе с текстом доступны настройки следующих его свойств: название шрифта, высота и ширина букв, угол поворота, цвет, стиль начертания (жирный, курсив, подчеркнутый, зачеркнутый). Над текстом могут быть проведены все те операции, которые доступны другим объектам, в частности это: копирование, вставка, перемещение, выделение, порядок следования.

Результаты работы сохраняются в файл внутреннего формата программы (собственная разработка автора) с возможностью последующего редактирования. Поддерживается экспорт в наиболее популярные графические форматы BMP, JPEG (можно задать качество изображения); при этом можно сохранять изображение в оттенках серого.

Внешний вид окна программы с простейшим готовым изображением приведен на рис. 2. В левой части окна программы располагается панель инструментов, позволяющая работать с основными объектами редактора. Также здесь расположены кнопки экспорта, сохранения и открытия файлов. С правой стороны окна располагается панель свойств, позволяющая производить настройку параметров добавленных фигур. В нижней части окна программы располагается строка статуса, отображающая некоторую информацию относительно выбранных линий и фигур, а также показывающая текущие координаты мыши.

Рис. 2. Внешний вид окна векторного редактора с готовым изображением

Алгоритмы и классы, разработанные в программе, также могут служить основой для разработки более сложных программных продуктов, а также использоваться при обучении программированию больших программных комплексов. Написанная программа относительно легко поддается модификации, что позволяет добавлять в нее новые возможности.

Размещено на Allbest.ru

...

Подобные документы

  • Изучение особенностей растровых и векторных графических редакторов. Создание графического редактора: выбор языка программирования, разработка структуры программы и алгоритма работы. Описание интерфейса программы. Руководство программиста и пользователя.

    курсовая работа [1,3 M], добавлен 28.07.2013

  • Разработка программы, аналога Paint системы Windows, с функциями открытия изображения в графическом редакторе и его сохранения, написания текста в любом указанном мышкой месте, изменения шрифта, размера и цвета текста на языке программирования Delphi.

    курсовая работа [278,5 K], добавлен 06.04.2014

  • Понятие "компьютерная графика". Изучение графических редакторов в школьном курсе для 8-го класса. Способы создания цифровых графических объектов. Представление о цветовых моделях. Анализ программы Inkscape. Копирование файла в папку установки приложения.

    курсовая работа [1,5 M], добавлен 17.05.2014

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое, как планируется, будет обеспечивать решение специализированных задач по формированию, обработке на ЭВМ и выводу информации.

    курсовая работа [967,6 K], добавлен 20.05.2008

  • Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.

    дипломная работа [3,6 M], добавлен 13.07.2011

  • Описания объектов, свойств, методов, формы и основных модулей текста программы в среде Delphi. Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования. Анализ результатов тестирования программного продукта.

    курсовая работа [2,4 M], добавлен 27.08.2012

  • Разработка программы по оформлению заказов на билеты Оренбургского государственного областного драматического театра им. Горького. Использование объектно-ориентированного программирования и реализация проекта в среде визуального программирования Delphi 7.

    курсовая работа [6,3 M], добавлен 12.11.2014

  • Рассмотрение особенностей среды программирования Delphi, анализ клиент-серверной версии. Знакомство с библиотекой визуальных компонентов. Основные функции интеллектуального редактора. Характеристика требований к базам данных. Функции программы "Магистр".

    дипломная работа [1,5 M], добавлен 10.03.2013

  • Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.

    курсовая работа [40,8 K], добавлен 15.07.2009

  • Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.

    презентация [184,3 K], добавлен 18.03.2014

  • Виды графических редакторов. Форматы файлов для хранения растровых графических изображений. Среда графического редактора. Панели инструментов и режимы работы графических редакторов. Инструменты редактирования рисунка. Изменение шрифта текста на рисунке.

    контрольная работа [246,6 K], добавлен 16.12.2010

  • Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.

    контрольная работа [703,8 K], добавлен 24.09.2012

  • Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.

    курсовая работа [1,3 M], добавлен 25.11.2014

  • Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.

    контрольная работа [3,6 M], добавлен 18.10.2012

  • Интегрированная среда разработки Delphi и элементы, входящие в ее состав. Математическая модель, алгоритм решения и его свойства. Описание операторов, процедур, функций и методов. Создание приложений по аналитической геометрии и теоретической механике.

    курсовая работа [1,8 M], добавлен 26.05.2010

  • Разработка программы генератора звука в среде Borland Delphi с использованием стандартных классов TMemoryStream (для хранения звука в виде бинарных данных) и TStrings (для хранения характеристик конкретной частоты). Запись звука в файл (форматы).

    курсовая работа [160,5 K], добавлен 22.11.2014

  • Возможности применения растровой, векторной и фрактальной компьютерной графики. История создания рекламы. Использование интерактивных графических систем в рекламе. Создания макета календаря с помощью векторного графического редактора Adobe Illustrator.

    курсовая работа [1,6 M], добавлен 20.10.2014

  • Реализация системы визуального программирования. Выбор технических средств для нее. Варианты использования языка JavaScript. Создание приложения программы-редактора блок-схем и сайта удалённого обучения на основе интерактивной системы обучения Moodle.

    дипломная работа [2,2 M], добавлен 07.07.2012

  • Организация работы в среде визуального программирования Delphi. Настройка, конфигурация и главное окно формы. Модификация формы, свойств и событий. Пиктографические кнопки, палитра компонентов, окно инспектора объектов. Процесс построения приложения.

    реферат [40,3 K], добавлен 23.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.