1 лаборатория иши Мавзу: Фазодаги ва текисликдаги алмаштиришлар. Ишнинг мақсади ва таркиби


Download 73.27 Kb.
bet2/3
Sana07.11.2023
Hajmi73.27 Kb.
#1753117
1   2   3
Bog'liq
1 лаборатория иши

2.5 Платон жисмлар .
Мунтазам кўпёқлар (Платон жисмлар) деб, ёқлари мунтазам кўпбурчаклардан ва кўпёқ учларида бурчаклари ўзаро тенг бўлган объектларга айтилади.
Бешта мунтазам кўпёқлар (Платон жисмлар) мавжуд (Евклид исботи) мунтазам тетраэдр, гексаэдр (куб), октаэдр, додекаэдр ва икосаэдр.
Уларнинг асосий xарактеристикалари:


Номланиши

Ёқлар сони
Г

Қирралар сони
Р

Учлари сони
В

Тетраэдр

4

6

4

Гексаэдр

6

12

8

Октаэдр

8

12

6

Додекаэдр

12

30

20

Икосаэдр

20

30

12


Г,Р,В катталиклар орасидаги қуйидаги Эйлер формуласи боғланишини ифодалаш мумкин:
Г+В=Р+2.

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

3.1 Лаборатория ишида мисол сифатида полигонал тўр ёрдамида гексаэдр (куб)ни чизиш ва уни керакли алмаштириш матрицаси ёрдамида харакатлантириш амалларини кўрамиз.


3.2 Масалани ечиш учун кубни координата бошига қуриб оламиз, бунда унинг бир учи координата бошида (0,0,0), учтаси эса координата ўқларида ётади (d,0,0), (0,d,0) ва (0,0,d), бу ерда d –куб томони узунлиги. У ҳолда кубни учлари бўйича полигонал тўр қуйидаги кўринишда ифодаланади
V=(V1,V2,V3,V4,V5,V6,V7,V8),

бу ерда


V1=(0.0.0), V2=(d,0,0), V3=(d,d,0), V4=(0,d,0),
V5=(0,0,d), V6=(d,0,d), V7=(d,d,d), V8=(0,d,d)
У ҳолда қирралар қуйидаги кўринишда ифодаланади:

E1=(V1,V2), E2=(V2,V3), E3=(V3,V4), E4=(V4,V1),
E5=(V6,V7), E6=(V6.V7), E7=(V7,V8), E8=(V8,V5)
E9=(V11.V5), E10=(V2.V6), E11=(V3.V7), E12=(V4.V8).

3.3 Кубни (х,у) векторга кўчириш


Кубнинг барча нуқталарини кўчириш учун унинг барча учларини ҳаракатлантириш керак, яъни унинг учларидан ҳосил қилинган матрицани кўчириш матрицасига кўпайтириш керак.
3.4 Кубни тасвир текислигида (компьютер экранида) ифодалаш учун юқорида кўрилган Кабине проекциялаш усулидан фойдаланамиз. Проекциялашдан сўнг қирраларни чизиш учун line() процедурасидан фойдаланамиз

3.5 С++ тилидаги дастур:

#include
#include
#include
#include

typedef double vek[9];


typedef double mat3[9][4];
typedef double mat2[9][3];
typedef int mat2i[9][3];
double d = 100 ;
double l_kabine=1/2.;
double alfa=3.1415/4;
mat3 k3;
mat2 k2;
mat2i k2i;
void initkub3d()
{
k3[1][1]=0; k3[1][2]=0; k3[1][3]=0;
k3[2][1]=d; k3[2][2]=0; k3[2][3]=0;
k3[3][1]=d; k3[3][2]=d; k3[3][3]=0;
k3[4][1]=0; k3[4][2]=d; k3[4][3]=0;
k3[5][1]=0; k3[5][2]=0; k3[5][3]=d;
k3[6][1]=d; k3[6][2]=0; k3[6][3]=d;
k3[7][1]=d; k3[7][2]=d; k3[7][3]=d;
k3[8][1]=0; k3[8][2]=d; k3[8][3]=d;
}

void kabine(mat3 m3, mat2 &m2)


{
int i;
for ( i=1; i<=8; i++)
{
m2[i][1] = m3[i][1] + l_kabine * cos(alfa) * m3[i][3];
m2[i][2] = m3[i][2] + l_kabine * sin(alfa) * m3[i][3];
}
}
void relation(mat2 m2, mat2i &m2i)
{int i,j;
for(i=1; i<=2;i++)
{
for(j=1;j<=8;j++)
m2i[j][i]=int(m2[j][i]);
}}
void perenos(int x, int y,mat2i &m2)
{int i,j;
for(j=1;j<=8; j++)
{
m2[j][1]=m2[j][1]+x;
m2[j][2]=m2[j][2]+y;
}}
void linekub(mat2i m)
{int gd=0,gm;
initgraph(&gd,&gm,"c:\\borlandc\\bgi");
setcolor(15);
line(m[1][1],m[1][2],m[2][1],m[2][2]);
line(m[2][1],m[2][2],m[3][1],m[3][2]);
line(m[3][1],m[3][2],m[4][1],m[4][2]);
line(m[4][1],m[4][2],m[1][1],m[1][2]);
setcolor(14);
line(m[5][1],m[5][2],m[6][1],m[6][2]);
line(m[6][1],m[6][2],m[7][1],m[7][2]);
line(m[7][1],m[7][2],m[8][1],m[8][2]);
line(m[8][1],m[8][2],m[5][1],m[5][2]);
setcolor(13);
line(m[1][1],m[1][2],m[5][1],m[5][2]);
line(m[2][1],m[2][2],m[6][1],m[6][2]);
line(m[3][1],m[3][2],m[7][1],m[7][2]);
line(m[4][1],m[4][2],m[8][1],m[8][2]);

}
void main()


{
initkub3d();
kabine(k3,k2);
relation(k2,k2i);
linekub(k2i);
getch();
perenos(550,200,k2i);
linekub (k2i);
getch();
closegraph();
}


Download 73.27 Kb.

Do'stlaringiz bilan baham:
1   2   3




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