// STERN.CPP 11.02.2000 #include #include #include #include #include void InitProgram(void); void MainLoop(void); void Calc3D(void); void Rotation(void); void DrawObject(void); #define COPYRIGHT "Dark Alliance (c) 1996-2000 DreamDemon" #define Lines 72 static int World[Lines][3] = { 90, 0, 0, 10, 10, 10, 90, 0, 0, 10, 10,-10, 90, 0, 0, 10,-10,-10, 90, 0, 0, 10,-10, 10, -90, 0, 0, -10, 10, 10, -90, 0, 0, -10, 10,-10, -90, 0, 0, -10,-10,-10, -90, 0, 0, -10,-10, 10, 0, 90, 0, 10, 10, 10, 0, 90, 0, -10, 10, 10, 0, 90, 0, -10, 10,-10, 0, 90, 0, 10, 10,-10, 0,-90, 0, 10,-10, 10, 0,-90, 0, -10,-10, 10, 0,-90, 0, -10,-10,-10, 0,-90, 0, 10,-10,-10, 0, 0, 90, 10, 10, 10, 0, 0, 90, 10,-10, 10, 0, 0, 90, -10,-10, 10, 0, 0, 90, -10, 10, 10, 0, 0,-90, 10, 10,-10, 0, 0,-90, 10,-10,-10, 0, 0,-90, -10,-10,-10, 0, 0,-90, -10, 10,-10, 10, 10, 10, -10, 10, 10, 10,-10, 10, -10,-10, 10, 10, 10,-10, -10, 10,-10, 10,-10,-10, -10,-10,-10, 10, 10, 10, 10,-10, 10, -10, 10, 10, -10,-10, 10, 10, 10,-10, 10,-10,-10, -10, 10,-10, -10,-10,-10, 10, 10, 10, 10, 10,-10, 10,-10, 10, 10,-10,-10, -10,-10, 10, -10,-10,-10, -10, 10, 10, -10, 10,-10}; float X, Y, Z, sX, sY, Xa, Ya, Za, sXs, sYs, D, Page; float R1, R2, R3, Sr1, Sr2, Sr3, Cr1, Cr2, Cr3, mX, mY, mZ; void main(void) { InitProgram(); MainLoop(); closegraph(); printf("%s\n",COPYRIGHT); getch(); } void Calc3D(void) { X = -1 * X; Xa = Cr1 * X - Sr1 * Z; Za = Sr1 * X + Cr1 * Z; X = Cr2 * Xa + Sr2 * Y; Ya = Cr2 * Y - Sr2 * Xa; Z = Cr3 * Za - Sr3 * Ya; Y = Sr3 * Za + Cr3 * Ya; X = X + mX; Y = Y + mY; Z = Z + mZ; sX = 320 + D * X / Z; sY = 175 + D * Y / Z; } void DrawObject(void) { int i; Rotation(); for(i=0; i 6.28) R1 = 0; R2 = R1; R3 = R1; clearviewport(); DrawObject(); (Page == 0)? Page = 1: Page = 0; setactivepage(1-Page); setvisualpage(Page); } } void Rotation(void) { Sr1 = sin(R1); Sr2 = sin(R2); Sr3 = sin(R3); Cr1 = cos(R1); Cr2 = cos(R2); Cr3 = cos(R3); }