1- misol. Uchburchakni ko‘chirish dasturi
#include
#include
double k[3][2];
void uchlar()
{
k[0][0]=200; k[0][1]=100;
k[1][0]=100; k[1][1]=200;
k[2][0]=300; k[2][1]=200;
}
void kuchish()
{
int i, a=200, b=300;
for(i=0;i<=2;i++)
{
k[i][0]=k[i][0]+a;
k[i][1]=k[i][1]+b;
}
}
void line()
{
line(k[0][0],k[0][1],k[1][0],k[1][1]);
line(k[1][0],k[1][1],k[2][0],k[2][1]);
line(k[2][0],k[2][1],k[0][0],k[0][1]);
}
int main()
{
initwindow(1000,800);
uchlar();
line();
getch();
kuchish();
line();
getch();
closegraph();
return 0; }
Natija:
2.2. Fazodagi almashtirishlar
Ko‘chish matritsasi
bu yerda (λ, µ, )- abssissa, ordinata va applikata o‘qlari bo‘yicha ko‘chish vеktori.
Masshtablash matritsasi
bu yerda, α>1 (1> α >0)- abssissa o‘qi bo‘yicha kеngaytirish(siqish) koеffitsiеnti; >0, (1> >0)– ordinata o‘qi bo‘yicha kеngaytirish(siqish) koеffitsiеnti; γ>0,(1>γ>0)- applikata o‘qi bo‘yicha kеngaytirish(siqish) koеffitsiеnti.
Burish matritsasi
Abssissa o‘qiga nisbatan burchakka burish matritsasi
Ordinatalar o‘qiga nisbatan burchakka burish matritsasi
Applikata o‘qiga nisbatan burchakka burish matritsasi
Akslantirish
(xy tеkisligiga nisbatan)
(zy tеkisligiga nisbatan)
(xz tеkisligiga nisbatan)
2-misol. Bеrilgan prizmani fazoda ko‘chirish amalini ko‘ramiz
#include
#include
#include
double k3[13][3];
double k2[13][2];
int k2i[13][2];
double l_kabine = 1/2.;
double alfa = M_PI/4;
void initprism()
{
k3[1][1]=0; k3[1][2]=50; k3[1][3]=0;
k3[2][1]=0; k3[2][2]=150; k3[2][3]=0;
k3[3][1]=sqrt(3)*50; k3[3][2]=200; k3[3][3]=0;
k3[4][1]=sqrt(3)*100; k3[4][2]=150; k3[4][3]=0;
k3[5][1]=sqrt(3)*100; k3[5][2]=50; k3[5][3]=0;
k3[6][1]=sqrt(3)*50; k3[6][2]=0; k3[6][3]=0;
k3[7][1]=0; k3[7][2]=50; k3[7][3]=250;
k3[8][1]=0; k3[8][2]=150; k3[8][3]=250;
k3[9][1]=sqrt(3)*50; k3[9][2]=200; k3[9][3]=250;
k3[10][1]=sqrt(3)*100; k3[10][2]=150; k3[10][3]=250;
k3[11][1]=sqrt(3)*100; k3[11][2]=50; k3[11][3]=250;
k3[12][1]=sqrt(3)*50; k3[12][2]=0; k3[12][3]=250;
}
void kabine()
{
int i;
for(i=1;i<=12;i++)
{
k2[i][1] = k3[i][1] + l_kabine * cos(alfa) * k3[i][3];
k2[i][2] = k3[i][2] + l_kabine * sin(alfa) * k3[i][3];
}
}
void relation()
{
int i, j;
for(j=1;j<=2;j++)
{
for(i=1;i<=12;i++)
k2i[i][j]=int(k2[i][j]);
}
}
void perenos(int x,int y)
{
int i;
for(i=1;i<=12;i++)
{
k2i[i][1]=k2i[i][1]+x;
k2i[i][2]=k2i[i][2]+y;
}
}
void lineprism()
{
setcolor(YELLOW);
line(k2i[1][1],k2i[1][2],k2i[2][1],k2i[2][2]);
line(k2i[2][1],k2i[2][2],k2i[3][1],k2i[3][2]);
line(k2i[3][1],k2i[3][2],k2i[4][1],k2i[4][2]);
line(k2i[4][1],k2i[4][2],k2i[5][1],k2i[5][2]);
line(k2i[5][1],k2i[5][2],k2i[6][1],k2i[6][2]);
line(k2i[6][1],k2i[6][2],k2i[1][1],k2i[1][2]);
setcolor(GREEN);
line(k2i[7][1],k2i[7][2],k2i[8][1],k2i[8][2]);
line(k2i[8][1],k2i[8][2],k2i[9][1],k2i[9][2]);
line(k2i[9][1],k2i[9][2],k2i[10][1],k2i[10][2]);
line(k2i[10][1],k2i[10][2],k2i[11][1],k2i[11][2]);
line(k2i[11][1],k2i[11][2],k2i[12][1],k2i[12][2]);
line(k2i[12][1],k2i[12][2],k2i[7][1],k2i[7][2]);
setcolor(RED);
line(k2i[1][1],k2i[1][2],k2i[7][1],k2i[7][2]);
line(k2i[2][1],k2i[2][2],k2i[8][1],k2i[8][2]);
line(k2i[3][1],k2i[3][2],k2i[9][1],k2i[9][2]);
line(k2i[4][1],k2i[4][2],k2i[10][1],k2i[10][2]);
line(k2i[5][1],k2i[5][2],k2i[11][1],k2i[11][2]);
line(k2i[6][1],k2i[6][2],k2i[12][1],k2i[12][2]);
line(5,595,35,595);
setcolor(14);
line(5,595,5,565);
setcolor(15);
line(5,595,25,575);
}
int main()
{
initwindow(800, 800);
initprism();
kabine();
relation();
lineprism();
getch();
cleardevice();
perenos(300,200);
lineprism();
getch();
closegraph();}
Do'stlaringiz bilan baham: |