cheronder 发表于 2012-11-24 10:46:59

这段画圆的程序哪儿错了

这段画圆的程序哪儿错了
int fillcircle(int x,int y,int r)
{
   int fx,fy;
   for(fx=x-r;fx<=x+r;fx++){
      fy=sqrt(r^2-(fx-x)^2)+y;
      Bdisp_DrawLineVRAM( fx, 2*y-fy, fx, fy);
    }
}

cheronder 发表于 2012-11-24 10:53:41

y=√(〖r^(2-) (x-x_0 )〗^2+) y_0
用的是此公式

cheronder 发表于 2012-11-24 10:58:44

f:\0.png

cheronder 发表于 2012-11-24 11:00:10

这个

wtof1996 发表于 2012-11-24 12:45:53

建议换成参数方程,会好用很多

GWHBOB 发表于 2012-11-24 17:41:09

本帖最后由 GWHBOB 于 2012-11-24 17:42 编辑

用#include <mathf.h>
#define step 2//每隔2像素画一道线
const pi=3.14159
//
void circle(float x,float y,float r)
{
float x0,y0,x1,y1,t,tstep;

x0=x+r;y0=y;
tstep=step/r;
for(t=tstep;t<2*pi;t+=tstep){
    x1=x+r*cosf(t);y1=y+r*sinf(t);
    line(x0,y0,x1,y1);
    x0=x1;y0=y1;
}
}

cheronder 发表于 2012-11-24 19:06:23

tks.
页: [1]
查看完整版本: 这段画圆的程序哪儿错了