Mavzu: Image komponenti. Futbol topini sakratish loyixasi
Download 133 Kb.
|
20-Mavzu Edit komponenti. ”Parol kiritish oynasi” loyixasi. O’q-1
- Bu sahifa navigatsiya:
- SAVOL VA TOPSHIRIQLAR.
Mavzu: Image komponenti. Futbol topini sakratish loyixasi. Delphida grafika bilanishlash uchun keng imkoniyatlar yaratilgan. Bir qator obyektlarning Canvas (polotno, sirt) degan xossasi bolib, uning ozi obyekt hisoblanadi. Uning xossa va usullaridan foydalanib, bu obyekt egallagan joyda turli shakllarni chizish mumkin. Masalan, ilova oynasida togri tortburchak chizish uchun Form1.Canvas.Rectangle(10, 20, 200, 100);operatoridan foydalanamiz. Listbox1.Canvas.Ellips(0, 10, 60, 50); esa ListBox1da yarim oqlari 30 va 20 ga teng bolgan hamda uchlari (0, 10) va (60, 50) nuqtalarda joylashgan togri tortburchakka ichki joylashgan ellipschizadi. Bu shakllarni ekranda korish uchun yangi ilova yaratamiz. Unga Button va ListBox obyektini joylaymiz. Button1 tugmasini ikki marta bosib, kursor turgan joyga yuqoridagi ikkita operatornikiritamiz: Form1.Canvas.Rectangle(10, 20, 200, 100); ListBox1.Canvas.Ellips(0, 10, 60, 50); Ilovani ishga tushirib, undagi tugmani bossak, ekranda tortburchak va ellips paydo boladi. quyidagi rasmdan ham korinib turibdi-ki, sanoq sistemasining boshi sifatida obyektning chap yuqori burchagi olingan. Dastlab gorizontal, song vertikal oqlardagi koordinatalar korsatiladi: Delphida grafika bilan ishlash uchun maxsus boshqarish obyektlari bor. Ular Image (rasm, tasvir) va Shape (shakl) bolib, obyektlar panelining Additional (qoshimcha) jildida joylashgan: Bu obyektlarning Canvas (polotno) obyektlarida xossa, usul va ajdod obyektlar yordamida grafika yaratiladi. Canvasning asosiy ish qurollari Pen (qalam) va Brush (chotka) bolib, ulardan birinchisi yordamida chiziqlar chiziladi. Ikkinchisi esa sohalarni boyashda ishlatiladi. Pen (qalam) ning xossalaridan asosiylari Width (eni), Style (stili) va Color (rangi) lardir. Image1.Canvas.Pen.Width:=5; operatori qalamda chiziladigan chiziq kengligini 5 pikselga teng qilib ornatadi. Style xossasi chiziladigan chiziqlarning korinishini ozgartiradi. U quyidagi qiymati oldindan aniqlangan ozgarmaslardan biriga teng bolishi mumkin: psSolid uzluksiz (oldindanornatilgan). psDash shtrix (maydakesmachalar). psDot (nuqtalar). psDashDot kesma vanuqta. psDashDotDot kesma, nuqta vanuqta. psClear korinmas. Qalam stilini ozgartiruvchi operator Image1.Canvas.Pen.Style:=psDash; kabi boladi. Pen (qalam) ning Color (rang) xossasi chiziladigan chiziqning rangini belgilab beradi. bu xossada ham oldindan berilgan ozgarmaslardan foydalanish mumkin. Masalan, clBlack (qora, oldindan ornatilgan), clWhite (oq), clBlue (kok), clGreen (yashil), clRed (qizil), clYellow (sariq), clBrawn (jigar rang), clGrey (kul rang), clSilver (kumush rang, clAqua (havo rang) va yana onlab ozgarmaslarmavjud. Image1.Canvas.Pen.color:=clRed; operatori chiziladigan chiziq rangini qizilga ozgartiradi. Delphi da 16 milliondan ortiq ranglardan foydalanish mumkin. Bu ranglarning barchasa uchta asosiy rang: qizil, yashil va kok ranglarni qoshish orqali yaratiladi. Asosiyranglarningharbiriuchunbirbaytajratiladi.Buuchtabaytda xil rangni saqlash mumkin. Ranglarning tartibnomerini 16lik sanoq sistemasida yozish qulay. Bu sanoq sistemasida uch baytga 6 xonali son mos keladi. Ulardan eng kichik ikkita xona qizil, ortadagi ikki xona yashil, va eng katta ikki xona kok rangga mos keladi: $BBGGRR (bu yerda BB kok rangga, GG yashil, RR qizil rangga mos raqamlar. Masalan, kok rang $FF0000, yashil $00FF00, qizil $0000FF, sariq $00FFFF, pushti rang $FF00FF on oltilik son bilan ifodalanadi. Agar on oltilik sanoq sistemasida ishlash noqulay bolsa, u holda RGB(RR, GG, BB) standart funksiyadan foydalanish mumkin. Bu funksiyaning uchta argumenti bolib, ulardan birinchisi qizil, ikkinchisi yashil, uchinchisi kok ranglarga mos keladi. Bu argumentlarning qiymatlari 0 dan 255 gacha bolishi mumkin. Masalan, RGB(0, 0, 0)qora rangni, RGB(255, 255, 255) oq rangni, RGB(0, 255, 255) havorangni, RGB(127, 0, 0) toq qizil rangni, RGB(0, 127, 0) toq yashil rangni, RGB(200, 200, 0) toq sariq rangniberadi. Brush (chotka)ning rangi ham shu tarzda aniqlanadi. Uning stilini quyidagi ozgarmaslar orqali ozgartirish mumkin: bsSolid sidirga (birtekis). bsClear korinmas. bsBDiagonal yon diagonalboylab. bsFDiagonal asosiy diagonalboylab. bsCross panjarasimon. bsDiagCross diagonal boylabpanjara. bsHorizontal gorizontal. bsVertical vertikal. Canvasning Pixels xossasi yordamida rasm chiziladigan sohadagi har bir nuqtani boshqarish mumkin. Bu xossada piksellar ikki olchovli massivni tashkil etadi. 50-qatorning 100-ustunida joylashgan pikselga murojaat qilish uchun Pixels[100,50] deb uning ikkita indeksini korsatish yetarli. Agar biz bu pikselning rangini qizilga ozgartirmoqchi bolsak, Image1.Canvas.Pixels[100,50]:= RGB(255,0,0);operatoridan foydalanamiz. PC:=Image1.Canvas.Pixels[100,50]; operatori esa pikselning rangini ozgaruvchida saqlashga imkon beradi. Timer obyektidan birinchi navbatda animatsion harakat yaratish uchun foydalaniladi. Bu qanday amalga oshirilishini korish uchun yangi ilova yaratamiz. Unga yetarlicha katta Image obyektini, bittadan Timer, CheckBox va SpinEdit larnijoylaymiz. Ilova oynasining Image egallagan qismida koptok harakatlansin. Koptok devorga urilganda orqasiga qaytsin. Uning harakati tezligini SpinEdit dagi qiymat belgilab bersin va u ozgarishi bilan koptok tezligi ham ozgarsin. CheckBox da bayroqcha ornatilgan bolsa, koptokning harakatlangandagi izi ham korinib tursin, aks holda faqat koptokning joriy holati ekranga chiqarilsin. Koptokning holati sekundiga 20 marta (50 millisekund interval bilan) yangilabturilsin. CheckBox ning sarlavhasini izi bilan deb ozgartiramiz, Checked xossasini rost qilib ornatamiz. SpinEdit ning maksimal qiymatini 10 ga teng qilib olamiz. Timer ning Interval xossasini 50 gatenglaymiz. Ilovada koptokning joriy holatini saqlash uchun ikkita: x, y; koptok harakatining joriy yonalishini saqlash uchun yana ikkita: dx, dy ozgaruvchilar kerak boladi. Ularni tavsiflovchi operator var x,y,dx,dy:integer; operatorini dastur kodi oynasida var Form1: TForm1; dan keyinga joylaymiz. Bu ozgaruvchilarga boshlangich qiymatlar berish uchun Form1 ning boshqa obyektlardan bosh qismini ikki marta bosamiz. Dastur oynasida paydo bolgan TForm1.FormCreate protsedurasiga x:=0;y:=0;dx:=2;dy:=1; operatorlarini kiritamiz. Timer obyektini ikki marta bosib uning protsedurasini quyidagicha toldiramiz: procedure TForm1.Timer1Timer(Sender: TObject); var n:integer; begin n:=SpinEdit1.Value; if not CheckBox1.Checked then Image1.Canvas.Rectangle(-3,-3,Image1.Width+3,Image1.Height+3); x:=x+dx*n; if x>Image1.Width then begin x:=2*Image1.Width-x; dx:=-dx;end; if x<0 then begin x:=-x; dx:=-dx;end; y:=y+dy*n; if y>Image1.Height then begin y:=2*Image1.Height-y; dy:=-dy;end; if y<0 then begin y:=-y; dy:=-dy;end; Image1.Canvas.Ellipse(x-10,y-10,x+10,y+10); end; Ikkinchi satrda protsedurada foydalanish uchun yangi n nomli ozgaruvchi tavsiflanadi. Tortinchi satrda bu ozgaruvchiga SpinEdit1 da berilgan harakat tezligi qiymati kiritiladi. Beshinchi satrda CheckBox1 da bayroqcha ornatilganligi tekshiriladi. Agar bu bayroqcha ornatilmagan bolsa, oltinchi satrda koptokning oldingi holati butun rasmni ochirib tashlash bilan yoqotiladi: Yettinchi satrda koptokning yangi holatining koordinatasi topiladi. Sakkizinchi satrda bu yangi holatning rasmning ong chegarasidan otib ketishi tekshiriladi. Agar otib ketsa, ning yangi qiymati hisoblab topiladi va gorizontal harakat yonalishi teskarisiga ozgartiriladi. Toqqizinchi satrda koptokning yangi holati rasmning chap chegarasidan otib ketishi tekshiriladi va bu holat yuz bergan bolsa, uning koordinatasi qayta hisoblanib, harakat yonalishi teskarisiga ozgartiladi. Oninchi satrdan on ikkinchi satrgacha koptokning koordinatasi shu tarzda qayta hisoblanadi. Nihoyat on uchinchi satrda koptokning yangi holati ekranda chiziladi. Ilovani ishga tushirib, uning ishlashini kuzatamiz. SAVOL VA TOPSHIRIQLAR. Grafika bilan ishlash qanday qilib amalgaoshiriladi? Image obyekti obyektlar panelining qayeridajoylashgan? RGB funksiyasi qanday vazifabajaradi? Ekranga qizil yashil va qora rangli uchta togri tortburchak chizadigan ilovayarating. Ekranda kok, kumushrang va sariq rangli uchta ellips chizadigan ilovayarating. Download 133 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling