【CG】Bresenham算法 画直线与圆
@(CG)
Bresenham算法的意义在于避免了浮点数运算,无论是画直线还是画圆,都提高了效率。
本文参考了网上的资料后,根据自己作业的需要,完成了Bresenham画直线和画圆的算法,分享出来希望能帮助到需要的人、。
画直线算法
算法步骤:
参考:https://blog.youkuaiyun.com/mmogega/article/details/53055625
这篇blog的代码有点bug,重点在于是递增x还是y的选择和方向的选择,我重写的代码如下:
代码输入2个点的坐标,然后使用bresenham画线算法,并将得到的点都存入一个vector中返回。
vector<int> Bresenham(int x0, int y0, int x1, int y1) {
vector<int> points;
points.push_back(x0);
points.push_back(y0);
int dx= x1- x0;
int dy= y1- y0;
int direct_x= dx> 0? 1: -1;
int direct_y= dy>