Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lopp.DOC
Скачиваний:
6
Добавлен:
31.03.2015
Размер:
187.39 Кб
Скачать
    1. Рисование графиков функций

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

Рис. 8.2. График функции

procedure TForm1.Button1Click(Sender: TObject);

const PI=3.14159;

Var

x,y :real;

px,py,half :longint;

begin

half:=Form1.Height div 2;

{Определяем половину вертикального размера формы}

for px:=0 to Form1.Width do

begin

{масштаб х приводим к 2*PI для отображения полного периода}

x:=px*(2*PI/Form1.Width);

y:=sin(x);

py:=trunc(0.7*y*half)+half;

{Выводим на экран один пиксел с заданными координатами}

{ и цветом: 0 – черный}

Canvas.Pixels[px, py]:=0;

end;

end;

Наиболее сложным моментом при рисовании графиков является расчет масштаба. Если с первой попытки это не удалось, то можно рекомендовать экспериментальным путем определить наиболее удачный вариант. Применяя знания по аналитической геометрии можно рисовать все что угодно!

    1. Компоненты tPaintBox и tShape

До сих пор мы рисовали в пределах всей формы. Часто полезно ограничить графику прямоугольной областью на форме. Для этого используется компонента TPaintBox из палитры System. Как всегда, перенесем эту компоненту на форму, разместим на нужном месте и дадим ей необходимые размеры. Имя этой компоненты по умолчанию – PaintBox1. Координаты в дальнейшем должны определяться в ее пределах. Например, рисование закрашенного треугольника в пределах PaintBox выполняется следующей процедурой:

procedure TForm1.Button2Click(Sender: TObject);

begin

PaintBox1.Canvas.Brush.Color:=clBlue; {Определим цвет закраски}

PaintBox1.Canvas.Brush.Style:=bsCross;

{Определим рисунок – стиль – внутри}

Paintbox1.Canvas.Polygon([Point(10,10),

Point(65,200),Point(120,100),Point(10,10)]);

end;

Нетрудно видеть, что единственным отличием этой процедуры от аналогичной, приведенной выше, является квалификатор PaintBox1.

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

Рис. 8.3. Геометрические фигуры

  1. Brush – определяет стиль и цвет наполнения фигуры, имеет два подсвойства Color и Style;

  2. Pen – определяет характеристики (цвет, стиль, толщина) ограничительной линии, имеет подсвойства Color, Mode, Style, Width;

  3. Shape – определяет саму фигуру (эллипс, круг,...).

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

  • Left, Top – координаты левой верхней точки;

  • Heigth, Width – высота и ширина квадрата.

Попробуйте самостоятельно построить диаграммы!

  1. Исключительные ситуации

Исключительной ситуацией (exception) называется необычная или неожиданная ситуация, прерывающая нормальную работу программы. Генерация исключительной ситуации – уведомление о необычной или неожиданной ситуации. Обработка исключительной ситуации – нахождение выхода из возникшей ситуации и восстановление работоспособности программы.

С исключительными ситуациями мы уже встречались в рассмотренных нами примерах. Например:

  1. Преобразование символьных данных в числовые генерирует исключительную ситуацию, если такое преобразование невозможно.

  2. Если выполнение арифметического выражения невозможно (деление на нуль, квадратный корень отрицательного числа и т.д.), то возникает исключительная ситуация.

  3. Попытка открытия несуществующего в заданной директории файла тоже вызывает исключительную ситуацию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]