Bu dastur uchun masala quyidagicha: Ekranda to‘g‘ri to‘rtburchaklar bilan yaqinlashtirilgan tasodifiy sirt aks ettirilsin. Buning uchun nuqtada Z koordinataning tasodifiy qiymatlarini saqlovchi va boshqa koordinatalari massivning indekslari bilan aniqlanadigan ikki o‘lchovli massiv hosil qilinsin.
Muammolar
Mazkur dasturni yozishda quyidagi muammolar sodir bo‘ladi:
1. Tasodifiy shakldagi to‘rtburchaklarni ekranga chiqarish uchun piksellarni shaklga bevosita chiqarishdan foydalanish zarur. Bu muammoni hal qilishning variantlaridan biri ko‘pburchaklarni chiqarish uchun funksiyalar to‘plamiga ega bo‘lgan Canvas forma xossasiga murojaat qilishdir. Tasodifiy ko‘pyoqlilarni ekranda aks ettirish uchun Canvas forma ob’yektining Polygon protsedurasidan (Form1->Canvas->Polygon(….)) foydalanish mumkin. Bu protseduraga ko‘pyoqlilarning burchaklari va int turidagi ikkita X va Y o‘zgaruvchilardan iborat TPoint turidagi ob’yektlar massivi uzatiladi.
Shunday qilib bu protseduradan foydalanish uchun avvalo bunday ob’yektlar massivi ifodalanadi va har bir nuqta uchun X va Y qiymatlar beriladi. Ma’lum nuqta uchun koordinatalar . konstruksiyasi yordamida beriladi.
Misol:
TPoint T;
T.x = 100;
T.y = 117;
2. Tasvirning uch o‘lchovliligini simulyatsiya qilish uchun sirt joylashgan fazo koordinatalarini ekranning yassi koordinatalariga almashtirishni bajarishimiz zarur. Bu muammoni yechish uchun koordinatalarni almashtiruvchi sodda matematik formulalardan foydalanamiz.
X, Y, Z lar sirt joylashgan fazoning koordinatalari, U va V monitorning koordinatalari bo‘lsin. U holda koordinatalarni almashtirish formulalari quyidagicha bo‘ladi:
.
Bu erda ConstH – gorizontal va vertikal o‘lchovlarni bog‘lovchi biror o‘zgarmas.
3. Katta yaqqollik uchun sirtni approksimatsiyalovchi elementlarni parallelepipedlar ko‘rinishida tasavvur qilish kerak, buning uchun ularni turli ranglardagi uchta ko‘pburchak yordamida tasvirlash zarur. Keltirilgan formulalar yordamida hisoblangan koordinatalar parallelepipedning burchaklaridan birini aniqlasin. Boshqa burchaklarining koordinatalari osongina, bosh (asosiy) burchak koordinatalariga bir nechta piksellarni qo‘shish natijasida oson hisoblanadi.