Разработка векторного редактора в среде 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.2008Delphi как среда разработки программ, ориентированных на работу в 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.2012Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.
курсовая работа [1,3 M], добавлен 25.11.2014Borland 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