Информатика -продвинутый курс



         

РАБОТА С ГРАФИКОЙ - часть 3


/p>

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

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

Размер букв определяется параметром d, принимающим значения из интервала 1..10. Если d = 1 и f = 0, то каждый символ занимает квадрат 8*8 точек, при d > 1 сторона квадрата умножается на d.

Далее, с помощью процедуры outtextxy(x,y,st) строка st выводится на экран, начиная с точки (х,у).

Например:

settextstyle(0,0,2); оuttехtху(100,200,'горизонтальная строка');

оuttехtху(100,230,'размер увеличен вдвое');

Примеры графических программ

Пример 1:

программа рисует звездное небо с 400 «звездами», вспыхивающими постепенно, и полную желтую луну.

Програлша 29

program sky;

uses crt,graph;

var k,gd,gm:integer;

begin gd:=detect;

initgraph (gd, gm, ' '); randomize;

for k:=l to 400 do

begin putpixel(random(640),random(480),random(15)+1); delay(10);

end;

setfillstyle(l,14); setcolor(14);

circle(550,80,30) ; floodfill(550,80,14) ;

repeat until keypressed; closegraph

end.

Пример 2. Узор. Используя простейшие геометрические образы строят замечательные графические изображения. Ниже приведена программа изображения муарового узора, полученного пересечением двух семейств расходящихся отрезков прямых. Качество и изображение получаемого узора зависит в основном от трех параметров: kl, k2 - расстояний между отрезками слева и справа ; h - смещения вниз (вверх) всего семейства.

Программа 30

program uzor;

uses crt, graph;

var gd,gm,errCode,i,kl,k2,h; integer;

begin

kl:=8; k2:=3; h:=110; gd:=Detect; InitGraph(gd,gm.'') ;




Содержание  Назад  Вперед