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



Download 0,9 Mb.
bet7/29
Sana01.07.2022
Hajmi0,9 Mb.
#726715
1   2   3   4   5   6   7   8   9   10   ...   29
Bog'liq
3-лаборатория иши

ЛАБОРАТОРИЯ ИШИ №5
Мавзу: Нурнинг оддий геометрик обьектлар билан кесилиши

    1. Ишдан максад

      1. Нурни сфера билан кесилиш нуқталарини топиш алгоритмини ўрганиш.

      2. Нурни оддий геометрик обьектлар (текислик, конус, цилиндр, кўпёқлилар ва х.) билан кесилиш нуқталарини топиш алгоритмини ўрганиш.

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

Нурни оддий геометрик обьектлар билан кесилиш нуқталарини топиш эффектив алгоритмлари компьютер графикасида жуда кўп қўлланилади.
Нурни сфера, текислик ва тўғри тўртбурчакли параллелепипед билан кесилиш нуқталарини топиш эффектив алгоритмларини кўрамиз.
M0(x0,y0,z0) нуқтадан чиқувчи N(l,m,n)≠0 йўналишли вектор билан ифодаланувчи нурнинг вектор-параметрик тенгламаси қуйидаги кўринишда ифодаланади:
X= M0+N*t; t>0.
Ёки координаталар параметрик тенглама орқали: N
(1) X0 X(t)
Агар N-бирлик вектор бўлса
l2+m2+n2=1 .
бу ҳолда t геометрик маьноси:
t нинг қиймати нурнинг бошлангич нуқтасидан X(t) нуқтасигача бўлган масофага тенг.
Ихтиёрий векторни бирлик векторга олиб келиш учун унинг ҳар бир координатасини унинг узунлигига бўлиш керак.


      1. Сферанинг нур билан кесилиши

С(xc,yc,zc) маркази ва r-радиуси билан берилувчи сферанинг тенгламаси қуйидагича ифодаланади:
(x- xc )2+(y- yc) 2+(z- zc)2=r2 , (2)
сферани (1) ифода билан берилган нур билан кесилиш нуқталарини аниқлаш учун x,y,z қийматларини (2) тенгламага қўямиз:
(x0+lt - xc )2+( y0+mt – yc) 2+( z0+nt- zc)2=r2,
соддалаштириб қуйидаги квадрат тенгламага келамиз:
at2+2bt+c=0, (3)
бу ерда:
a=l2+m2+n2(=1);
b= l(x0 - xc )+m( y0- yc)+n( z0- zc);
c= (x0- xc )2+(y0- yc) 2+(z0- zc)2-r2 .
a- коэффициенти ҳамма вақтда нолдан катта, агарда L йўналиш вектори нормал бўлса у ҳолда 1 га тенг.
Квадрат тенгламанинг ечимлари
t =-b b2-c, (a=1)
Агар D= b2-c<0 бўлса, у ҳолда нур сферани ёнидан ўтиб, сфера билан кесишмайди. Акс ҳолда, яьни D0 бўлса
t*- =-b+b2-c , t*=-b-b2-c.
топилади, ва t*>0 текширилади.
Нур бошига яқинроқ кесишиш нуқтасини топиш учун улардан кичикроқ қиймати аниқланади, яьни
t*=min( t-* , t*)
Нуқтанинг кординаталарини топиш учун нурнинг тенгламасидан фойдаланамиз (1), ва M*(x*,y*,z*) нур билан сферани кесишиш нуқтаси топилади.

      1. Текисликниг нур билан кесилиши

Фараз қиламизки текислик умумий тенгламаси билан берилган бўлсин
ax+by+cz+d=0 (4)
Бу ерда А(a,b,c) - текисликнинг нормал вектори; d-текисликдан координата бошигача бўлган масофа, агар a2+b2+c2=1 бўлса, (4) тенгламада x,y,z қийматларини нурнинг тенгламаси орқали ифодаласак, у ҳолда t га нисбатан чизиқли тенгламани оламиз, яьни:

бу тенгламани t га нисбатан ечиб

ёки вектор кўринишида

Агар скаляр кўпайтма (A,N)=al+bm+cn=0 бўлса нур текисликка параллел ва уни кесиб ўтмайди. Агарда t*<0 бўлса нур билан текислик кесишмайди.
Акс ҳолда (A,N)0 ва t*0 бўлса кесилиш M*(x*,y*,z*) нуқтасини қуйидагича топамиз

Ушбу нуқтада нормал вектор қуйидагича олинади:
A(агар (A,N)<0), ёки ( агар (A,N)>0).
    1. Лаборатория ишини бажариш учун намуна

      1. Мисол тариқасида берилган нур билан сферани кесишиш нуқтасини аниқлашни қараб ўтамиз. Нур йўналиш вектори ва нуқта координатаси билан берилган. Сфера радиуси ва марказий нуқтасининг координатаси берилган.

      2. Нурнинг нуқтаси ва йўналиш вектори , сфера марказий нуқтаси координаталари радиуси r билан берилган бўлсин.

      3. Масалани ечиш учун нур ва сфера параметрларини киритадиган мос процедура luchsfera() яратамиз (кириш параметрлари ). Натижада агарда нур сферани кесиб ўтса у ҳолда кесишиш нуқта координаталари чиқарилади, акс ҳолда нур билан сфера кесишмайдиганлиги ҳақида маълумот чиқарилади.

      4. С++ тилидаги дастури.

#include
#include
#include
#include
void luchsfera(float x0,float y0,float z0,float l,float m,float n,float xc,float yc,float zc,float r)
{
float a,b,c,d,t1,t2,x,y,z;
a=l*l+m*m+n*n;
b=l*(x0-xc)+m*(y0-yc)+n*(z0-zc);
c=pow((x0-xc),2)+pow((y0-yc),2)+pow((z0-zc),2)-r*r;
d=b*b-a*c;
if(d>=0)
{
t1=(-b-sqrt(d))/a;
t2=(-b+sqrt(d))/a;
if(t1>0 || t2>0) {cout<<"nur sferani kesadi!"< cout<<"kesishish nuqtasi:"< x=x0+t1*l;
y=y0+t1*m;
z=z0+t1*n;
cout<<"x= "< x=x0+t2*l;
y=y0+t2*m;
z=z0+t2*n;
cout<<"x= "<}
}
void main()
{ luchsfera(-2,-2,-2,1,1,1,0,0,0,1);
getch(); }


    1. Лаборатория иши учун топшириклар

      1. Йўналиш вектори ва координатаси билан берилган нур ва Ax+By+Cz+D=0 текислиги билан кесишиш нуқтасини аниқланг.

      2. Йўналиш вектори ва координатаси билан берилган нур ва қаварриқ кўпбурчак билан кесишиш нуқтасини аниқланг.

      3. Йўналиш вектори ва координатаси билан берилган нур ва учлари (xmin,ymin,zmin), (xmax,ymax,zmax) бўлган тўғри параллелепипед билан кесишиш нуқтасини аниқланг.

      4. Йўналиш вектори ва координатаси билан берилган нур ва айлана цилиндр ( ) билан кесишиш нуқтасини аниқланг.

      5. Йўналиш вектори ва координатаси билан берилган нур ва кесик айлана цилиндр ( ) билан кесишиш нуқтасини аниқланг.

      6. Йўналиш вектори ва координатаси билан берилган нур ва конус билан кесишиш нуқтасини аниқланг.

      7. Йўналиш вектори ва координатаси билан берилган нур ва кесик конус билан кесишиш нуқтасини аниқланг.

      8. Йўналиш вектори ва координатаси билан берилган нур ва қаварриқ кўпёқли билан кесишиш нуқтасини аниқланг.

      9. Йўналиш вектори ва координатаси билан берилган нур ва эллипсоид билан кесишиш нуқтасини аниқланг.

      10. Йўналиш вектори ва координатаси билан берилган нур ва эллипсоид билан кесишиш нуқтасини аниқланг.

      11. Йўналиш вектори ва координатаси билан берилган нур ва оддий геометрик объектлар билан кесишиш нуқталарини аниқланг (талабанинг танлови бўйича).




Download 0,9 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   ...   29




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish