78
olish uchun birinchi kvadrant x=0 to‗g‗ri chiziqga nisbatan qaytadi. Aylananing
yuqori yarim qismi qurishni tamomlash uchun x=0 to‗g‗ri chiziqga nisbatan qaytadi.
Almashtirishga mos keladigan ikki o‗lchamli matritsa keltirilgan.
Algoritmni chiqarish uchun koordinatalar bosh markazdan aylananing birinchi
choragini qarab chiqamiz. Algoritmning ishchi nuqtasi x=0, u=R nuqtalardan
boshlansa, u holda aylanani soan ctrelkasi bo‗yicha generatsiyalash vaqtida birinchi
kvadranta u funksiya x argumentiningmonotonna kamayuvchi funksiyasi bo‗lib
hisoblanadi. Agar u=0, u=R boshlang‗ich nuqta bo‗lib hisoblansa, u holda aylanani
soan ctrelkasi yo‗nalishiga teskari holatda generatsiyalash vaqtida x funksiya u
argumentining monotonna kamayuvchi funksiyasi hisoblanadi. Bizning holatda soan
ctrelkasi bo‗yicha generatsiyatanlanadi x=0, u=R. Tasavvur qilamiz, aylana markazi
va boshlang‗ich nuqta aniq rastr nuqtasida joylashgan.
Soan ctrelkasi yo‗nalishi bo‗yicha generatsiyalashda aylanaga berilgan har
qanday nuqta uchun keyingi pikselni tanlash uchun uchta imkoniyat mavjud: o‗ngga
gorizontal, diagonal bo‗yicha pastga va o‗ngga vertikal chapga.
Bu yo‗nalishlar mosravishda m
H
, m
D
, m
V
lar bilan belgilangan. Algoritm aylana
va piksellardan birining orasidagi masofa kvadrati minimali uchun piksel tanlaydi.
M
H
= [(x
i
+ 1)
2
+ (y
y
)
2
- R
2
]
m
D
= [(x
i
+ 1)
2
+ (y
i
- 1)
2
- R
2
]
m
V
= [(x
i
)
2
+ (y
i
- 1)
2
- R
2
]
Agar (x
i
, u
i
) nuqtalar kesishuvini aylana va rastr setkasini kesib o‗tishini faqat
besh turi mavjudligini e‘tiborga olib, echimni soddalashtirish mumkin.
Kvadrantlar orasidagi farq, ya‘ni aylana markazidan diagonal piskelgacha
masofa (x
i
+ 1, u
i
- 1) va markazdan aylanadagi R
2
nuqta
i
= (x
i
+ 1)
2
+ (y
y
- 1)
2
- R
2
.
Xuddi Brezemxemning kesma uchun algoritmi kabi, mos keluvchi pikselni tanlash
uchun iloji boricha faqat xatolik belgisidan foydalaning, uning miqdoridan emas.
Dostları ilə paylaş: