bresenham线和圆c语言代码
时间: 2023-10-19 08:05:48 浏览: 55
Bresenham算法是一种用于计算画线的算法,它可以在计算机图形学中快速地绘制直线和圆。
以下是Bresenham算法的C语言代码实现:
1. 画直线:
```c
void lineBres(int x0, int y0, int xEnd, int yEnd, int color) {
int dx = abs(xEnd - x0), dy = abs(yEnd - y0);
int p = 2 * dy - dx;
int twoDy = 2 * dy, twoDyMinusDx = 2 * (dy - dx);
int x, y;
if (x0 > xEnd) {
x = xEnd;
y = yEnd;
xEnd = x0;
} else {
x = x0;
y = y0;
}
putpixel(x, y, color);
while (x < xEnd) {
x++;
if (p < 0) {
p += twoDy;
} else {
y++;
p += twoDyMinusDx;
}
putpixel(x, y, color);
}
}
```
2. 画圆:
```c
void circleBres(int xc, int yc, int r, int color) {
int x = 0, y = r;
int d = 3 - 2 * r;
while (x <= y) {
putpixel(xc + x, yc + y, color);
putpixel(xc - x, yc + y, color);
putpixel(xc + x, yc - y, color);
putpixel(xc - x, yc - y, color);
putpixel(xc + y, yc + x, color);
putpixel(xc - y, yc + x, color);
putpixel(xc + y, yc - x, color);
putpixel(xc - y, yc - x, color);
x++;
if (d < 0) {
d = d + 4 * x + 6;
} else {
y--;
d = d + 4 * (x - y) + 10;
}
}
}
```
以上是Bresenham算法的C语言代码实现。需要注意的是,这些代码只是用于演示算法的基本原理,并不适用于实际的图形绘制。