- •Введение
- •Рекомендуемая литература:
- •Цели и задачи курсовой работы
- •Постановка задачи курсовой работы
- •Задание на выполнение
- •Требования к оформлению
- •Курсовая работа по дисциплине «Высокоуровневые методы информатики и программирования» Табличный и графический способ представления данных на языках высоко уровня
- •Вопросы к защите
- •Методические рекомендации
- •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.5. Методы вычерчивания графиков
Рисовать на холсте можно разными способами – с помощью точек (пикселей), линий, окружностей, дуг, секторов, прямоугольников, многоугольников.
Рисование с помощью пера Pen
Если в качестве графического примитива используется линия, то этот метод относится к рисованию на холсте с помощью пера. У холста имеется свойство PenPos типа TPoint. Это свойство определяет текущую позицию пера на поверхности объекта. Перемещение текущего указателя в новую позицию без прорисовки линии, т.е. изменения свойства PenPos, производится методом холста MoveTo (X,Y : Integer). В результате выполнения этой процедуры перо устанавливается в новую позицию с координатами X и Y, но на холсте ничего не рисуется. Эта текущая точка становится исходной. От неё методом LineTo (X, Y : Integer) можно провести (нарисовать) линию до следующей точки с новыми координатами X и Y. При повторном вызове LineTo (X, Y) конечная точка становится текущей, от которой будет проводиться другая линия и т.д.
Например, инструкции вида
Image1.Canvas.MoveTo(0,200);
Image1.Canvas.LineTo(500,200);
обеспечивают перемещение пера в указанную точку холста (X=0; Y=200), а затем вычерчивать линию от текущей позиции пера (0,200) в точку с координатами (500,200).
Рассмотрим пример вычерчивания рисунка с помощью примитивов: линии, прямоугольника, эллипса.
Поместим на форму Form1 компонент Image1, кнопки Bitbtn1 и Bitbtn. Для этих кнопок установим свойству Kind значение bkOK и bkClose, а свойству Caption – надписи Нарисовать и Завершить соответственно. Кроме того, установим размеры компонента Image1 – Width:=430; Height:=275.
Рассмотрим код обработчика события OnClick для кнопки «Нарисовать», при реализации которого, вычерчивается рисунок (рис.11) на поверхности компонента Image1.
Image1
Рис.11. Рисунок, полученный с помощью примитивов.
. . . // фрагмент модуля
var
Form1: TForm1;
BarColor:array[1..3] of TColor = (clFuchsia, clYellow, clLime);
//объявление глобальной переменной BarColor, с заданными цветами
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
x, y: integer; //текущие координаты прямоугольника
i: byte; //счетчик
const
WX=50; WY=50; //смещения по оси Х и по оси Y
begin
with Image1.Canvas do //на поверхности канвы установить
begin //атрибуты пера:
Pen.Width:=2; //толщина пера
Pen.Color:=clBlue; //цвет пера
MoveTo(0,250); //переместить перо в указанную точку
LineTo(450,250); //провести линию
Brush.Color:=clAqua; //цвет заливки голубой
Ellipse(210,50,240,100); //нарисовать фигуру эллипс
Pen.Width:=1; //толщина пера
Pen.Style:=psDot; //стиль контура столбика пунктирная линия
x:=100; //начальные координаты для построения 1-го столбика
y:=250;
for i:=1 to 3 do //цикл для построения 3-х прямоугольников
begin //цвет i-го прямоугольника
Brush.Color:=BarColor[i]; //нарисовать прямоугольник
Rectangle(x,y,x+350-100*i,y-50); //с заданными координатами
x:=x+WX; //приращение координаты х
y:=y-WY; //приращение координаты y
end;
Brush.Color:=clWhite; //стирание цветной области за текстом
Font.Color:=clBlack; //цвет шрифта черный
Font.Size:=16; //размер символов шрифта
TextOut(300,50,'Пирамида'); //вывод текста
Pen.Style:=psSolid; //установка атрибутов пера
Pen.Color:=clRed; Brush.Color:=clRed;
Chord(10,150,100,200,100,175,10,175); //сегмент - шапка гриба
Pen.Color:=clWhite; Brush.Color:=clWhite;//установка атрибутов пера
Ellipse(47,155,62,165); //рисование эллипсов на шапке
Ellipse(25,160,40,170);
Ellipse(70,160,85,170);
Pen.Color:=clBlack; //установка атрибутов пера
Rectangle(47,175,62,250); //рисование ножки гриба
Arc(39,200,69,216,69,208,39,208); //дуга - оборка на ножке гриба
end;
end;
end.