2 Лаборатория иши. Мавзу: Геометрик сплайнлар. Ишнинг мақсади ва таркиби


Download 96.2 Kb.
Sana17.06.2023
Hajmi96.2 Kb.
#1539398
Bog'liq
2-лаборатория иши (1)


2 Лаборатория иши.
Мавзу: Геометрик сплайнлар.


1.Ишнинг мақсади ва таркиби.



    1. Сплайн функциялар билан танишиш.

    2. Эрмита, Безье, В- сплайн эгри чизиқлари билан танишиш.

    3. Безье, В-сплайн сиртлар билан танишиш.



2.Қисқача назарий маълумот.

2.1. Сплайн эгри чизиқлари.


Биз айнан сплайнларнинг учинчи даражаси билан чекланамиз, яъни кубик (сплайн эгри чизиқ) ва бикубик (сплайн сирт)ларини таҳлил қиламиз.
Эгри чизиқ М(x,y,z) нуқталар тўпламидан ташкил топадиган, x, y, z ҳар бир нуқтанинг координаталаридир:


x=x(t), y=y(t), z=z(t), a

бунда х(t), y(t), z(t) – [a,b] оралиқда узлуксиз фўнкциялар. y=(t-a)/(b-a) алмаштириши ёрдамида [a,b] кесмани [0; 1] билан алмаштириш мумкин.


Вектор кўринишда


r=r(t), ,

бунда r(t)=(x(t),y(t),z(t)) - вектор функция.


Кубик параметрик эгри чизиқ тенгламасини умумий холда қуйидаги кўринишда ифодалаш мумкин:


x(t)=axt3 + bxt2 + cxt + dx
y(t)=ayt3 + byt2 + cyt + dy
z(t)=azt3 + bzt2 + czt + dz

2.2. Эрмит эгри чизиғи.


Эрмит эгри чизиғи бошланғич ва охирги нуқталари Р1, Р2 ва R1, R2 йўналтирувчи векторлар билан берилади.

r(t)=T МэРэ, ,


бу ерда T=T(t3,t2,t,1) – параметрик вектор.


Me= Pe=


Бунда М - Эрмита матрицаси, Рэ–Эрмит геометрик матрицаси.




2.3. Безье эгри чизиғи.


Безъе эгри чизиғи Р123 ва Р4 таянч нуқталари билан берилади
r(t)=ТМБРБ­,
бу ерда


MБ= Безье матрицаси, PБ= - Безье геометрик матрицаси

Безье эгри чизиғининг параметрик тенгламаси қуйидаги кўринишда ифодаланади:




r(t)=(1-t)3P1+3t(t-1)2P2+3t2(1-t)P3+t3P4.

2.4. В –сплайн эгри чизиғи.


Кубик В –сплайн эгри чизиғи ихтиёрий Р123 ва Р4 бошқарув нуқталари ёрдамида берилади ва тенгламанинг матрицали кўриниши қуйидагича бўлади:


r(t)=TMВPВ ,

бунда: MВ=1/6 , В–сплайн эгри чизиғининг матрицаси,




PВ= - В–сплайн эгри чизиғи геометрик матрицаси.
В–сплайн эгри чизиғи параметрик тенгламаси қуйидагича бўлади:


r(t)=(1-t)3/6P1 +(3t3 -6t2 +4)/6P2 +(-3t3+3t2+3t+1)/6P3+ t3/6P4.

2.5. Безье сплайн сирти.


Бунда 16 та нуқта Pij(i=1,2,3,4;j=1,2,3,4) ёрдамида Безье бикубик сплайн сиртини кўрамиз.


Безье бикубик сирт тенгламасини қуйидаги кўринишда ёзиш мумкин


X(s,t)=S MБPxMБT T,
Y(s,t)=S MБPyMБT T,
Z(s,t)=S MБPzMБT T,

бу ерда S=(S3,S2, S, 1), T=(T3,T2,T, 1) – параметрик векторлар,


МБ – Безье матрицаси,
Px=
Руz лар шу каби ёзилади.

2.6. В –сплайн сиртлар.


В –сплайн сирт, 16 та нуқталар Pij (i=1,2,3,4; j=1,2,3,4) тўплами кўринишда берилади.
В –сплайн бикубик сирт тенгламаси қуйидаги кўринишда бўлади


X(s,t)=S MВPxMВT T,
Y(s,t)=S MВPyMВT T,
Z(s,t)=S MВPzMВT T,

Бунда :МВ –В–сплайн матрицаси.




3.Мисол ечиш намунаси.

3.1. Лаборатория ишини бажариш учун мисол сифатида В–сплайн ва Безье эгри чизиқларини чизиш дастурини кўрамиз.


3.2. Маълумки, В–сплайн эгри чизиғи Р1(x1,y1,z1), Р2(x2,y2,z2), Р3(x3,y3,z3) ва Р4(x4,y4,z4) таянч нуқталар ёрдамида берилади.
Берилган нуқталар ёрдамида эгри чизиқ тенгламасини ҳосил қилишда юқорида келтирилган ифодалардан фойдаланамиз.
Ушбу масаланинг реализацияси С++ тилида берилган.

#include


#include
#include
void bspline(int x1,int y1,int z1,int x2,int y2,int z2,int x3,int y3,int z3,int x4,int y4,int z4)
{int x,y,z,RAN=15;
float t,i;
for(i=1;i<600;i++)
{t=i/600;
x=floor(pow((1-t),3)*x1/6+3*t*pow((1-t),2)*x2+3*t*t*(1-)*x3+pow(t,3)*x4/6);
y=floor(pow((1-t),3)*y1/6+3*t*pow((1-t),2)*y2+3*t*t*(1-)*y3+pow(t,3)*y4/6);
z=floor(pow((1-t),3)*z1/6+3*t*pow((1-t),2)*z2+3*t*t*(1-t)*z3+pow(t,3)*z4/6);
putpixel(x,y,RAN);
}}
void main()
{int gd=0,gm,errorcode;
initgraph(&gd,&gm,"c:\\borlandc\\bgi");
bspline(100,100,0,100,400,0,500,400,0,500,100,0);
getch();
closegraph();
}

3.3. Кейинги мисолда фазодаги Р1, Р2, Р3 ва Р4 таянч нуқталар орқали берилган Безье эгри чизиғини кўрамиз. Бу ерда ҳам Безье эгри чизиғи тенгламасидан фойдаланамиз.




С++ тилидаги дастур матни

#include


#include
#include
void bezye(int x1,int y1,int z1,int x2,int y2,int z2,int x3,int y3,int z3,int x4,int y4,int z4)
{int x,y,z,RAN=15;
float t,i;
for(i=1;i<600;i++)
{t=i/600;
x=floor(pow((1-t),3)*x1+3*t*pow((1-t),2)*x2+3*t*t*(1-t)*x3+pow(t,3)*x4);
y=floor(pow((1-t),3)*y1+3*t*pow((1-t),2)*y2+3*t*t*(1-t)*y3+pow(t,3)*y4);
z=floor(pow((1-t),3)*z1+3*t*pow((1-t),2)*z2+3*t*t*(1-t)*z3+pow(t,3)*z4);
putpixel(x,y,RAN);
}}
void main()
{int gd=0,gm,errorcode;
initgraph(&gd,&gm,"c:\\borlandc\\bgi");
bezye(20,50,0,20,200,0,300,200,0,300,50,0);
getch();
closegraph();
}

Проекциялашда проекциялаш усулларидан бирортасини қўллаш мумкин.




4.№3 Лаборатория топшириқлари

4.1. Эрмит эгри чизиғи дастурини тузинг, бунда икки жуфт таянч нуқта ва улардан ҳосил қилинган йўналтирувчи векторлар берилган.


4.2. Эрмит эгри чизиғи дастурини тузинг, бунда m>2 жуфт таянч нуқта ва улардан ҳосил қилинган йўналтирувчи векторлар берилган.
4.3. Безье эгри чизиғи дастурини тузинг, бунда m>4 жуфт таянч нуқталар берилган.
4.4. m>4 таянч нуқталар билан берилган В-сплайн эгри чизиғи дастурини тузинг.
4.5 16- таянч нуқталар билан берилган Безье сирт хосил қилинг.
4.6 m>16- таянч нуқталар билан берилган Безье сирт хосил қилинг.
4.7. 16- таянч нуқталар билан берилган В-сплайн сирт хосил қилинг.
4.8. Ихтиёрий сондаги таянч нуқталар билан берилган В-сплайн сирт хосил қилинг.
4.9. Сплайн эгри чизиқлари ёрдамида геометрик объект ҳосил қилиш дастурини тузинг.
4.10. Сплайн сиртлари ёрдамида геометрик объект ҳосил қилиш дастурини тузинг.
Адабиётлар рўйхати



  1. Фоли Дж, Вандем А.. Основы интерактивной машиной графики. М. Мир, 1985. 1,2 том-368с.

  2. Шикин Е.В., Боресков А.В. Компьютерная графика (Динамика, реалистические изображения), М. 1996, 288 с.

  3. Шикин Е.В., Боресков А.В. Компьютерная графика (Полигональные модели), М. 2001, 280 с.

  4. Порев В.Н. Компьютерная графика. СПб, ВНV, 2002.

  5. Аммерал Л. Машинная графика на языке С.В 4-х книгах. М.: Радио и связь, 1992 г.

  6. Бьярн Страустрап. Введение в язык С++. Январь, 1995 г.

  7. Аркадий Божко, Жук Д.М., Маничев В.Б. Компьютерная графика Учеб. пособие для вузов. (информатика в техническом университете). МГТУ им. Баумана · 2007 г.

  8. Андрей Богуславский. С++ и компьютерная графика. Лекции и практикум по программированию на С++ (+ CD). Компьютер Пресс · 2003 г.

  9. Е. Никулин. Компьютерная геометрия и алгоритмы машинной графики. BHV - Санкт - Петербург · 2003 г.

Download 96.2 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling