我用Bresenham's circle algorithm快速画圆.然而,我也想(应用户要求)画一个填充圆.

有没有快速有效的方法来做这件事?和布雷森纳姆一模一样的东西吗?

我使用的语言是C.

推荐答案

读过the Wikipedia page on Bresenham's (also 'Midpoint') circle algorithm之后,似乎最简单的方法是修改它的操作,这样代替

setPixel(x0 + x, y0 + y);
setPixel(x0 - x, y0 + y);

类似的,每次你都这样做

lineFrom(x0 - x, y0 + y, x0 + x, y0 + y);

也就是说,对于Bresenham的每一对分数(相同的y分),你会得到plot分,而不是connect with a line分.

C++相关问答推荐

理解C中的指针定义

为什么静态说明符为内联函数生成外部定义?

在struct中调用函数,但struct在void中 *

在C中使用JMP_buf数组进行线程化(在xv6中测试)

具有交换链获取和命令缓冲区提交的同步-危险-读后写错误

如何在C中引发/处理自定义信号?

将uintptr_t添加到指针是否对称?

进程在写入管道时挂起

为什么指针运算会产生错误的结果?

用C++从外部ELF符号读取值

如何在GDB中查看MUSL的源代码

如何使用libgpio(d)为Raspberry Pi编译C程序?

为什么realloc函数在此代码中修改变量?

宏观;S C调深度

c程序,让用户输入两类数字,并给出输出用户输入多少个数字

带有数组指针的 struct 在print_stack()函数中打印随机数

分支预测和UB(未定义的行为)

函数指针作为函数参数 - 应该使用 const 吗?

C 语言中霍尔分区的快速排序算法

在 C 中的 scanf() 格式说明符中使用宏获取字符串长度