Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Организация движения объектов на графическом экране




END.

Begin

Begin

gd:=vga; gm:=vgahi;

initgraph (gd,gm,'d:\tp7');

..........

 

Первые две команды можно заменить одной: gd:=detect с целью автоматического распознавания драйвера и установления режима максимального разрешения для данной машины.

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

 

Параметр «цвет» в процедурах работы с палитрой является выражением целого типа со значением из интервала 0..15, в частности, может быть константой из приведенного списка:

Black = 0 (черный) Darkgray = 8 (темно-серый)

Blue =1 (синий) Lightblue = 9 (светло-синий)

Green =2 (зеленый) Lightgreen =10 (светло-зеленый)

Cyan =3 (голубой) Lightcyan =11 (светло-голубой)

Red =4 (красный) Lightred =12 (светло-красный)

Magenta =5 (фиолетовый) Lightmagenta =13 (светло-фиолетовый)

Brown =6 (коричневый) Yellow =14 (желтый)

Lightgray =7 (светло-серый) White =15 (белый).

 

Процедуры setcolor (<цвет>) и setbkcolor(< цвет>) устанавливают текущий цвет рисунка и цвет фона. При инициализации графики по умолчанию устанавливается черный фон и белый цвет рисунка.

 

Таблица 3.1

Основные процедуры модуля Graph

 

Заголовок процедуры Геометрический смысл
putpixel(x,y,c) построить точку (x,y) цветом c
setlinestyle(a,b,t) установить стиль, образец и толщину линий
line(x1,y1,x2,y2) соединить две точки отрезком
rectangle(x1,y1,x2,y2) прямоугольник с заданными концами диагонали и сторонами, параллельными осям координат
circle(x,y,r) построить окружность с центром (x,y) и радиусом R
arc(x,y,a,b,r)   построить дугу окружности: a, b — начальный и конечный углы в градусах
ellipse(x,y,a,b,rx,ry) построить эллиптическую дугу: rx, ry — полуоси эллипса
setfillstyle(t,c) установить стиль закраски и ее цвет
fillellipse(x,y,rx,ry) построить закрашенный эллипс, используя цвет рисунка
floodfill(x,y,cg) закрасить фигуру до границы с цветом cg; (x,y) — внутренняя точка фигуры
bar(x1,y1,x2,y2) построить столбец, используя тип и цвет закраски
pieslice(x,y,a,b,r) построить и закрасить сектор круга: a, b — начальный и конечный углы дуги в градусах
sector(x,y,a,b,rx,ry) построить и закрасить эллиптический сектор
settextstyle(f,n,d) установить шрифт, направление вывода, размер символов текста
outtextxy(x,y,st) вывести строку st, начиная с точки (x,y)
outtext(st) вывести строку, начиная с точки расположения текущего указателя
setlinestyle(a,b,t) стиль линии

 

 

Таблица 3.2

Значения первого аргументa процедуры setlinestyle(a,b,t)

 

Значение стиля Смысл
0 solidln непрерывная линия
1 dotteln пунктирная линия
2 centerln штрихпунктирная линия
3 dashedln штриховая линия
4 userbitln определенная пользователем

 

Второй параметр b, «образец», имеет значение 4, если a=4, в остальных случаях b=0.

Третий параметр t, толщина линии, может иметь значение 1 (нормальная толщина) или 3 (жирная линия).

Первый аргумент процедуры setfillstyle(t,c) — тип закраски t — принимает значения из интервала 0..12. Наиболее употребителен тип t=1 — заполнение фигуры текущим цветом.

Для вывода текста на графический экран сначала выполняется процедура settextstyle(f,n,d), устанавливающая шрифт f, направление вывода n и размер символов (параметр d). При f=0 используется стандартный точечный шрифт, встроенный в систему Турбо-Паскаль.

 

Пример. Построение графика функции

Program grafik;

uses crt,graph;

var k,u,,gm,gd:integer;

x,y:real;

BEGIN gd:=detect;

initgraph(gd,gm,' '); setlinestyle(0,0,3);

setcolor(9); line(320,10,320,400);line(10,240,620,240);

x:=-12; y:=cos(x);

u:=320+round(20*x); t:=240-round(20*y);

setcolor(12); moveto(u,t);

for k:=1 to 240 do

x:=x+0.1;

y:=cos(x);

u:=320+round(20*x); t:=240-round(20*y);

lineto(u,t);

end;

setcolor(14);

settextstyle(0,0,1);outtextxy(330,10,'y'); outtextxy(610,245,'x');

settextstyle(0,0,2);

outtextxy(90,430,'y=cos(x)');

repeat until keypressed;

closegraph

Организовать движение объектов по графическому экрану можно четырьмя способами:

  1. «рисую – стираю»
  2. с помощью клавиш
  3. с использованием динамической памяти
  4. с использованием экранных страниц

 

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

- Нарисовать фрагмент в нужном месте экрана

- Стереть фрагмент, рисуя его цветом фона или используя процедуру cleardevice

- Снова нарисовать фрагмент в другом месте экрана, и т.д.

 

Пример 1. Организовать движение окружности по периметру прямоугольной области.

program boll;

uses graph,crt;

var gd,gm,x,y,rx,ry,dx,dy,rad,x1,y1:integer;




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.