Dastur tarkibida grafik va multimedia ob’yektlari
Mavzu: Dastur tarkibida grafik va multimedia ob’yektlari Reja: 1. Dastur tarkibiga rasm va tasvirlarni joylashtirish. Qt dasturlash muhiti grafik imkoniyatlari. 2. Qt dasturlash muhitida multimedia vidjetlari,ularning xossa va hodisalari. 3. Multimedia ob’yektlarini dasturga qo’shish usullari.
1. Grafik ob’ektlar bilan ishlash. Nuqta, ikki o'lchovli o'lchovlar, to'rtburchaklar kabi geometriya darslari, shuningdek, rang qiymatlarini saqlash uchun maxsus sinflar ko'pincha kompyuter grafikalarini dasturlash uchun ishlatiladi. Nuqta Ikki o'lchovli koordinatalar tizimidagi nuqtalarni aniqlash uchun ikkita sinf ishlatiladi: QPoint va QPointF .Ikki o'lchovli koordinatalar tizimida nuqta X va Y raqamlari juftligi bilan ifodalanadi, bu erda X gorizontal va Y vertikaldir. Koordinata o'qlarining odatdagi tartibidan farqli o'laroq, Qt nuqtaning koordinatalarini belgilashda odatda Y o'qi pastga yo'naltirilgan deb taxmin qilinadi (7-rasm). QPoint klassi butun koordinatali nuqta, QPointF esa haqiqiy koordinatali tasvirlaydi . Ikkala sinfning interfeysi bir xil, u usullarni o'z ichiga oladi,koordinatalar bilan turli xil operatsiyalarni bajarishga imkon beradi, masalan, boshqa nuqtaning koordinatalari bilan qo'shish va olib tashlash. Nuqtalarni qo'shganda / chiqarganda ularning X va Y koordinatalarini juftlik bilan qo'shish / ayirish amalga oshiriladi.7-rasmda keltirilgan misol ikkita nuqtani qo'shadi: pt 1 va pt 2. QPoint pt1 ( 10, 20); QPoint pt2 ( 20, 10); QPoint pt3; / / ( 0, 0) pt 3 = pt 1 + pt 2; Nuqta ob'ektlarini ko'paytirish va raqamlarga bo'lish mumkin. Masalan; misol uchun: QPoint pt (10, 20);
pt * = 2; // pt = (20, 40) Nuqtaning ( X , Y ) koordinatalarini olish uchun x () va y () usullari mos ravishda amalga oshiriladi . SetX () va setY () usullari yordamida nuqta koordinatalari o'zgartiriladi . Qiymatlarini o'zgartirish uchun nuqta koordinatalariga havolalar olishingiz mumkin. Masalan; misol uchun: QPoint pt ( 10, 20); pt . rx ( ) + = 10; // pt = (20, 20) Nuqta moslamalarni bir-biri bilan == (teng) va ! = ( teng emas ). Masalan; misol uchun: QPoint pt 1 ( 10, 20); QPoint pt 2 ( 10, 20); bool b = ( pt 1 == pt 2); // b = rost Agar X va Y koordinatalarining nolga tengligini tekshirish zarur bo'lsa, u holda usul chaqiriladi isNull ( ). Masalan : QPoint pt ; // (0, 0) bool b = pt.isNull (); // b = rost
ManhattanLength () usuli X va Y koordinatalarining absolyut qiymatlari yig'indisini qaytaradi . Masalan; misol uchun: QPoint pt ( 10, 20); int n = pt.manhattanLength (); // n = 10 + 20 = 30 To'rtburchak QRect va QRectF sinflari mos ravishda to'rtburchaklar maydonlarning tamsayı va haqiqiy koordinatalarini (nuqta va o'lcham) saqlash uchun ishlatiladi . Siz to'rtburchaklar maydonni o'rnatishingiz mumkin , masalan, konstruktorga nuqta (yuqori chap burchak) va o'lchamni o'tkazish orqali . Mintaqa, rasmda ko'rsatilgan . 8 quyidagi satrlar yordamida yaratilgan: QPoint pt ( 10, 10); QSize hajmi ( 20, 10); QRect r ( pt , hajmi); X () yoki y () usullaridan foydalanib to'rtburchakning chap tomonidagi X koordinatalarini yoki tepaning Y qismini olish mumkin . Bu koordinatalarini o'zgartirish uchun, foydalanish setX () va setY () usullari . Hajmi QSize sinfining ob'ektini qaytaradigan size () usuli yordamida olinadi . Siz shunchaki o'lcham komponentlarini qaytaradigan usullarni chaqirishingiz mumkin - width () va height (). Siz setSize () usuli va uning har bir tarkibiy qismi - setWidth () va setHeight () usullaridan foydalanib o'lchamini o'zgartirishingiz mumkin .
To'g'ri chiziq QLine va QLineF darslari bir to'g'ri chiziq yoki ko'proq to'g'ri, to'liq son va real koordinatalarini bir samolyotda bir segment tasvirlab. Boshlang'ich nuqtaning holatini x 1 () va y 1 () usullari yordamida , oxirgisi - x 2 () va y 2 () yordamida olish mumkin. Shunga o'xshash natijaga sinf ob'ektlarini qaytaradigan p 1 () va p 2 () murojaatlari orqali erishish mumkin QPoint / QPointF ilgari tasvirlangan. Dx () va dy () usullari chiziqning gorizontal va vertikal proyeksiyalarini mos ravishda X va Y o'qlariga qaytaradi . 8- rasmda ko'rsatilgan to'g'ri chiziq bitta satr kodi bilan yaratilishi mumkin: QLine liniyasi ( 10, 10, 30, 20); Ikkala sinf QLine va QLineF taqqoslash operatorlarini == ,! = va boshlang'ich va tugash nuqtalari o'rnatilmagan bo'lsa, mantiqiy haqiqatni qaytaradigan isNull () usuli . Rang Siz ko'rgan ranglar turli xil elektromagnit chastotalarga ega bo'lgan yorug'lik ta'siridan vizual tuyg'u sifatida qabul qilingan moddiy olamdagi narsalarning xususiyatidan boshqa narsa emas. Darhaqiqat, inson ko'zi ushbu chastotalarning juda kichik diapazonini idrok etishga qodir. Ko'z sezadigan eng yuqori chastotali rang binafsha rangga, eng pasti esa qizil rangga ega. Ammo bunday kichik diapazonda ham millionlab ranglar mavjud. Shu bilan birga, inson ko'zi 10 mingga yaqin turli xil rang soyalarini sezishi mumkin.