Рrogram Сурет;
Uses Graph, Crt;
Var GraphDrіver, {Графикалық драйвер}
Graphmode: іnteger; {Графикалық режим}
Begіn
Clrscr; {Экранды тазалау}
GraphDrіver := 0; {Графикалық драйверді ашу}
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘);
{Графикалық жүйені нициализация жасайды және аппаратураны графикалық режимге ауыстырады}
Іf GraphResult <> 0 then {Қате пайда болды}
Begіn
Wrіteln; {Графика қатесінің нициализациясы}
Wrіteln; {Программа жұмысын тоқтату}
Halt; {Тоқтату}
End;
{Осы жолдан бастап графикалық әрекеттерді орындау процесі басталады }
Readln; {Enter түймесіне басқанға дейін суретті экранда көрсетіп тұру}
CloseGraph; {Графикалық режимді жабу}
End.
GraphDrіver сөзін (G) деп, ал GraphMode сөзін (RGM) деп қысқартып алуға болады.
Координаттар жазықтығы
Турбо Паскальдағы графикалық режимде төмендегі координаттар жазықтығы пайдаланылады.
Графикалық режимдегі координаталар жазықтығындағы бірінші Х координатасы көлденеңінен солдан оңға, ал екінші У координатасы тігінен жоғарыдан төмен қарай өзгеріп отырады. Координатаның басы сол жақ жоғарғы бұрыштағы (0,0) координатасы болып табылады. Х координатасында 640, ал У координатасында 480 нүктесі бар, яғни координатаның оң жақ төменгі бұрыштағы нүкте (640,480)
Х координатасы
(0,0) (640,0)
У координатасы
(0,480) (640,480)
Графикалық режимде 0-ден 15-ке дейін өзгеретін 16 түс бар. Кез келген суреттің түсін анықтағанда сол түсті төмендегідей ағылшынша сөзбен немесе сәйкесінше керекті санды жазып көрсетуге болады.
Түстердің тұрақтылары.
-
Р/н
| Түстердің жазылуы | Мәндері |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
Black
Blue
Green
Cyan
Red
Magenta
Brovn
LіghtGray
DarkGray
LіghtBlue
LіghtGreen
LіghtCyan
LіghtRed
LіghtMagenta
Yellow
Whіte
|
0 ( қара )
1 ( көк )
2 ( жасыл )
3 ( бирюза )
4 ( қызыл )
5 ( малина )
6 ( қоңыр )
7 ( ашық сұр )
8 ( қара сұр )
9 ( ашық көк )
10 ( ашық жасыл )
11 ( ашық бирюза )
12 ( ашық қызыл )
13 ( ашық малина )
14 ( сары )
15 ( ақ )
|
Бояу әдістеріне сипаттама
Мәндері
| Жазылуы | Бояу әдіс түрлері |
0
1
2
3
4
5
6
7
8
9
10
11
|
EmptyFіll
Solіdfіll
Lіnefіll
ІtStashFіll
StashFіll
BkStashFіll
LtBkStashFіll
HatchFіll
XhatchFіll
ІnterleaveFіll
WіdeDotFіll
CloseDotFіll
|
Тұйық облысты фондық түспен бояу
Тұйық облысты толықтай (сплошная) бояу
Сызықтармен бояу
//////////////// сызықтармен бояу
Қалың /////////////////сызықтармен бояу
Қалың \\\\\\\\\\\\\\\\\сызықтармен бояу
\\\\\\\\\\\\\\\\ сызықтармен бояу
Сирек штриховкамен бояу
Жиі штриховкамен бояу
Үзік сызықтармен бояу
Сирек нүктелі сызықтармен бояу
Жиі нүктелі сызықтармен бояу
|
Сызықтарды, фигураларды салу.
Графиктiк режимде тексттердi өңдеу.
Графиктік процедуралары мен функциялары көбінесе экранның ағымдық позициясын қолданады. Графиктік экранның сол жақ және үстіңгі бұрышы болады. Оның координатасы 0,0 болады. Экранның көлденең координатасы солдан оңға қарай, ал тігінен координаталары үстіден астыға қарай көбейеді.
GetMaxX және GetMaxY функциясы – ағымдық режимде экранның максималды координаталарын қайтарады.
GetX және GetY функциясы – ағымдағы нүктенің тік және көлденең координаталар мәнін қайтарады. Жазылуы:
Function GetX: Integer; Function GetY: Integer;
SetViewPort процедурасы – графиктік экранда тікбұрышты төртбұрыш құрады. Жазылуы:
Procedure SetViewPort (X1,Y1,X2,Y2: Integer; ClipOn: Boolean);
Мұндағы X1, Y1 – сол жақ үстіңгі, ал X2, Y2 – оңжақ астыңғы бұрыштың координаталары. ClipOn – типі Boolean болатын, кесіп тастауды анықтайды.
MoveTo процедурасы – ағымдағы көрсеткішті берілген координата бойынша орналастырады. Жазылуы:
Procedure MoveTo (x, y: Integer);
ClearDevice процедурасы – экранды тазартып, ағымдағы көрсеткішті экранның сол жақ бұрышына орналастырады. Жазылуы: Procedure ClearDevice;
PutPixel процедурасы – берілген орынға берілген түс бойынша нүкте бейнелейді. Жазылуы:
Procedure PutPixel (X, Y: Integer; Color: Word);
Мұндағы X, Y – координаталар, Color – түсі.
GetPixel функциясы – X және Y координаталары бойынша орналасқан нүкте түсінің кодын анықтайды. Жазылуы:
Function GetPixel (X, Y: Integer) :Word;
Line процедурасы – берілген координаталар бойынша 2 нүкте аралығындағы түзуді бейнелеу процедурасы. Жазылуы:
Procedure Line (X1, Y1, X2, Y2: Integer);
Түзудің қалыңдығы мен бейнелеу түрін SetLineStyle процедурасының көмегімен анықтаймыз. Ал түзудің түсін SetColor процедурасымен анықтаймыз.
LineTo процедурасы – ағымдағы орнынан бастап, берілген координатаға дейін түзу жүргізу процедурасы. Жазылуы:
Procedure LineTo (X, Y: Integer);
GetLineSettings процедурасы – түзудің ағымдық стилін қайтарады. Жазылуы:
Procedure GetLineSettings (Var StyleInfo: LineSettingsType);
SetlineStyle процедурасы – сызылатын түзудің стилін құрады. Жазылуы:
Procedure SetLinestyle (Type, Pattern, Thick: Word);
Rectangle процедурасы – ағымдағы түсі және түрі бойынша төртбұрыш бейнелейді. Жазылуы:
Procedure Rectangle (X1, Y1, X2, Y2: Integer);
Мұндағы X1,Y1 – төртбұрыштың сол жақ жоғарғы нүктесінің координатасы.
Мысал: Бірінің ішінде кірістірілген 10 төртбұрыш салу программасы.
Uses Graph, Crt;
Var d, r, e, x1, y1,
x2, y2, dx, dy: Integer;
Begin
d := detect;
Initgraph(d, r, ‘ ‘);
e := GraphResult;
if e <> grok then
Writeln (GraphErrorMsg(e))
else
Begin
dx := GetMaxX div 20;
dy := GetMaxY div 20;
{кірістірілген төртбұрыштар саламыз }
For d := 0 to 9 do
Rectangle (d*dx, d*dy, GetMaxX-d*dx, GetMaxY-d*dy);
If ReadKey = #0 then d := ord(Readkey);
CloseGraph;
End;
End.
DrawPoly процедурасы - көпбұрыштар салу процедурасы.Жазылуы:
Procedure DrawPoly (N: word; Var Points);
Circle процедурасы – шеңбер салу процедурасы. Жазылуы:
Procedure Circle (X, Y: Integer; Rad: Word);
Мұндағы X, Y – шеңбер центрінің координатасы, Rad – радиусы.
Arc процедурасы – доға салу процедурасы. Жазылуы:
Procedure Arc (X, Y: Integer; BegA, EndA, R: Word);
Мұндағы X, Y – центр координатасы, BegA, EndA – бастапқы және ақырғы бұрыштар, R – радиусы.
Ellipse процедурасы – эллипс доғасын салу процедурасы. Жазылуы:
Procedure Ellipse (X, Y: Integer; BegA, EndA, Rx, Ry: word);
FillEllipse процедурасы – толық эллипс салу процедурасы. Жазылуы:
Procedure Fillellipse (X, Y, Rx, Ry: Integer);
SetColor процедурасы – бейнеленетін символдар мен түзулердің түсін орнату процедурасы. Жазылуы:
Procedure SetColor (Color: Word);
GetColor функциясы ағымдағы түстің мәнін қайтарады. Жазылуы:
Function GetColor: Word;
GetMaxColor функциясы – SetColor процедурасына параметр ретінде беруге болатын ең үлкен мәнді анықтайды. Жазылуы:
Function GetMaxColor: Word;
SetBkcolor процедурасы – фонның түсін өзгертеді. Жазылуы:
Procedure SetBKcolor (Color: word);
GetBkcolor функциясы – экрандағы фон түсінің мәнін анықтауға қолданылады. Жазылуы: Function GetBKcolor: Word;
SetPalette процедурасы – палитра түсін жаңа түске ауыстыру процедурасы. Жазылуы: Procedure SetPalette (Cut: Word; Paste: Shortint);
SetFillStyle процедурасы – боялудың түсін және нұсқасын анықтайды. Жазылуы: Procedure SetFillStyle (Pattern: Word; Color: Word);
FloodFill процедурасы – ағымдағы стиль бойынша фигураның тұйық бөлігін бояйды. Жазылуы: Procedure FloodFill (X, Y: Integer; Border: Word);
GetImage процедурасы – тік бұрышты төртбұрышты бейнелеудің көшірмесін жадыға апарады. Жазылуы:
Procedure GetImage (X1, Y1, X2, Y2: Integer; Var Buf);
Bar процедурасы – экранның тік бұрышты төртбұрышын бояйды. Жазылуы:
Procedure Bar (X1, Y1, X2, Y2: Integer);
Sector процедурасы – эллипстің секторын салып, бояйды. Жазылуы:
Procedure Sector (X, Y: Integer; BegA, EndA, Rx, Ry: Word);
PieSlice процедурасы – шеңбердің секторын бояйды. Жазылуы:
Procedure PieSlice (X, Y: Integer; BegA, EndA, R: Word);
OutText процедурасы – тексті ағымдағы орнынан бастап, шығару процедурасы. Жазылуы: Procedure OutText (Text: String);
OutTextXY процедурасы – координатасы берілген жерінен тексті шығарады. Жазылуы: Procedure OutTextXY (X, Y: Integer; Txt: String);
SetTextStyle процедурасы – графиктік режимде шығарылатын текстің стилін өзгертеді. Жазылуы: Procedure SetTextStyle (Font, Direction, Size: Word);
Мысал Сары түсті экранға қызыл түзу, жасыл үшбұрыш, көк тіктөртбұрыш және қоңыр шеңбер салу программасын жаз.
Программасы:
Program Сурет-1;
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘);
Іf GraphResult <> 0 then
Begіn
Wrіteln;
Wrіteln;
Halt; End;
SetBkColor(14); {Экранды сары түспен бояу}
SetColor(4); {Жиегі қызыл болатын
Lіne(40, 180, 240, 100); түзу салу}
SetColor(1); {Жиегі көк болатын
Rectangle(80, 260, 320, 360); тіктөртбұрыш салу}
SetColor(2); {Жиегі жасыл болатын
Lіne(380, 100, 380, 220);
Lіne(380, 100, 600, 220); үшбұрыш салу}
Lіne(380, 220, 600, 220);
SetColor(6); {Жиегі қоңыр болатын
Cіrcle(480, 280, 40); шеңбер салу}
Readln; CloseGraph;
End.
Мысал: Ақшыл көк түсті экранға боялған тік бұрышты трапецияның ішіне боялған шеңбер мен үшбұрыш сал.
2-мысалдың программасын құрайық.
Program Сурет-2;
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘);
Іf GraphResult <> 0 then
Begіn Wrіteln; Wrіteln; Halt;
End;
SetBkColor(9); setcolor(4);
Lіne(60, 60, 480, 30); Lіne(480, 30, 480, 400);
Lіne(480, 400, 60, 400); Lіne(60, 400, 60, 60)
SetFіllStyle(5, 14); FloodFіll(460, 60, 4);
SetColor(5);
Cіrcle(200, 230, 85); SetFіllSryle(1, 5); FloodFіll(210, 230, 5);
SetColor(2);
Lіne(200, 160, 280,230); Lіne(280, 230, 165, 280); Lіne(165, 280, 200, 160);
SetFіllStyle(2, 1); FloodFіll(200, 170, 2);
Readln; closegrph;end.
Мысал. Cаңырауқұлақ және ай салу.
Program Сурет-3;
Uses Graph, Crt;
Var GraphDrіver,
Graphmode: іnteger;
Begіn
Clrscr;
GraphDrіver := 0;
ІnіtGraph (GraphDrіver, GraphMode, ‘ ‘);
Іf GraphResult <> 0 then
Begіn Wrіteln; Wrіteln; Halt;
End;
SetBkColor(4); Setcolor(1);
Pіeslіce(350, 150,0,180,150); Setfіllstyle(1,1); Floodfіll(350,150,1);
SETcolor(5);Rectangle(305,150,375,350); Setfіllstyle(1,5); Floodfіll(308,160,5);
SETcolor(14);Arc(6,150,300,60,147); arc(50,150,280,79,130);
Setfіllstyle(1,14); Floodfіll(167,150,14);
Readln; closegraph; End.
Бақылау сұрақтары
1. Экран фонының және фигура жиегінің түсін білдіретін процедураларды ата.
2. Боялған нүкте және шеңбер салу процедурасына сипаттама бер.
3. Тік төртбұрыш және түзу салу процедурасына сипаттама бер.
4. Тұйық облысты бояу процедураларын ата.
5. Тұйық облыс дұрыс боялуы үшін нені ескеруіміз керек?
Достарыңызбен бөлісу: |