2- misol. Markazi (300,200) koordinatali nuqtada, x o'qi bo'yicha radiusi 100, y o'qi bo'yicha radiusi 50, boshlang'ich burchagi 0°, oxirgi burchagi 135°
bo'lgan qizil rangli yoy va chap yuqori va o'ng pastki uchlari mos ravishda (10,220) va (300,400) koordinatali nuqtalarda bo'lgan ko'k rangli to'g'ri to'rtburchak chizing.
Uses Graph;
Var gd, gm : Integer;
Begin
Gd:=Detect; InitGraph(gd,gm, "); Setcolor(4);
Ellipse(300,200,0,135,100,50);
Setcolor(l); Rectangle(10,220,300,400);
Readln; CloseGraph;
End.
DrawPoly(BS,KM) protsedurasi siniq chiziq chizadi. BS — siniq chiziq- ning sinish nuqtalari soni, KM — siniq chiziq sinish nuqtalarining koordinatalari berilgan massiv nomi. Agar siniq chiziq boshlang'ich nuqtasining koordinatasi bilan oxirgi nuqtasining koordinatasi ustma-ust tushsa, yopiq soha — ko'pburchak hosil bo'ladi.
Paskalning turli rang va usulda bo'yalgan shakllarni chizish protseduralari ham bor. Mazkur shakllarning chegara chiziqlari rangi biz yuqorida ko'rgan SetColor protsedurasi bilan tanlanadi. Ularning ichini bo'yash uchunrang va usul Paskalning SetFillStyle(usul,rang); operatori yordamida belgilanadi, bu yerda rang — tanlanayotgan rang kodi, usul — bo'yash usuli.
Paskalda shakllarning ichini tanlangan rang bilan bir necha xil usulda bo'yash mumkin. Bo'yash usullari xuddi ranglar kabi butun sonlar bilan kodlangan. Graph modulida har bir bo'yash usuliga alohida konstantalar ham ajratilgan. Quyidagi jadvalda bo'yash usullari, ularning kodlari va mos konstantalarning nomlari keltirilgan:
Bar(Xl, Yl, X2,Y2) protsedurasi ekranda yuqori chap burchagi (XI,Yl) va quyi o'ng burchagi (X2,Y2) koordinatali nuqtalarda bo'lgan, ichi joriy rang va usulda bo'yalgan to'g'ri to'rtburchak chizadi.
Bar3D(Xl,Yl,X2,Y2,a,b) protsedurasi joriy rang va usulda bo'yalgan parallelepiped chizadi. Bu yerda a — parallelopiped yon tomonining uzunligi, b esa mantiqiy ifoda bo'lib, uning qiymati «rost» bo'lsa parallelopipedning yuqori qirrasi chiziladi, «yolg'on» bo'lsa chizilmaydi.
3-misol. Ichi qizil rangli qalin gorizontal chiziqlar bilin to'ldirilgan to'g'ri to'rtburchak va havorang parallelopiped chizing.
Uses Graph;
Var gd, gm : Integer;
Begin
Gd:=Detect; InitGraph(gd,gm, ");
SetFillStyle(2, 4); Bar(10,10,400,200);
SetFillStyle(l,9); Bar3D(100,200,350,400,50,True);
Readln; CloseGraph;
End.
FillEllipse(X,Y,XR,YR) protsedurasi markazi (X,Y) koordinatali nuqtada, X va Y o'qlari bo'yicha radiuslari (eni va bo'yi) mos ravishda XR va YR ga teng, joriy rang va usulda bo'yalgan ellips chizadi.
4-misol. Ichi ko'k rangli og'ma katak chiziqlar bilan to'ldirilgan ellips
chizing.
Uses Graph;
Var gd, gm : Integer;
Begin
Gd:=Detect; InitGraph(gd,gm, **); SetColor(Red);
SetFillStyle(8,l); FillEllips(320,240,200,100);
Readln; CloseGraph;
End.
FillPoly(BS,KM) protsedurasi joriy rang va usulda bo'yalgan ko'pburchak chizadi. BS — ko'pburchakning burchaklari soni, KM — ko'pburchak uchlarining koordinatalari berilgan massiv. Bu operator DrawPoly operatoridan farqli o'laroq, ko'pburchakning birinchi uchi bilan oxirgi uchini o'zi birlashtirib oladi.
5-misol. Uchlarining koordinatalari KM massiv orqali berilgan va ichi qizil rangli katak chiziqlar bilan to'ldirilgan oltiburchak chizing.
Yechish. Uchlarining soni 7 ta bo'lgan siniq chiziq chizish operatoridan foydalanib, 7-uchi koordinatasini 1-uchi koordinatasi bilan bir xil berilsa, oltiburchak hosil bo'ladi.
Uses Graph;
Const bs=6;
Var gd, gm : Integer;
km : Array[l..bs,1..2] of Integer;
Begin gd:=0; InitGraph(gd,gm, "); Setcolor(4);
SetFillStyle(7,4); {usul va rang tanlandi}
FillPoly(bs,km); {agar DrawPoly(bs,km); yozilsa ichi bo'sh oltiburchak chiziladi} End.
Do'stlaringiz bilan baham: |