关于计算机图形学基本方法绘圆,出现如图情况正常吗?

我的算法就是一般的主方向y位移,x根据方程求解,然后四舍五入,结果如图,为什么是这样,还是我的方法写错了??CPoint2n;n.y=r;//圆的最上面的点n.x=0;p... 我的算法就是一般的主方向y位移,x根据方程求解,然后四舍五入,结果如图,为什么是这样,还是我的方法写错了??
CPoint2 n;
n.y=r; //圆的最上面的点
n.x=0;

pDC->SetPixel(n.y,n.x,RGB(255,0,0)); //第一个点

for(double a=0;a<=r;++a)
{
n.y=n.y-1; //主位移方向是y

n.x=ROUND(sqrt(r*r-n.y*n.y));

pDC->SetPixel(n.x,n.y,RGB(255,0,0));
pDC->SetPixel(-n.x,n.y,RGB(255,0,0));
pDC->SetPixel(-n.x,-n.y,RGB(255,0,0));
pDC->SetPixel(n.x,-n.y,RGB(255,0,0));
}
展开
 我来答
落月Prc
2012-10-20 · TA获得超过2789个赞
知道大有可为答主
回答量:2011
采纳率:100%
帮助的人:2420万
展开全部
你的算法看上去没问题,但是真正绘图时,在圆的最上面和最下面,因为Y轴像素是固定分散的,所以X轴会比较分散。根据X轴再绘一下就OK了
古龙南琴0b8
2012-10-30 · TA获得超过229个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:184万
展开全部
可以减小y方向移动的步长。因为你每次移动一个像素,在x方向上可能产生很大跨度,导致两端产生撕裂效果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式