- •Введение
- •Рекомендуемая литература:
- •Цели и задачи курсовой работы
- •Постановка задачи курсовой работы
- •Задание на выполнение
- •Требования к оформлению
- •Курсовая работа по дисциплине «Высокоуровневые методы информатики и программирования» Табличный и графический способ представления данных на языках высоко уровня
- •Вопросы к защите
- •Методические рекомендации
- •6.1. Представление данных
- •6.1.1. Функции преобразования.
- •6.1.2. Ввод данных
- •6.1.3. Вывод данных
- •6.1.4. Использование компонента StringGrid.
- •6.1.5. Элементы управления программой
- •6.2. Графические возможности ide
- •6.2.1. Вывод иллюстраций и графиков на форму
- •6.2.2. Создание изображений в виде битовых матриц и пиктограмм
- •6.2.3. Создание рисованных изображений
- •6.2.4. Инструменты для рисования
- •6.2.5. Методы вычерчивания графиков
- •6.2.6. Рекомендации по созданию графического интерфейса
- •6.3. Запись инструкций программы
- •6.4. Компьютерное моделирование в Simulink
- •6.5. Оформление пояснительной записки в текстовом редакторе
- •6.6. Создание оглавления
6.2.2. Создание изображений в виде битовых матриц и пиктограмм
В среде Delphi имеется встроенный Редактор Изображений – Image Editor (рис. 9), который вызывается командой Tools (Сервис)/Image Editor. Этот редактор позволяет создавать изображения в виде битовых матриц, пиктограмм, изображений курсоров и не только сохранять созданные изображения в виде файлов, но и сразу включать их в файл ресурсов приложения.
Рис. 9. Окно Image Editor
В пункте меню File среды можно выбрать опцию Open, открывая тем самым новый файл изображения, или опцию New – создать новый файл. В последнем случае необходимо выбрать вид файла. Например, требуется создать свой рисунок в виде битовой матрицы, чтобы затем вставить его в основную графику как легенду – список переменных, используемых при построении графика или пиктограмму в кнопку BitBtn. Тогда, выбор раздела Bitmap File из списка вида файла открывает окно, в котором предлагается установить размер матрицы по горизонтали и вертикали, а также выбрать набор цветов: 2, 16 или 256. После сделанных установок в окне Image Editor появятся границы будущего рисунка, в пределах которых, используя представленные инструменты и палитру, можно начать творить изображение. При этом палитра, открываемая левым квадратиком, используется при рисовании с помощью левой кнопки мыши, а палитра, открываемая правым квадратиком, – при рисовании с помощью правой кнопки мыши.
После прорисовки картинки файл следует сохранить с расширением *.bmp. В дальнейшем можно загрузить его с помощью окна Picture Editor, открываемого свойством Picture графического образа или в компонент BitBtn, используя свойство Glyph (или компонент MainMenu, используя свойство BitMap).
Файл пиктограммы для приложения создается аналогично. Только при выборе вида файла из списка необходимо выбрать раздел Icon File и сохранить пиктограмму в виде файла с расширением *.ico.
Чтобы ввести в приложение значок, отличный от стандартного, нужно выбрать команду Project/Options и на вкладке Application диалогового окна Project Options (Опции проекта) щелкнуть мышью по кнопке Load Icon (Загрузить Иконку). В стандартном окне папок найти и открыть требуемый файл пиктограммы (*.ico). После запуска приложения новый значок появится на месте стандартного.
В среде Lazarus (FreePascal) Редактор Изображений отсутствует, поэтому рисунок создается в одном из графических редакторов (например, Paint или Adobe Photoshop), сохраняется с расширением *.bmp или *.png и загружается с помощью свойства Picture графического образа Image или свойства Glyph в компонент BitBtn соответственно. При создании рисунка для кнопки BitBtn размеры его выбираются 16х16.
6.2.3. Создание рисованных изображений
Рисованные изображения получаются на холсте (поверхности формы или объекта Image) при выполнении программы с помощью различных инструментов. Изображение при этом представляет собой комбинацию простейших фигур – графических примитивов (точка, линия, круг или прямоугольник).
Холст состоит из отдельных точек – пикселей (рис. 10). Пиксель – это наименьший элемент поверхности рисунка, с которым можно манипулировать. Важное свойство пикселя – его цвет. Для описания цвета используется тип TColor. Каждая точка холста имеет координаты X и Y, которые измеряются в пикселях.
Рис. 10. Координаты точек холста
При выполнении графических операций используется текущий указатель (указатель позиции). Он представляет собой невидимый маркер, определяющий на холсте позицию, начиная с которой выполняется следующая графическая операция. Текущая позиция определяется горизонтальной (X) и вертикальной (Y) координатами. По умолчанию начало системы координат (0,0) находится в левом верхнем углу поверхности рисования (рис.10).
Координата Х возрастает при перемещении указателя слева на право, а координата Y – при перемещении его сверху вниз. Значения координат правой нижней точки холста зависят от размера холста. Размер холста можно получить, обратившись к свойствам Width (ширина) и Height (высота) области иллюстрации (Image1) или к свойствам формы ClientWidth и ClientHeight.
Поверхности (канва, холст) объекта, на который выводится графика, соответствует свойство Canvas. В свою очередь, свойство Canvas – это объект типа ТCanvas. Методы этого типа приведены в таблице 7, а способы применения – рис. 11. Они обеспечивают вывод графических примитивов, а свойства позволяет задать характеристики графических примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации.
Табл. 7
Метод |
Описание |
Procedure Arc (X1, Y1, X2, Y2, X3, Y3, X4, Y4:Integer) |
Чертит дугу эллипса в охватывающем прямоугольнике (X1,Y1) – (X2,Y2). Начало дуги лежит на пересечении эллипса и луча, проведенного из его центра в точку (X3,Y3), а конец – на пересечении с лучом из центра в точку (X4,Y4). Дуга чертится против часовой стрелки. |
Procedure Chord (X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer) |
Чертит сегмент эллипса в охватывающем прямоугольнике (X1,Y1) – (X2,Y2). Начало дуги сегмента лежит на пересечении эллипса и луча, проведенного из его центра в точку (X3,Y3), а конец – на пересечении с лучом из центра в точку (X4,Y4). Дуга сегмента чертится против часовой стрелки, а начальная и конечная точки дуги соединяются прямой. |
Procedure Ellipse (X1, Y1,X2,Y2: Integer) |
Чертит эллипс в охватывающем прямоугольнике (X1,Y1) – (X2,Y2). Заполняет внутреннее пространство эллипса текущей кистью. |
Procedure Rectangle (X1,Y1,X2,Y2:Byte) |
Вычерчивает и заполняет прямоугольник (X1,Y1) – (X2,Y2). |
Procedure FillRect (const Rect : Trect) |
Заполняет текущей кистью прямоугольную областьRect, включая ее левую и верхнюю границы, не затрагивая правую и нижнюю границы. |
Procedure FloodFill (X,Y: Integer; Color: TColor; FillStyle: TFillStyle) |
Производит заливку канвы текущей кистью. Заливка начинается с точки (X,Y) и распространяется во все стороны. Если FillStyle=fs Surface, заливка распространяется на все соседние точки с цветом Color, если FillStyle=fsBorder, заливка прекращается на точках с этим цветом. |
Procedure Frame Rect (const Rect : Trect) |
Очерчивает границы прямоугольника Rect текущей кистью толщиной в 1 пиксель без заполнения внутренней части прямоугольника. |
При обращении к нужным методам предварительно задается цвет заполнения или цвет контура прямоугольной области.
Так, очистку экрана от нарисованных линий можно осуществить с помощью процедуры FillRect(clientrect) путем заливки белым цветом прямоугольной области экрана. Например, инструкции
Image1.Canvas. Brush.Color:=clWhite;
Image1.Canvas. FillRect(Rect(0,0, Image1.Width, Image1.Height))
заполнят всю прямоугольную область графического образа белым цветом, начиная с точки X,Y (0, 0).
При выводе графической информации приложение работает с устройством вывода, имеющим широкую цветовую палитру, а также инструменты для рисования: перо, кисть, шрифт.