直线的bresenham算法c++
时间: 2023-12-01 22:41:53 浏览: 49
以下是直线的Bresenham算法的C++实现:
```c++
#include <iostream>
#include <graphics.h>
using namespace std;
void bresenham(int x1, int y1, int x2, int y2) {
int dx = abs(x2 - x1);
int dy = abs(y2 - y1);
int sx = (x1 < x2) ? 1 : -1;
int sy = (y1 < y2) ? 1 : -1;
int err = dx - dy;
while (true) {
putpixel(x1, y1, WHITE);
if (x1 == x2 && y1 == y2) {
break;
}
int e2 = 2 * err;
if (e2 > -dy) {
err -= dy;
x1 += sx;
}
if (e2 < dx) {
err += dx;
y1 += sy;
}
}
}
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
bresenham(100, 100, 300, 300);
getch();
closegraph(); return 0;
}
```