yoqlar
poligonlar
sirtlar
37
“Uchi” elementi (vertex) - tasvirlashning asosiy elementi,
qolganlari esa uning natijasi.
Uch o‘lchovli dekart koordinatalar sistemasidan foydala-
nilganda uchlar
(
)
kabi aniqlanadi. Har bir obyekt o‘zining
uchlari bilan bir qiymatli aniqlanadi.
3.2-rasm. Vektor poligonal modelning asosiy elementlari.
Uchlar alohida olingan (o‘lchami ahamiyatga ega bo‘lmagan)
nuqtaviy obyektni modellashtirishi mumkin, hamda chiziqli
obyektlar va poligonlar uchun chetki nuqtalar sifatida ishlatilishi
mumkin. Ikki nuqta bilan vektor beriladi. Bir qancha vektorlar siniq
chiziqni tashkil etadi. Siniq chiziq qalinligi hisobga olinmaydigan
alohida olingan chiziqli obyektni modellashtirishi mumkin yoki
poligon konturini ifodalashi mumkin. Poligon yuzali obyektlarni
modellashtiradi. Bitta poligon hajmga ega obyektni biror bir tekis
yog‘ini tasvirlashi mumkin. Bir qancha yoqlar poligonal sirt
ko‘rinishdagi hajmiy obyektni-ko‘pyoqni yoki ochiq sirtni
tasvirlaydi (adabiyotlarda ko‘p hollarda “poligonal to‘r” degan nom
ishlatiladi).
Uch o‘lchovli kompyuter grafikasining zamonaviy tizimlarida
vektorli poligonal modellar juda keng tarqalgan. Undan avtomat-
lashtirilgan
loyiha
tizimlarida,
kompyuter
o‘yinlari
va
trenajyorlarda, geoaxborot tizimlari va shu kabilarda keng
foydalaniladi.
Vektorli poligonal modelda ishlatiladigan ma’lumotlar
tuzilmasini ko‘rib chiqaylik. Obyektga misol sifatida kubni olamiz.
Ma’lumotlar tuzilmasida bunday obyektni tasvirlashni qanday
tashkil qilishni ko‘raylik.
Birinchi usul
. Hamma yoqlarni alohida saqlaymiz.
A yoq
(
) (
) (
) (
)
nuqta
vektor
siniq chiziq
poligon
polygonal sirt
38
B yoq
(
) (
) (
) (
)
C yoq
(
) (
) (
) (
)
D yoq
(
) (
) (
) (
)
E yoq
(
) (
) (
) (
)
F yoq
(
) (
) (
) (
)
3.3-rasm. Kubni tasvirlashning birinchi usuli.
Bu sxemani quyidagicha tasvirlaymiz:
3.4-rasm. Alohida yoqlar.
Kompyuter dasturida obyektni bunday tasvirlash usulini
turlicha amalga tadbiq qilish mumkin. Barcha yoqlarni elementlari
vektor bo‘lgan massivda yozish mumkin. Alohida yoqlarni
tasvirlash uchun yoki butun obyektni tasvirlash uchun (klaslardan)
sinflardan (C++ tilidan) foydalanish ham mumkin.
( )
uchlikni
birlashtiruvchi tuzilma tashkil qilish mumkin yoki koordinatalarni
alohida saqlash mumkin. Bularning barchasi qaysidir ma’noda
dasturchiga, uning ta’biga bog‘liqdir.
Kubni tasvirlash uchun zarur bo‘ladigan xotira hajmini
quyidagicha hisoblaymiz:
Bu yerda,
– koordinatani tasvirlash uchun zarur bo‘ladigan
sonning razryadi. Oltita yoq bu yerda, 24 ta uch (vershina) bilan
39
tasvirlanadi. Bunday tasvirlashda ortiqchalik bor, ya’ni har bir uch
uch martadan yoziladi. Bu yerda har bir yoqda umumiy uchlar
borligi hisobga olinmaydi.
40
Ikkinchi usul
Bu variantda sakkizta uchning koordinatalari takrorlanishlarsiz
saqlanadi. Ular nomerlanadi (3.5-rasm), har bir yoq uchlarning
indekslari ro‘yxati ko‘rinishida beriladi.
3.5-rasm. Uchlarning nomerlanishi.
3.6-rasm. Yoqlar massivida uchlarning indekslari saqlanadi.
Xotira sarfini baholaymiz:
.
Bu yerda,
– uchlar koordinatalari razryadi;
– indeks
razryadi.
Uchinchi usul
Bu usul (adabiyotlarda chiziqli-bog‘lama model deb atashadi)
ierarxiyaga asoslanadi: uch, qirra, yoq.
Xotira sarfini baholaymiz:
uchlar
yoqlar
41
Bu yerda,
– koordinata razryadi;
va
– uchlar
indeksi razryadi va qirralar indeksi razryadi.
Qirralar:
uchlar indeksi
Yoqlar:
qirralar indeksi
3.7-rasm. Chiziqli-tugun modeli.
Bu uchta variantda xotiralar hajmini taqqoslash uchun
ma’lumotlar razryadini aniqlab olish zarur bo‘ladi. Faraz qilaylik
koordinatalar va indekslar razryadi to‘rt baytni tashkil etadi. Bu
koordinatalar uchun butun tip long (bu tiplar C, C++ tillaridan
olingan) ga mosligini anglatadi. U holda xotira sarfi baytlarda
quyidagicha bo‘ladi:
.
Koordinatalar uchun 8 bayt (double tipi), indeks uchun 4 bayt
ajratilgan. U holda:
bo‘ladi.
Koordinata razryadi indeks uchun razryadga nisbatat katta
bo‘lganda ikkinchi va uchinchi variantlar afzalligi yuqoriroq
bo‘ladi. Bunday xulosaga kub uchun kelganligimizni ta’kidlash
lozim. Boshqa tip obyektlar uchun variantlar o‘rtasidagi yuqoridagi
munosabat boshqacha bo‘lishi mumkin. Bundan tashqari,
ma’lumotlar tuzilmasi qurishning quyidagi variantlarini hisobga
olish zarur: barcha obyektlar uchun yagona massiv ishlatilganmi
Uchlar
Qirralar:
uchlar indeksi
Yoqlar:
qirralar indeksi
42
yoki har bir obyekt uchun alohida massiv mo‘ljallanganmi
(dasturlashning obyektga-yo‘ntirilgan stilida har bir obyektni
alohida (klass) sinfda saqlash mumkin). Bu esa indekslar uchun har
xil razryadlar zarurati deganidir.
Endi esa, vektorli poligonal modelning bu uchta har xil
ko‘rinishini boshqa aspektlarni hisobga olgan holda taqqoslaymiz.
Do'stlaringiz bilan baham: |