Sunteți pe pagina 1din 3

#include<stdio.

h>
#include<conio.h>
#include<graphics.h>
#include<math.h>

#define NULL 0
#define TRUE 1

FILE *val;

typedef struct
{
int *xAxis[13];
int *yAxis[13];
}ax;
int index=0,index2=0; int limit;int inc[]={50,-100,-200,50};
int x,y,x2,y2,z,x1,y1,count=0;
void MidpointLine(int x0,int y0,int x1,int y1,int value)
{

int dx=x1-x0;
int dy=y1-y0;
int d=2*dy-dx;
int incrE=2*dy;
int incrNE=2*(dy-dx);
int x=x0;
int y=y0;
value=RED;
putpixel(x,y,WHITE);

while(x<x1)
{
if(d<=0)
{
d+=incrE;
x++;
}
else
{
d+=incrNE;
x++;
y++;
}
putpixel(x,y,value);
}
}
int Round(double y)
{
y=y*2;
return y;
}
void Line(int x0,int y0,int x1,int y1,int value)
{
int x;
double dy=y1-y0;
double dx=x1-x0;
double m=dy/dx;
double y=y0;
for(x=x0;x<=x1;x++)
{
putpixel(x,Round(y),value);
y+=m;
}
}

void main()
{
//clrscr();
//Graphic code sample
int driver = DETECT,mode;
initgraph(&driver,&mode,"c:\\TC\\bgi");
// putpixel(300,13,BLUE);

//Main Algorithm
ax test;
if((val=fopen("axis.txt","r"))==NULL)
printf("Error");
else
{
val=fopen("c:\\TC\\BIN\\axis.txt","r+");
while(TRUE)
{
fscanf(val,"%d\t%d\n",test.xAxis[index],test.yAxis[index]);
if(*test.xAxis[index]==-1 && *test.yAxis[index]==-1) break;
printf("%d\t%d",*test.xAxis[index],*test.yAxis[index]);
//
MidpointLine(*test.xAxis[index]+300,*test.yAxis[index]+300,*test.xAxis[++index]+40
0,*test.yAxis[index]+400,BLUE);
//
MidpointLine(*test.xAxis[index],*test.yAxis[index],*test.xAxis[index++],*test.yAxi
s[index], 30);
index++;
}

// limit=0;
index=0; index2=0;
z=360/4;x1=240;y1=240;
while(index<=360)
{ count++;
x=150*sin(index*3.147/180);
y=150*cos(index*3.147/180);
x2=270+x;
y2=270-y;
index=index+z;

Line(*test.xAxis[index2]+x1,*test.yAxis[index2]+y1,*test.xAxis[++index2]+x2,*test.
yAxis[index2]+y2,WHITE);
// Line(x1,y1,x2,y2,WHITE);
/* MidpointLine(x1,y1,x2,y2,WHITE);
if(count==1)
{ MidpointLine(x1,y1,x2,y2,WHITE);
}*/
x1=270+x; y1=270-y ;
}
}
fclose(val);
getch();

S-ar putea să vă placă și