Mavzu: Tekislikdagi almashtirishlar
Dastur kodi:
#include
#include
using namespace std;
float A[15][3], Z[10][3], I[6][3], Z1[10][3], T[12][3];
void point(){
////I
I[1][1] = 100; I[1][2] = 350;
I[2][1] = 100; I[2][2] = 50;
I[3][1] = 125; I[3][2] = 50;
I[4][1] = 125; I[4][2] = 350;
I[5][1] = 100; I[5][2] = 350;
////Z
Z[1][1] = 200; Z[1][2] = 50;
Z[2][1] = 400; Z[2][2] = 50;
Z[3][1] = 245; Z[3][2] = 325;
Z[4][1] = 400; Z[4][2] = 325;
Z[5][1] = 400; Z[5][2] = 350;
Z[6][1] = 200; Z[6][2] = 350;
Z[7][1] = 355; Z[7][2] = 75;
Z[8][1] = 200; Z[8][2] = 75;
Z[9][1] = 200; Z[9][2] = 50;
////Z1
Z1[1][1] = 475; Z1[1][2] = 50;
Z1[2][1] = 675; Z1[2][2] = 50;
Z1[3][1] = 520; Z1[3][2] = 325;
Z1[4][1] = 675; Z1[4][2] = 325;
Z1[5][1] = 675; Z1[5][2] = 350;
Z1[6][1] = 475; Z1[6][2] = 350;
Z1[7][1] = 630; Z1[7][2] = 75;
Z1[8][1] = 475; Z1[8][2] = 75;
Z1[9][1] = 475; Z1[9][2] = 50;
////A
A[1][1] = 750; A[1][2] = 350;
A[2][1] = 825; A[2][2] = 50;
A[3][1] = 875; A[3][2] = 50;
A[4][1] = 950; A[4][2] = 350;
A[5][1] = 925; A[5][2] = 350;
A[6][1] = 862; A[6][2] = 75;
A[7][1] = 837; A[7][2] = 75;
A[8][1] = 815; A[8][2] = 175;
A[9][1] = 885; A[9][2] = 175;
A[10][1] = 890; A[10][2] = 200;
A[11][1] = 810; A[11][2] = 200;
A[12][1] = 775; A[12][2] = 350;
A[13][1] = 750; A[13][2] = 350;
////T
T[1][1] = 1025; T[1][2] = 50;
T[2][1] = 1225; T[2][2] = 50;
T[3][1] = 1225; T[3][2] = 75;
T[4][1] = 1118; T[4][2] = 75;
T[5][1] = 1118; T[5][2] = 350;
T[6][1] = 1093; T[6][2] = 350;
T[7][1] = 1093; T[7][2] = 75;
T[8][1] = 1025; T[8][2] = 75;
T[9][1] = 1025; T[9][2] = 50;
}
void draw(int a, int b){
cleardevice();
moveto(A[1][1]+a, A[1][2]+b);
for(int k=1; k<=13; k++){
A[k][1]+=a, A[k][2]+=b;
lineto(A[k][1], A[k][2]);
}
moveto(Z[1][1]+a, Z[1][2]+b);
for(int k=1; k<=9; k++){
Z[k][1]+=a, Z[k][2]+=b;
lineto(Z[k][1], Z[k][2]);
}
moveto(I[1][1]+a, I[1][2]+b);
for(int k=1; k<=5; k++){
I[k][1]+=a, I[k][2]+=b;
lineto(I[k][1], I[k][2]);
}
moveto(Z1[1][1]+a, Z1[1][2]+b);
for(int k=1; k<=9; k++){
Z1[k][1]+=a, Z1[k][2]+=b;
lineto(Z1[k][1], Z1[k][2]);
}
moveto(T[1][1]+a, T[1][2]+b);
for(int k=1; k<=9; k++){
T[k][1]+=a, T[k][2]+=b;
lineto(T[k][1], T[k][2]);
}
}
void draw1(float a, float b){
cleardevice();
moveto(A[1][1]*a, A[1][2]*b);
for(int k=1; k<=13; k++){
A[k][1]*=a, A[k][2]*=b;
lineto(A[k][1], A[k][2]);
}
moveto(Z[1][1]*a, Z[1][2]*b);
for(int k=1; k<=9; k++){
Z[k][1]*=a, Z[k][2]*=b;
lineto(Z[k][1], Z[k][2]);
}
moveto(I[1][1]*a, I[1][2]*b);
for(int k=1; k<=5; k++){
I[k][1]*=a, I[k][2]*=b;
lineto(I[k][1], I[k][2]);
}
moveto(Z1[1][1]*a, Z1[1][2]*b);
for(int k=1; k<=9; k++){
Z1[k][1]*=a, Z1[k][2]*=b;
lineto(Z1[k][1], Z1[k][2]);
}
moveto(T[1][1]*a, T[1][2]*b);
for(int k=1; k<=9; k++){
T[k][1]*=a, T[k][2]*=b;
lineto(T[k][1], T[k][2]);
}
}
int main( )
{
initwindow(1600, 1200, "LAB1");
int c;
point();
draw(0,0);
while((int)c != 13)
{
// cleardevice();
c = getch();
if(c == '+') draw1(1.1, 1.1);
else if(c == '-') draw1(0.95,0.95);
if(c == 72) draw(0, -10);
else if(c == 80) draw(0, 10);
else if(c == 75) draw(-10, 0);
else if(c == 77) draw(10, 0);
if(c == 13) break;
}
//while (!kbhit( ) ) {}
return 0;
}
Natija:
Do'stlaringiz bilan baham: |