#include #include #include "mygraph.h" #include "point.h" #include "Xroutines.h" # define M_PI 3.14159265358979323846 dc_draw_line ( line aline, environment * env) { DrawLine(aline.e1.x, aline.e1.y,aline.e2.x, aline.e2.y, env); } draw_circle(environment * env) { int x, y, xc,yc,r; r = 170; xc = 200; yc = 200; for (x=xc-r;x<=xc+r;x++){ y = yc - sqrt((float) (r*r-(x-xc)*(x-xc))); SetPixel(env,x,y); y = yc + sqrt((float) (r*r-(x-xc)*(x-xc))); SetPixel(env,x,y); } } draw_circle2(environment * env) { int x, y, r, xc,yc; float theta, thetadelta; r = 180; thetadelta = 1.0 / (float) r; xc = 200; yc = 200; for(theta=0;theta<360;theta+=thetadelta) { x = r*cos(theta*M_PI/180.0); y = r*sin(theta*M_PI/180.0); SetPixel(env,xc+x,yc+y); } } draw_circle3(environment * env) { int x, y, r, xc,yc; int p; r = 190; xc = 200; yc = 200; y = r; p = 3-2*r; for(x=0;x<=y;x++) { SetPixel(env,xc+x,yc+y); SetPixel(env,xc-x,yc+y); SetPixel(env,xc+x,yc-y); SetPixel(env,xc-x,yc-y); SetPixel(env,xc+y,yc+x); SetPixel(env,xc-y,yc+x); SetPixel(env,xc+y,yc-x); SetPixel(env,xc-y,yc-x); if (p < 0) { p += 4*x+6; } else { p += 4*(x-y)+10; y -= 1; } } } draw_circle4(environment * env) { int x, y, r, xc,yc; int p; r = 195; xc = 200; yc = 200; p = 1-r; x=0; y = r; for(x=0;x<=y;) { SetPixel(env,xc+x,yc+y); SetPixel(env,xc-x,yc+y); SetPixel(env,xc+x,yc-y); SetPixel(env,xc-x,yc-y); SetPixel(env,xc+y,yc+x); SetPixel(env,xc-y,yc+x); SetPixel(env,xc+y,yc-x); SetPixel(env,xc-y,yc-x); x++; if (p > 0) { y--; p += 2*(x-y)+1; } else { p +=2*x+1; } } }