Bresenham直线算法

Bresenham直线算法

Bresenham概述

根据前一个已知坐标((x_i,y_i))进行增量运算到((x_{i+1},y_{i+1}))主位移方向上每次递增一个单位,另一个方向的增量为0或者1,这里取0还是1由像素点与直线的距离决定的,距离称为误差项,用字母(d)表示。

[ y_{i+1}=\left{ \begin{array}{rcl} y_i+1 & & {e_{i+1} >= 0}\ y_i & & {e_{i+1} < 0} \end{array} \right. ]

其中,(e_{i+1}=d_{i+1}-0.5)

缺点

会出现 走向现象

  • 走样:由离散量表示连续量而引起的失真,称为 走样
  • 走样只能减轻,不能消除。

反走样算法

像素点距离光栅交点越近,该像素点颜色与直线颜色越接近,亮度越小;越远颜色相差越大,亮度越大。

颜色插值原理

  • 线性插值
    P点的颜色可以用线性插值表示为:

[P=(1-t)P_0 +tP_1 ]

其中,(x)方向有:

[x=(1-t)x_0+tx_1 ]

[t=\frac{x-x_0}{x_1-x_0} ]

(y)方向有:

[y=(1-t)y_0+ty_1 ]

[t=\frac{y-y_0}{y_1-y_0} ]

颜色插值的表达式为:

[c=(1-t)c_0+tc_1 ]

将(x)方向与(y)方向带入,得到:

[c=\frac{x_1-x}{x_1-x_0}c_0+\frac{x-x_0}{x_1-x_0}c_1 ]

[c=\frac{y_1-y}{y_1-y_0}c_0+\frac{y-y_0}{y_1-y_0}c_1 ]

人机交互——引力域技术

  • 引力域技术:一种自动捕捉技术
  • 人机交互技术还有:回显、约束、橡皮筋、拖动、草拟、旋转等等。

Original: https://www.cnblogs.com/brilliantM/p/14782158.html
Author: 帅气无敌朋子
Title: Bresenham直线算法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/683667/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球