3.33Нукта ва чизикларони чикариш.
PutPixel, GetPixel, Line, SetColor, LineTo, LineRel, SetLineStyle, чизикни экранга чикариш режими
Нуктани чикариш учун GRAPH библиотекасида PutPixel(X, Y: integer; Color: word) процедурасидан фойдаланамиз.
бу ерда X и Y - нуктани экранда жойлашиш координатаси, Color - унинг ранги.
Color нинг мумкин булган кийматлари куйидаги табл. 13.6 да келтирилган.
Табл. 13.6. Рангли шкала
Ранг
|
Код
|
Ранг
|
Код
|
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
|
Конкрет позициядаги нукта рангини билиш учун GetPixel(X, Y: integer) фукцияси ишлатилади
Line(X1, Y1, X2, Y2: integer) процедураси чизиклар чизиш учун ишлатилади.,
бу ерда X1, Y1 - чизикнинг координаталар боши , X2, Y2 - координатлар охири. Масалан:
Line(1,1,600,1);
Куриниб турибдики, Line процедурасида ранг урнатиш парметри йук, шунинг учун бу холатларда рангни SetColor (Color: word) процедураси ердамида урнатилади.
бу ерда Color - ранг, унинг кийматлари 13.6 таблицадан олинади.
Масалан:
SetColor(Cyan);
Line(1,1,600,1);
Чизик чизиш учун яна иккита процедура кулланилади: LineTo и LineRel.
LineTo(X,Y: integer)
LineRel(dX,dY: integer) прцедураси курсатгичнинг жорий нуктасидан CPx + dX, CPy + dY гача булган чизикни чизади, бу ерда CPx ва Cpy лар СР нинг жорий координаталари.
Turbo-Pascal турли стилдаги ранглар чизиш имкониятини беради: нозик, кенг, штрихли, пунктирли ва хокозолар. Стилни урнатиш SetLineStyle (LineStyle: word; Pattern: word; Thickness: word) процедураси ёрдамида амалга оширилади.
Параметр LineStyle параметри катор типини урнатади.Унинг кийматлари 15.7 таб.да келтирилган; Pattern - наъмуна, Thickness - 15.8 таб. да келтирилган константалар оркали аникланган чизикнинг калинлиги.
Агарда фойдаланувчи узининг стилида ишлашни хохласа, унда Pattern нинг киймати 4 га тенг. Масалан:
SetLineStyle(UserBitLn,$5555,ThickWidth);
Rectangle(20,20,120,100);
Табл. 13.7. Чизик стили
Константа
|
Киймат
|
Ёзув
|
SolidLn
|
0
|
Узликсиз чизик
|
DottedLn
|
1
|
Нукталардан чизилган чизик
|
CenterLn
|
2
|
Нукта ва тирелардан чизилган чизик
|
DashedLn
|
3
|
Штрихли чизик
|
UserBitLn
|
4
|
Фойдалананувчининг типи
|
GetLineSettings (VAR LineInfo : SetLineStyle. Тип LineSettingsType томонидан урнатилган жорий стилни, чизик образи ва калинлигини кайтаради ва куйидаги стандартга эга.
TYPE
LineSettingsType = RECORD
LineStyle : word; { стиль }
Pattern : word; { образ }
Thickness : word { калинлик }
END;
Стиль, образ ва калинлик кийматларини аниклаш учун LineSettingsType ёзувига мурожат этиш керак:
VAR
LineInfo : LineSettingsType;
...
SetLineStyle(DottedLn,0,NormWidth);
Rectangle(15,15,150,130);
GetLineSettings(LineInfo);
WITH LineInfo DO BEGIN
Writeln('Стиль:', linestyle);
Writeln('Образ:', pattern);
Writeln('Калинлик:', thickness)
END;
Табл. 13.8. Чизик калинлиги
Константа
|
Киймат
|
Ёзув
|
NormWidth
|
1
|
Нормал калинлик(1 пиксел)
|
ThickWidth
|
3
|
Калин чизик (3 пиксел)
|
GetTextSettings(VAR Info: TextSettingsType) процедурасини чакириб, жорий матн хакида тула характеристика олиш мумкин.
Бу процедура кийматларни куйидаги тип узгарувчиларига кайтаради:
TYPE
TextSettingsType = RECORD
Font, { шрифт коди }
Direction, { йуналиш коди}
CharSize, { белги улчови}
Horiz, { гориз. текислаш киймати }
Vert: word { верт. текислаш киймати }
END;
Майдонларга утиш:
VAR
InfVar : TextSettingsType;
...
GetTextSettings(InfVar);
Writeln('Шрифт:',InfVar.Font);
Writeln('Йуналиш:',InfVar.Direction);
...
Do'stlaringiz bilan baham: |