100分求计算机图形学代码
/*---------------Bresenham算法生成圆--------------------*/
BresenhamCircle(int R,int color)
{
int x,y,dD,dHD,dDV,next;
x=0;y=R;dD=2*(1-R);
while(y>=0)
{
CirclePoints(x,y,300,300,color);
if(dD0)
{
dDV=2*(dD-x)-1;
if(dDV<=0) next=1;
else next=2;
}
elsenext=1;
switch(next)
{
case 0:x++;
dD+=2*x+1;
break;...全部
/*---------------Bresenham算法生成圆--------------------*/
BresenhamCircle(int R,int color)
{
int x,y,dD,dHD,dDV,next;
x=0;y=R;dD=2*(1-R);
while(y>=0)
{
CirclePoints(x,y,300,300,color);
if(dD0)
{
dDV=2*(dD-x)-1;
if(dDV<=0) next=1;
else next=2;
}
elsenext=1;
switch(next)
{
case 0:x++;
dD+=2*x+1;
break;
case 1:x++;
y--;
dD+=2*(x-y+1);
break;
case 2:y--;
dD+=-2*y+1;
break;
}/*switch*/
} /*while*/
outtextxy(150,350,"BresenhamCircle");
}
int main(void) /*主函数*/
{
initgr(); /* BGI初始化 */
DDACircle(50,5);
BresenhamCircle(50,35);
getch(); /*暂停一下,看看前面绘图代码的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}
圆:
只要将hrgn = CreateEllipticRgn(30, 30, 300, 200)
这条命令改一下:比如改为:
hrgn = CreateEllipticRgn(30, 30, 200, 200)
API函数setwindowrgn是一个很好用的函数
计算机图形学代码
。
收起