www.toehelp.ru

Решение задач по ТОЭ, ОТЦ, Высшей математике, Физике, Программированию ...

/ / / Лекция 7. Графика Турбо Паскаля

Для использования графических возможностей Турбо Паскаля необходимо в блоке описания uses подключить графический модуль Graph. Модуль содержит набор графических функций и процедур, основные из которых рассмотрены ниже.

Графические процедуры

Arc(x,y:integer;St,En,R:word); {рисование дуги, где x,y - коорд. центра дуги, R - радиус, St, En - нач. и конечный углы.}

ClearDevice; {очистка экрана}

Circle(x,y:integer;R:word); {окружность радиуса R

cцентром в точке (x,y)}

CloseGraph; {закрытие графики}

InitGraph(gd,gm:integer;Path:string); {инициализация графики, где

gd - графический драйвер,

gm - графический режим,

Path - путь размещения файла

с расширением .bgi.}

Line(x1,y1,x2,y2:integer); {рисование линии, проходящей через две точки:

с координатами (x1,y1) и (x2,y2) }

LineRel(dx,dy:integer); {рисование линии: dx, dy – приращения

координат к координатам текущей

позиции курсора}

LineTo(x,y:integer); {рисование линии, проходящую через текущую

позицию курсора и точку с координатами (x,y)}

Moveto(x,y:integer); {задание координат текущей точки}

OutText(T:string); {вывод текста в текущую точку}

OutTextXY(x,y:integer;T:string);{вывод текста в точку с координатами х,у}

Rectangle(x1,y1,x2,y2:integer); {рисование прямоугольника: (x1,y1) и (x2,y2) - координаты противоположных вершин}

PutPixel(x,y:integer;c:word); {выводит точку с координатами (х,у) цветом с}

Графические функции

GetMaxX - определяет максимальный размер экрана по оси x.

GetMaxY - определяет максимальный размер экрана по оси y.

GetX - координата текущей позиции курсора по оси x.

GetY - координата текущей позиции курсора по оси y.

Машинные координаты

Начало машинной системы координат, направление осей, а также максимальные значения координат монитора показаны на рисунке

На рисунке приведена также машинная (xm, ym) и физическая (x,y) системы координат. Для изображения на экране точки с физическими координатами (x,y) необходимо определить ее машинные координаты (xm, ym). Расчетные формулы имеют следующий вид (попробуйте самостоятельно получить эти формулы):

xm=x0+x*Mx ,

ym=y0-y*My,

где Mx, My-масштабы соответственно по осям x и y, которые показывают число пикселей в одной физической единице,

x, y- физические координаты точки,

xm, ym- машинные координаты точки,

x0, y0- машинные координаты начала физической системы координат.

Пример. Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

Этапы разработки программы сведены в таблицу.

Таблица

Этапы программирования

Выполнение

1. Постановка задачи

Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

2. Математическое описание

Изобразим вид экрана с указанием координат

требуемых линий

3. Разработка структограммы

4. Написание программы

Program P5;

Uses graph; {подключение граф.модуля}

Var gd,gm:integer;

Begin

gd:=detect;{определение граф. драйвера}

InitGraph(gd,gm,’ ‘);{инициализация

графики}

Line(0, round(GetMaxY/2), GetMaxX,

Round(GetMaxY/2));{гориз. лин.}

Line(round(GetMaxX/2), 0,

Round(GetMaxX/2), GetMaxY);

{вертик. лин.}

Readln; {пустой ввод}

CloseGraph; {закрытие графики}

End.

5. Отладка и получение результатов

Выполнить самостоятельно

Пример. Написать программу построения графика функции y=x2 для x∈[-1;1].

Этапы разработки программы сведены в таблицу.

Таблица

Этапы программирования

Выполнение

1. Постановка задачи

Построить график функции y=x2 для x∈[-1;1].

2. Математическое описание

Изобразим вид экрана, который мы хотели бы получить после выполнения программы.

3. Разработка структограммы

4. Написание программы

Program P6;

Uses graph;

Var gd,gm:integer;

x,y:real;

x0,y0,xm,ym,Mx,My:integer;

begin

gd:=detect;

InitGraph(gd,gm,’ ‘);

Mx:=300; x0:=320; My:=440; y0:=460;

{выбраны для монитора 640×480 пикс.}

For xm:=20 to 620 do

Begin

x:=(xm-x0)/Mx;

y:=sqr(x);

ym:=round(y0-y*My);

PutPixel(xm,ym,1);

End;

Readln;

CloseGraph;

End.

5. Отладка и получение результатов

Выполнить самостоятельно

Далее...

Социальные сети  

Реклама

Социальные сети