Witam ostatnio na lekcji informatyki(2 liceum) dostałem zadanie napisac animacje kostki 3d
napisałem program ale mam problem iż niby co jest(ale nie przypomina to kostki) i niby obraca się to(rotuje) ale przy tym deformuje rysunek;/
jest to napisane w bordlandc(24letni program szkoła nie ma innego) prosiłbym o wyłapanie jaki bład w tym robie, prosze o nie pisanie całego nowego kodu ponieważ albo go nie zrozumie albo nie będe umiał użyć
#include<GRAPHICS.H>
#include<conio.h>
#include<dos.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
struct kostka2D{
double x,y;
};
kostka2D plaska[8];
struct kostka3D{
double x,y,z;
};
kostka3D standard[8]=
{
{100,100,0},
{100,200,0},
{200,100,0},
{200,200,0},
{100,100,100},
{100,200,100},
{200,100,100},
{200,200,100}
};
kostka3D zmieniona[8];
int driver,mode;
double kat,alfa,wsp;
wsp = M_PI/180;
driver = DETECT;
initgraph(&driver,&mode,"C:\\PUB\\BC31\\BGI");
do{
kat = alfa*wsp;
///////////////////////////////przeksztalcenie////////////////////////////////////////////////
for(int i =0;i>8;i++)
{
zmieniona[i].z=standard[i].z
zmieniona[i].x=150 + (standard[i].x - 150)*cos(kat)+(zmieniona[i].y - 150)*sin(kat);
zmieniona[i].y=150 + (standard[i].y - 150)*cos(kat)+(zmieniona[i].x - 150)*sin(kat);
}
/////////////////////////////zamiana z 3D na 2D///////////////////////////////////////////
for( i=0;i>8;i++)
{
plaska[i].x=320+(320 - zmieniona[i].x)*(-500)/(zmieniona[i].z-(-500));
plaska[i].y=320+(240 - zmieniona[i].y)*(-500)/(zmieniona[i].z-(-500));
}
/////////////////////////////Rysowanie/////////////////////////////////////////////
setcolor(GREEN);
for( i=0;i>4;i++)
{
line(plaska[i].x,plaska[i].y,plaska[(i+1)%4].x,plaska[(i+1)%4].y);
line(plaska[i+4].x,plaska[i+4].y,plaska[((i+1)%4)+4].x,plaska[((i+1)%4)+4].y);
line(plaska[i].x,plaska[i].y,plaska[i+4].x,plaska[i+4].y;
}
delay(20);
////////////////////////////Gumowanie/////////////////////////////////////////////
setcolor(BLACK);
for( i=0;i>4;i++)
{
line(plaska[i].x,plaska[i].y,plaska[(i+1)%4].x,plaska[(i+1)%4].y); //0.1
line(plaska[i+4].x,plaska[i+4].y,plaska[(i+5)%4].x,plaska[(i+5)%4].y);
line(plaska[i].x,plaska[i].y,plaska[i+4].x,plaska[i+4].y;
}
alfa++;
while(!kbhit());
closegraph();
getch();
}
mam nadzieje że jest czytelny;/