c语言画实心坐标点,c-绘制实心圆的快速算法?

这是我的做法:

我正在使用具有两位精度的定点值(我们必须管理半点和半点的平方值)

如上一个答案所述,我也使用平方值而不是平方根。

首先,我在圆的1/8部分中检测到圆的边界限制。 我正在使用这些点的对称性绘制圆的4个“边界”。 然后,我在圆圈内绘制正方形。

与中点圆算法不同,该算法将在直径均匀的情况下工作(并且在实数直径情况下也有一些变化)。

如果我的解释不清楚,请原谅我,我是法国人;)

void DrawFilledCircle(int circleDiameter, int circlePosX, int circlePosY)

{

const int FULL = (1 << 2);

const int HALF = (FULL >> 1);

int size = (circleDiameter << 2);// fixed point value for size

int ray = (size >> 1);

int dY2;

int ray2 = ray * ray;

int posmin,posmax;

int Y,X;

int x = ((circleDiameter&1)==1) ? ray : ray - HALF;

int y = HALF;

circlePosX -= (circleDiameter>>1);

circlePosY -= (circleDiameter>>1);

for (;; y+=FULL)

{

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值