MidpointCircle
来源:互联网 发布:移动网络解锁 编辑:程序博客网 时间:2024/06/05 19:30
#include <stdio.h>#include <graphics.h>void MidpointCircle( int x0, int y0, int R );int main(){intx0, y0;intR;intdriver = DETECT, mode;initgraph( &driver, &mode, "C:\\tc20" );printf( "Input x0,y0:" );scanf( "%d,%d", &x0, &y0 );printf( "Input radius:" );scanf( "%d", &R );MidpointCircle( x0, y0, R );getch();closegraph();return(0);}void MidpointCircle( int x0, int y0, int R ){intx[8], y[8];intdeltax, deltay, d;intcolor[8] = { BLUE, GREEN, RED, YELLOW, WHITE, BROWN, CYAN, MAGENTA };inti;d= 1 - R;deltax= 3;deltay= 5 - R - R;x[0]= x0; y[0] = y0 + R;x[4]= x0 + x0 - x[0]; y[4] = y0 + y0 - y[0];x[3]= x[0]; y[3] = y[4];x[7]= x[4]; y[7] = y[0];x[1]= y[0] + x0 - y0; y[1] = x[0] - x0 + y0;x[5]= x0 + x0 - x[1]; y[5] = y0 + y0 - y[1];x[2]= x[1]; y[2] = y[5];x[6]= x[5]; y[6] = y[1];while ( x[0] <= y[0] ){for ( i = 0; i < 8; i++ )putpixel( x, y, color );if ( d < 0 ){d+= deltax;deltax+= 2;x[0]++; y[1]++;y[2]--; x[3]++;x[4]--; y[5]--;y[6]++; x[7]--;}else {d+= deltax + deltay;deltax+= 2;deltay+= 2;x[0]++; y[0]--;x[1]--; y[1]++;x[2]--; y[2]--;x[3]++; y[3]++;x[4]--; y[4]++;x[5]++; y[5]--;x[6]++; y[6]++;x[7]--; y[7]--;}}}// other one:#include <stdio.h>#include <graphics.h>void MidpointCircle( int x0, int y0, int R );int main(){ int x0, y0; int R; int driver = DETECT, mode; initgraph( &driver, &mode, "C:\\tc20" ); printf( "Input x0,y0:" ); scanf( "%d,%d", &x0, &y0 ); printf( "Input radius:" ); scanf( "%d", &R ); MidpointCircle( x0, y0, R ); getch(); closegraph(); return(0);}void MidpointCircle( int x0, int y0, int R ){ int x, y, deltax, deltay, d; x = 0; y = R; d = 1 - R; deltax = 3; deltay = 5 - R - R; while ( x <= y ) { putpixel( x + x0, y + y0, 1 ); putpixel( y + x0, x + y0, 2 ); putpixel( y + x0, -x + y0, 3 ); putpixel( x + x0, -y + y0, 4 ); putpixel( -x + x0, -y + y0, 5 ); putpixel( -y + x0, -x + y0, 6 ); putpixel( -y + x0, x + y0, 7 ); putpixel( -x + x0, y + y0, 8 ); if ( d < 0 ) { d += deltax; deltax += 2; x++; }else { d += deltax + deltay; deltax += 2; deltay += 2; x++; y--; } }}
0 0