Тема 10. Графика в языке Паскаль

Краткое изложение теоретического материала

Для работы в графическом режиме в языке Турбо Паскаль реализованы следующие возможности:

1. Подключение к программе модуля графической библиотеки:

Uses Graph;

2. Инициализация графики:

g1:= detect; { автоопределение типа графического адаптера }

InitGraph (g1, g2, ’C:\tp70\BGI’); { инициализация графики }

Устанавливается графический режим с разрешением 640x480 точек.

Графика растровая (точечная). Точка - пиксел.

Переменные g1 и g2 имеют тип Integer.

3. Завершение графического режима:
CloseGraph;

4. Рисование точки с координатами (х, у) цветом с:
PutPixel (x, y, c):

5. Установить цвет фона с:
SetBkColor (c);

6. Установить цвет с для выводимого рисунка:
SetColor (c);

7. Рисование отрезка:
Line (x1, yl, x2, y2);

(xl, y1) и (х2, у2) - координаты концов отрезка.

8. Рисование окружности радиуса r с центром (х, у):

Circle (x, y, r);

9. Рисование прямоугольника со сторонами, параллельными сторонам экрана:

Rectangle (x1, у1, х2, у2);

(xl, y1) и (х2, у2) — координаты любой из диагоналей.

10. Закрашивание ограниченной области:

А) установка типа S и цвета С штриховки:

SetFillStyle (s, c);

где 0<= S <= 11 (0 - штриховка цветом фона, т.н. «пустая», 1 - сплошная заливка, прочие значения – различные типы штриховки).

Б) закрашивание области с границей цвета b:

FloodFill (x, y, b);

b - цвет границы (до этого цвета будет "разливаться" краска (штриховка)).

11. Рисование закрашенного прямоугольника:

SetFillStyle (s, c);

Ваг(х1, у1, х2, у2);.

(xl, yl) и (х2, у2) - координаты любой из диагоналей.

12. Рисование параллелепипеда с закрашенной передней гранью:

SetFillStyle (s, c);

Bar3D (xl, yl, x2, y2, d, Top);

(xl, yl) и (х2, у2) - координаты любой диагонали передней грани, d-глубина, Тор - логический параметр, указывающий, рисовать ли верхнюю грань параллелепипеда: True – рисовать, False - нет.

13. Рисование эллипса или его дуги:

Ellipse (x, y, a1, a2, xr, yr);

(х, у) - координаты центра,

a1 - начальный угол (в градусах),

а2 - конечный угол (в градусах),

хr - радиус по оси X,

уr - радиус по оси Y.

14. Рисование закрашенного сектора эллипса:

SetFillStyle (s, c);

Sector (х, у, а1, a2, xr, yr);

(х, у) - координаты центра,

a1 - начальный угол (в градусах),

а2 - конечный угол (в градусах),

хr - радиус по оси X,

уr - радиус по оси Y.

15. Выводтекста на графический экран:

A) Установка шрифта:

SetTextStyle (f, d, s);

f - номершрифта (0 - матричный шрифт 8x8),

d - направление вывода символов (0 - горизонтально, слева направо),

s - размерсимволов.

Б) выводтекста:

OutTextXY (x, y, s);

(х, у) - координаты левого верхнего угла выводимой строки,

s – выводимая текстовая строка.

Контрольные задания

10.1. Составить программу, которая построит произвольный пейзаж.

10.2. Составить программу, которая нарисует на экране мишень из n колец.

10.3. Составить программу, которая нарисует на экране пирамидку из n уменьшающихся прямоугольников.

10.4. Составить программу, которая нарисует на экране пирамидку из n увеличивающихся прямоугольников.

10.5. Составить программу, которая нарисует на экране многоэтажный дом.

10.6. Составить программу, изображающую лодку, плывущую по реке.

10.7. Составить программу, изображающую в центре экрана отрезок длины L, вращающийся вокруг одного из своих концов.

10.8. Составить программу, изображающую на экране солнышко с n лучиками длины l.

10.9. Составить программу, изображающую на экране снежинку с n лучиками длины l.

10.10. Составить программу построения графика функции:

a.) y = ax2;

b.) y = sin x;

c.) y = 1/x;

d.) y = tg x;

Построить и подписать также оси координат.

10.11. Дополнить программу, составленную для решения задачи 10.8, движением точки по построенному графику функции.

10.12. Составить программу построения графика функции, заданной параметрически:

a.) астроида:

x = a cos3 t,

y = a sin3 t, где t Î [0, 2p)

b.) кардиоида

x = a cos t (1 + cos t),

y = a sin t (1+ cos t), где a>0, t Î [0, 2p)

c.) спираль:

x = R cos t,

y = R sin t, где R=t/2, a<= t <= 2Np

d.) улитка Паскаля:

x = a cos2t + b cos t,

y = a cos t sin t + b sin t, где a>0, b>0, t Î [0, 2p)

e.) строфоида:

x = a (t 2 – 1)/(t 2 + 1),

y = at (t 2 – 1)/(t 2 + 1), где a>0, t Î (-¥, +¥)

f.) эпициклоида:

x = (a + b) cos t – a cos ((a + b)t/a),

y = (a + b) sin t – a sin ((a + b)t/a),

где a>0, b>0, t Î [0, 2p), b/a должно быть целым положительным числом

g.) циссоида:

x = a t 2 /(1 + t 2),

y = a t 3 /(1 + t 2), где a>0, t Î (-¥, ¥)

10.13. Составить программу, изображающую на экране модель солнечной системы: в центре должно располагаться солнце, вокруг которого с разными угловыми скоростями вращаются две – три планеты, вокруг одной из них должен обращаться спутник.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: