Bez’e egri chiziqlari uchun goemetrik algoritmlar
.
Bu algoritm Bez‘e egri
chizig‗i nuqtasini (x, u) koordinatalarini
t
parametr qiymati bo‗yicha hisoblash
imkonini beradi.
1.
Ko‗p burchak konturining mo‗ljal nuqtasidan o‗tadigan har bir tomoni
t
qiymatga proportsional bo‗linadi.
2.
Bo‗linish nuqtalari to‗g‗ri chiziq kesmalarini birlashtiradi va yangi
ko‗pburchak hosil qiladi. Yangi konturning tugunlar soni oldingi kontur tugunlar
sonidan bittaga kam.
3.
Yangi kontur tomonlari yana
t
qiymatga proportsional bo‗linadi va shunday
davom etadi. Bu yagona bo‗linish nuqtasi hosil bo‗lmagancha davom etadi. Shu
nuqta Bez‘e egri chizig‗i nuqtasi bo‗ladi.
5.4. Rastrli razvertka tasvirni generatsiyalash usullari
Rastrga joylashtirilgan obrazli videomonitorga chiqarish uchun uni displey
rastrli razvertka deyiladi. Displey ro‗yxatidan farqli ravishda, vektorli displey uchun,
informatsiyani tashkil qiluvchilari kesma yoki literlardan iborat bo‗lishi kerak.
Bunday hollarda displey ro‗yxati informatsiyani ekranning har bir pikselida tashkil
etishi zarur. Bundan tashqari, bu informatsiya yig‗ilib va qatorlarni skanerlash
tartibida videogeneratsiya tezligida, yuqoridan pastga hamda chapdan o‗ngga
chiqarilishi zarur. Bunday natijaga erishishni to‗rtta usulibor – haqiqiy vaqtda rastrli
razvertka, guruhli kodlash, katakchali tashkil qilish va kadrlar buferi xotirasi.
Real vaqtda rastrli razvertka.
Haqiqiy vaqtda rastrli razvertka yoki ―na letu‖
da stsenalar vizual atribut terminlarida va geometrik xarakteristikalarda bemalol
tasvirlanadi.
Haqiqiy vizual atributlar rang, ottenok va intensivlik hisoblansa, unda
X, U
koordinatalar, egilish burchagi va matn geometrik xarakteristikaga kiradi. Ko‗rsatish
vaqtida har bir kadrni protsessor skaner qiladi va bu informatsiyani har bir pikselini
intensivligini ekranda hisoblaydi. Bunday razvertkada ko‗p hajmli xotira kerak emas.
Xotiraga murojaat odatda displey ro‗yxatini saqlash va bitta skaner qilinayotgan
qatorni saqlash zarurati bilan chegaralanadi. Bundan tashqari, stsenalar haqidagi
85
ma‘lumot tashkil qilingan displey ro‗yxatda saqlansa, ro‗yxatdan ma‘lumotni
o‗chirish yoki yoqishishni amalga oshirish onson kechadi, bu esa dinamik xulosa
uchun qulay. Lekin tasvirni chiqarish murakkabligi displey protsessorini
murakkabligi bilan chegaralanadi. Odatda bu kesmalar yoki ko‗pburchaklar soni,
skaner qilinayotgan qator bilan kesilishlar soni rang turlari chegaralanganligini
anglatadi.
Displey ro‗yxatini har bir bo‗lagini skaner qilinayotgan qator bilan kesilishini
olish uchun (agar ular bo‗lsa), oddiy amalga oshirish usulida har bir martasida tasvir
qatori butun displey ro‗yxatida qayta ishlanadi. Videotasvirni regeneratsiyalash
vaqtida har bir skaner qilinayotgan qatorga, bundan chiqdi butun ro‗yxatni qayta
ishlash uchun 63,5 mikrosekund ketadi. Keltirilgan usulni murakkab bo‗lmagan
chizmalarni chizish uchun qo‗llash mumkin, bundan ortiq emas. Shunday ekan,
umumiy holda stsenada hamma kesmalar ham skaner qilinayotgan qatorni kesib
o‗tmaydi, unda hisoblash miqdori aktiv reber ro‗yxatini kiritish yo‗li bilan
qisqartirilishi mumkin. Bu ro‗yxan ckaner qilinayotgan qatorni kesib o‗tadigan tasvir
kesmalaridan tashkil topgan.
ARR ni tashkil qilish va uni boshqarish uchun bir qancha usullardan
foydalanish mumkin. Birinchi navbatda tasvir kesmalari
U
ning katta bo‗lmagan
koordinatalarida ajratiladi. Bunday ajratishni oddiy usulidan birida ajratilgan
ro‗yxatda ikkita suriluvchi ko‗rsatkichdan foydalaniladi. Boshlanish ko‗rsatkichi
aktiv reber ro‗yxatini boshlanishini belgilash uchun tugash ko‗rsatkichi esa – bu
ro‗yxatni oxirini ko‗rsatish uchun qo‗llaniladi. Boshlanish ko‗rsatkichi ushbu holatda
shu ro‗yxatni boshlanishi bo‗lgan VS kesmaga o‗rnatiladi. Tugash ko‗rsatkichi esa
ro‗yxatdagi shu oxirgi kesmaga, ya‘ni yuqorida qaralgan skaner qilinadigan qatorlar
boshlanadigan VD kesmaga o‗rnatilgan. Tasvirni skanerlashda ARR ni to‗g‗rilash
zarur, bunda navbatdagi skaner qilinadigan qatorga yoki undan oldingisiga yangi
kesmalar ro‗yxatini qo‗shish uchun, tugash ko‗rsatkichi pastga suriladi. Xuddi shu
vaqtda boshlanish ko‗rsatkichi ham, oldin skaner qilinib tugayotgan qator kesmalarini
yakunlash uchun pastga suriladi.
86
Bu muammoni qo‗shimcha ma‘lumotlar tizimi kiritish yo‗li bilan ham qilish
mumkin. Bunda ham tasvirni har bir bo‗lagini skaner qilinayotgan qator bilan
kesishishini hisoblash mumkin. Birinchi navbatda
U
bo‗yicha tasvirning hamma
kesmalarida guruhli ajratish bajariladi.
U
bo‗yicha guruhli ajratishda xotira muhiti yoki har bir skaner qilinadigan
qator uchun guruh hosil qilinadi. Agar, masalan, 512 skaner qilinadigan qator
qo‗llansa, unda 512 guruh foydalaniladi. Kesmalarni displey ro‗yxatidan qarab
chiqish vaqtida har bir kesma haqidagi informatsiya kesma uchun
U
koordinatalari
ko‗proq qiymatda mos keladigan guruhga joylashtiriladi. Oddiy oq-qora kontur tasvir
uchun faqat
X
koordinatalarini guruhli skaner qilinadigan qatorlar bilan kesishadigan
nuqtalarni yozib olish zarur,
X-X
koordinatalarini bir skaner qilinadigan qatordan
boshqasiga o‗tish vaqtidagi o‗zgarishi va
U
– kesmalar kesib o‗tadigan, skaner
qilinadigan qatorlar soni. Oddiy tasvirlar uchun u guruhlardan ko‗pginasi bo‗sh
bo‗ladi.
Skaner qilinayotgan qator uchun aktiv reber ro‗yxati shu qatorga mos keluvchi
U
– guruhlardan informatsiyani qo‗shish orqali amalga oshiriladi.
X
koordinatasidagi
kesishuv nuqtalari skanerlash tartibida amalga oshiriladi va ARR dan rebra rastr
formasiga aylantiriladi.
Undan keyin ARR dan har bir kesma uchun
U
birga kamaytiriladi. Agar
U
0
bo‗lsa, unda kesma ro‗yxatdan o‗chiriladi. Va nihoyat,
X
koordinatasidagi har bir
kesma uchun yangi skaner qilinayotgan qator uchun kesishuv nuqtalari
X
ning
oldingi qiymatlarini qo‗shish orqali olinadi. Bu jarayon hamma skaner qilinayotgan
qatorlar uchun takrorlanadi. Agar
U
– guruhning belgilangan o‗lchami qo‗llansa, u
holda har bir skaner qilinadigan qatorlarning kesishishi uchun belgilangan xotira
miqdori ajratiladi. Shunday usul bilan, skaner qilinadigan qator bilan kesishishning
maksimal miqdori oldindan aniqlanadi va ma‘lum miqdorda tasvir murakkabligi
cheklanadi. Bu usullardan biri bu chegaralanishni kesib o‗tishi mkonini beradi va
ro‗yxatni ketma-ket indekslovchi ma‘lumotlar tizimi sifatida foydalanish mumkin. Bu
holatda har
U
- guruh, faqat guruhdagi birinchi kesma uchun ma‘lumotlar tizimida
87
informatsiya joylashishini ko‗rsatuvchi ko‗rsatkichni o‗z ichiga oladi (skaner
qilinuvchi qatordan boshlanadi).
Kesmalarning skaner qilinadigan qator bilan kesishishini aniqlash usuli vertikal
yoki salkam vertikal kesmalar uchun yaxshi natijalar beradi. Lekin salkam gorizontal
kesmalar uchun juda kam kesishish nuqtasi aniqlanadi, bu kesmani tushunarsiz
tasvirga olib keladi. Oddiy echim sifatida, ikkita ketma-ket skaner qilinadigan
qatorlarda kesishishini aniqlash va kesishish nuqtalari orasidagi hamma piksellarni
aktivlashtirishni taklif qilish mumkin. Gorizontal kesmalar uchun oxirgi nuqtalar
qo‗llaniladi.
Shunday qilib hamma tasvirlar har bir videokadr uchun qayta ishlanadi,
haqiqiy vaqtda razvertka yuqori interaktiv grafika uchun qo‗llaniladi.
U
bo‗yicha guruhli ajratishdan foydalanilganda mos keluvchi
U
– guruhlardan
va unga bog‗liq bo‗lgan ma‘lumotlar tizimidan o‗chirish yoki qo‗shish usuli orqali
kesmalar displey ro‗yxatiga qo‗shilishi yoki o‗chirilishi mumkin.
Bu
oddiy
misol,
intensiv
grafik
sistemada
yordamchi
ro‗yxatni
modifikatsiyalash uchun asosiy fikrlarni ko‗rsatadi. Lekin, bu yerda hamma zarur
aniqliklar keltirilmagan. Masalan, agar faqat ―yo‗qotilgan‖ katakchalar yana
foydalanilmasa yoki ro‗yxat siqilmasa ro‗yxat doimo o‗sishi, qiziq bo‗lishi kerak.
Shunday qilib bitta
videokadrni
qayta
ishlashda bunchalik qattiq
chegaralanishlarda ishlaydigan algoritmni dasturga keltirish qiyin, yaxshi tuzilgan
dasturlar asosan o‗quv trenajyorlari, kemalar uchun navigatsiya trenajerlari imitatsion
tizimlarda qo‗llanilmoqda.
Dostları ilə paylaş: |