3.36График фигураларни куриш
Rectangle, Bar, Ваr3D, DrawPoly, FillPoly,
GRAPH библиотекасида берилган параметрлар асосида турли фигураларни куриш процедуралари мавжуд. Чизикларнинг ранги стили ва калинлиги SetColor и SetFillPattern, SetFillStyle процедураси ердамида урнатилади.
Тугри бурчакларни куриш учун бир нечта процедуралар мавжуд. Булардан биринчиси бир улчовли тугри бурчакни чизиш:
Rectangle(X1, Y1, X2, Y2 : integer),
Бу ерда X1, Y1 - лар чап юкори бурчак координаталари, X2, Y2 - лар чап паст бурчак координаталари.
Bar(x1, y1, x2, y2: integer) процедураси ердамида юкоридагидан хам эффеклирок булган устунлари буялган тугри бурчакларни куриш мумкин.
Буяш ранги SetFillStyle билан урнатилади.
Ваr3D(х1, у1, х2, у2: integer; Depth: word; Top: вооlеаn) - Уч улчовли буялган тугри бурчакни чизади. Depth параметри уч улчовли контр чукурлиги параметрини курсатувчи пикселлар сонини беради.
Куп холларда унинг киймати тугри бурчакнинг туртдан бир кенглиги кийматига тенг:
Depth := (X2-X1) DIV 4;
Top параметри тугри бурчак устига ххххххххопределяет, строить над прямоугольником вершину (Top:= True) или нет (Top:= False).
Масалан:
SetFillStyle(1,3);
Bar3D(10,10,50,100,10,True);
Тугри бурчакларни Line еки LineTo ердамида чизиш мумкин. Лекин . Turbo Pascal да хар кандай куп бурчакларни чизиш учун DrawPoly процедураси мавжуд. Унинг езилиши куйидагича:
DrawPoly(NumPoints: word; VAR PolyPoints)
PolyPoints параметра типлашмаган параметр хисобланиб куп бурчакнинг хар бир кесисиш кординатисини уз ичига олади.
NumPoints параметр PolyPoints. нинг кординоталар сонини беради.
3.37Ей ва айланалар куриш
Circle, Arc, GetArcCoords, Ellipse, FillEllipse, PieSlice, Sector,
Ей ва айланаларни куришда бурчаклар кийматини бериш учун кутб кордината системаси кулланилади. Айлана чизиш процедурасининг езилиши куйидагича.:
Circle (X, Y, Radius: word)
Бу ерда X ва Y - айлана маркази, Radius - унинг радиуси.
Масалан, бу фрагмент 450,100 марказли нуктада турган 50 пиксел радиусга тенг булган очик зангор рангдаги айлана чизади:
SetColor(LightGreen);
Circle(450,100,50);
Псевдо хажмли фигураларни чизиш учун ейлардан фойдаланади. Уларни куйидаги процедура ердамида чизиш мумкин:
Arc (X,Y: integer; StAngle, EndAngle, Radius: word)
бу ерда X, Y - айлана маркази , StAngle ва EndAngle -бошлангич ва охирги бурчак , Radius - радиус. Ранг SetColor. ердамида урнатилади. Агарда StAngle = 0 ва Angle = 359, булса у холда тулик айлана чизилади. Мисол тарикасида олдиндан Circle(450, 100, 50) ердамида чизилган айланада 0 дан 90 градусгача булган кизил рангдаги ейни чикариш дастурини куриб чикамиз.
Setcolor(Red);
Arc(450,100,0,90,50);
Хар хил турли эгри чизиклар билан ишлашда кардинаталар тугрисидаги ахборотни билиш талаб килинади ва бунинг учун Arc га мурожат килинади. Буни олиш GetArcCoords (VAR ArcCoords : ArcCoordsType)
процедурани бажариш билан амалга оширилади.
ArcCoords узгарувчи стандарт типларга киради.
TYPE
ArcCoordsType = RECORD
x, y : integer;
xStart, yStart : integer;
xEnd, yEnd : integer
END;
Эллипислар куриш учун Ellipse (X,Y: integer; StAngle,EndAngle: word; xR,yR: word) процедурасидан фойдаланамиз.
Бу ерда X, Y - дисплей координаталаридаги эллиписнинг маркази, xR ва yR - лар горизонталь ва вертикаль уклар. Эллиписнинг ейи StAngle бошлангич бурчагидан то EndAngle охирги бурчаккача жорий рангда чизилади.
StAngle=0 ва EndAngle=360 ларнинг кийматлари тулла элипис чизишга олиб келади.
Мисол:: оч хаво рангли эллиписни чизиш.
SetColor(LightCyan);
Ellipse(100,100,0,360,30,50);
Эллиписнинг ичидаги фон экран фони билан мос тушади. Буялган эллиписни хосил килиш учун махсус FillEllipse (X, Y: integer; xR, yR: word) процедураси ишлатилади.
Бу ерда X, Y - дисплей координаталаридаги эллиписнинг маркази, xR ва yR - лар горизонталь ва вертикаль уклар. Тулдириш SetFillStyle ёки SetColor: процедураси ёрдамида урнатилади.
SetFillStyle(WideDotFill,Green); { тулдириш стилини урнатиш }
SetColor(LightRed); { эллиписни чизиш учун ранг }
FillEllipse(300,150,50,50);
Бу франгментда эллипис очик кизил рангда, эгри чизик эса WideDotFill даги яшил ранг билан чизилади.
PieSlice (X,Y: integer; StAngle, EndAngle, Radius: word)
процедураси айлана сектирини маска билан тулдиради ва чизади. Бу ерда Х, Y - айлана маркази, сектор эса StAngle дан бошланиб, EndAngle. гача чизилади. Сектор контури жорий ранг билан чизилади.
. Мисол я PieSlice ни ишлатиш:
SetFillStyle(10,LightGreen); {стилни урнатиш }
SetColor(12); { чизиш учун ранг }
PieSlice(100,100,0,90,50);
Элипис секторини тузиб, уни тулдириш мумкин. Бунинг учун Sector(X, Y: integer; StAngle, EndAngle, xR, yR: word) процедураси ишлатилади.
Бу ерда X, Y - марказ, xR, yR - горизонталь ва вертикаль радиуслар.
Масалан:
SetFillStyle(CloseDotFill,LightBlue); { стилни урнатиш }
SetColor(LightMagenta); { чизиш учун ранг }
Sector(300,150,180,135,60,70);
Do'stlaringiz bilan baham: |