Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
//Џа®Ја ¬¬ ўа йҐЁп Єў ¤а в ў®ЄагЈ Їа®Ё§ў®«м®© в®зЄЁ. ‚§пв Ё§ ЄЁЈЁ "„Ё «®Ј б Є®¬ЇмовҐа®¬" Ѓ®аҐбЄ®ў, ЁЄЁ, ЁЄЁ
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <bios.h>
#include <graphics.h>
#include <math.h>
struct point2d
{
float x,y;
};
point2d Figure[4]= { {1,1}, {1,2}, {2,2}, {2,1} };
float CosPhi = cos (5*M_PI /180 );
float SinPhi = sin (5*M_PI /180 );
void Rotate()
{
float x1,y1;
for (int i=0; i<4; i++)
{
x1 = Figure[i].x * CosPhi - Figure[i].y * SinPhi;
y1 = Figure[i].x * SinPhi + Figure[i].y * CosPhi;
Figure[i].x = x1;
Figure[i].y = y1;
}
}
void Draw()
{
line((int) (320+Figure[0].x*50), (int) (175+Figure[0].y*50),
(int) (320+Figure[1].x*50), (int) (175+Figure[1].y*50));
line((int) (320+Figure[1].x*50), (int) (175+Figure[1].y*50),
(int) (320+Figure[2].x*50), (int) (175+Figure[2].y*50));
line((int) (320+Figure[2].x*50), (int) (175+Figure[2].y*50),
(int) (320+Figure[3].x*50), (int) (175+Figure[3].y*50));
line((int) (320+Figure[3].x*50), (int) (175+Figure[3].y*50),
(int) (320+Figure[0].x*50), (int) (175+Figure[0].y*50));
}
void main()
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
/* initialize graphics mode */
initgraph(&gdriver, &gmode, "E:\\C3.1\\BGI");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}
Draw();
for (int frame=0;!bioskey(1); frame++)
{
setvisualpage(frame & 1);
setactivepage((frame & 1) ^ 1);
clearviewport();
Draw();
Rotate();
}
bioskey(0);
closegraph();
}