直线生成算法---Bresenham算法
2013-06-20 21:31
316 查看
Bresenham直线生成算法原理:
假设直线是从(xa,ya)至(xb,yb),如果把直线平移使点(xa,ya)与原点重合,则直线方程可写成y=△y/△x·x,其中:△x=xb-xa, △y=yb-ya。
则S,t可用下式计算:
S=△y/△x·(r+1)-q
t=(q+1)-△y/△x·(r+1)
S-t=2·△y/△x·(r+1)-2q-1
△x(S-t)=2(r·△y-q·△x)+2△y-△x 其中:△x>0。
令di=△x(S-t),则di与S-t的符号相同,只要判别di的符号就可确定下一点的坐标是Si还是Ti。
于是 di=2(r·△y-q·△x)+2·△y-△x;
当r=xi-1,q=yi-1时,
di=2xi-1·△y-2yi-1△x+2△y-△x
di+1=2xi·△y-2yi·△x+2△y-△x
di+1-di=2△y(xi-xi-1)-2△x(yi-yi-1)
di+1=di+2△y(xi-xi-1)-2△x(yi-yi-1)
因此,di的递推公式为:d1=2△y-△x
di+1=di+2△y 当di<0时,取Si(xi-1+1,yi-1)
di+2△y-2△x 当di≥0时,取Ti(xi-1+1,yi-1+1)
相关文章推荐
- 直线生成算法的实现:分别利用DDA算法、中点Bresenham算法和改进的Bresenham算法扫描转换直线段P1P2
- 直线生成算法——数值微分法(Digital Differential Analyzer, DDA)
- 使用MFC程序显示计算机图形学的直线生成算法(VS2015)
- 生成直线的Bresenham算法
- 计算机图形学-直线的生成算法
- 【Computer Graphics】2.直线生成算法(中点画线 算法)
- 实验2 直线生成算法实现
- 直线生成算法——中点画线法(Middpoint)
- 基于OpenGL的三种直线生成算法
- 计算机图形学之--直线生成算法(一)
- 【计算机图形学】基本图形元素:直线的生成算法
- 直线生成算法——Bresenham画线法
- 基于OpenGL的三种直线生成算法
- 【OpenGL】直线生成算法DDA+Bresenham
- 自己动手实现光栅化直线生成算法
- 常用直线图形生成算法(一)
- 直线的DDA生成算法C++实现
- 直线生成算法
- 直线生成算法---DDA
- 图形学,直线生成算法