Informatika va axborot


 Pixels (piksellar) xossasi


Download 4.2 Mb.
Pdf ko'rish
bet79/93
Sana12.08.2023
Hajmi4.2 Mb.
#1666566
1   ...   75   76   77   78   79   80   81   82   ...   93
Bog'liq
10-sinf-informatika

3. Pixels (piksellar) xossasi. 
Canvas
ning 
Pixels
xossasi yordamida
rasm chiziladigan sohadagi har bir nuqtani boshqarish mumkin. Bu xossada 
piksellar ikki o‘lchovli massivni tashkil etadi. 50-qatorning 100-ustunida 
joylashgan pikselga murojaat qilish uchun 
Pixels[100,50] 
deb uning ikkita 


135 
indeksini ko‘rsatish yetarli. Agar biz bu pikselning rangini qizilga 
o‘zgartirmoqchi 
bo‘lsak, 
Image1.Canvas.Pixels[100,50]:= 
RGB(255,0,0);
operatoridan foydalanamiz. 
PC:=Image1.Canvas.Pixels[100,50];
operatori 
esa 
pikselning rangini o‘zgaruvchida saqlashga imkon beradi. 
4. MoveTo va LineTo usullari.
Chizma chizishda to‘g‘ri chiziq
kesmasini chizish ko‘p ishlatiladi. Bu borada 
Delphi
qanday imkoniyatlarga 
ega? 
Canvas
obyektining 
MoveTo
(... ga o‘t) va 
LineTo
(...gacha chiz) 
usullari kesma chizish uchun xizmat qiladi. Ularning ikkalasi ham butun 
qiymatli ikkitadan argumentga ega. Bu argumentlar yordamida rasmdagi 
nuqtaning koordinatalari ko‘rsatiladi.
Uchlari (x1, y1) va (x2, y2) nuqtalarda bo‘lgan kesmani chizish uchun 
avval
MoveTo(x1, y1)
usuli bilan kesmaning birinchi uchiga o‘tiladi va 
Lineto(x2,y2)
usuli bilan ikkinchi uchigacha bo‘lgan kesma chiziladi. 
Bunda grafik kursor (x2, y2) nuqtaga o‘tadi. Agar yana bir marta 
Lineto(x3,y3) 
usuli qo‘llansa, uchlari (x2, y2) va (x3, y3) nuqtalarda 
bo‘lgan kesma chiziladi va grafik kursor (x3, y3) nuqtaga o‘tadi. 
Bu usullarning amalda qo‘llanishini 
Muntazam N burchak diagonallari
deb nomlangan ilovada ko‘rib chiqamiz. 
Delphi
da yangi ilova yaratamiz va 
unga bittadan 
Image

SpinEdit 
va 
Button
obyektlarini joylaymiz.
Button
ning sarlavhasini 
chiz

SpinEdit
sarlavhasini esa 
N
ga 
o‘zgartiramiz. 
SpinEdit
ning eng katta qiymati (
MaxValue
) ni 40, eng kichik 
qiymati (
MinValue
) ni 3, joriy qiymati (
Value
) ni 7 ga teng qilib olamiz. 
Image
ning bo‘yi (
Height
) va eni (
Width
) ni 500 ga teng qilib olamiz. 
Button
tugmasini ikki marta bosib, unga diagnallar degan buyruqni 
kiritamiz. Bunday buyruq hozircha yo‘q, shuning uchun shu nomdagi 
protsedurani 
TForm1.Button1Click 
protsedurasidan oldin kiritamiz:
procedure diagonallar; 
var i,j,n,r:integer; 
x,y: array [0..40] of integer; begin 
r:=Form1.Image1.Height div 2; 
Form1.Image1.Canvas.Pen.Color:=clRed; 
Form1.Image1.Canvas.Rectangle(-1,-1,2*r+2,2*r+2); 
n:=form1.SpinEdit1.Value; 


136 
for i:=1 to n do begin 
y[i]:=round(r-r*cos(2*pi/n*i)); 
x[i]:=round(r+r*sin(2*pi/n*i)); end; 
for i:=1 to n-1 do for j:=i+1 to n do begin 
Form1.Image1.Canvas.MoveTo(x[i],y[i]); 
Form1.Image1.Canvas.LineTo(x[j],y[j]); end; end; 
Bu protsedurada oltita o‘zgaruvchi kiritamiz. i va j o‘zgaruvchilar siklni 
boshqarish uchun ishlatiladi. N o‘zgaruvchida ko‘pburchakning burchaklari 
soni, r o‘zgaruvchida muntazam ko‘pburchakka tashqi chizilgan aylana 
radiusi saqlanadi. x va y massivlarda ko‘pburchak uchlarining 
koordinatalari saqlanadi.
Protsedura tanasidagi operatorlarni uchta qismga ajratish mumkin. 
Birinchi qismda to‘rtta operator bo‘lib, ulardan birinchisi aylana radiusini 
rasm balandligining yarmiga teng qilib oladi. Ikkinchi operator chiziqlar 
qizil rangda chizilishini ta’minlaydi. Uchinchi operator chizishdan oldin 
rasmni tozalab tashlaydi. To‘rtinchi operator ko‘pburchakning nechta 
burchagi bo‘lishini aniqlaydi.
Ikkinchi qismda faqat bitta sikl operatori bor. Unda ko‘pburchak 
uchlarining koordinatalari aniqlanadi.
Uchinchi qismda ham bitta ichma-ich joylashgan sikl operatori bo‘lib, u 
ko‘pburchakning tomonlari va diagonallarini chizadi. Ilovani ishga 
tushiramiz. Avval muntazam yetti burchakni, so‘ng muntazam 28 burchakni 
chizamiz. Ular quyidagi rasmda ko‘rsatilgan: 

Download 4.2 Mb.

Do'stlaringiz bilan baham:
1   ...   75   76   77   78   79   80   81   82   ...   93




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling