计算机图形学笔记------直线的扫描转换

目的

在数字设备上绘制一条直线,其过程为给定直线的起点和终点,在光栅显示器的二维点阵中确定一组点最佳逼近所给直线。
绘制直线的本质是确定点序列

数值微分法(DDA)

算法原理

直线的一阶导数连续,对应微分增量成比例,可以使用当前位置 ( x i , y i ) (x_i,y_i) (xi,yi)分别加上两个小增量 ε ∗ Δ x \varepsilon*\Delta x εΔx ε ∗ Δ y \varepsilon*\Delta y εΔy即可求出相应的 ( x i + 1 , y i + 1 ) (x_{i+1},y_{i+1}) (xi+1,yi+1) ε \varepsilon ε取值极小),即:
y i + 1 = y i + ε ∗ Δ y y_{i+1}=y_i+\varepsilon*\Delta y yi+1=yi+εΔy
x i + 1 = x i + ε ∗ Δ x x_{i+1}=x_i+\varepsilon*\Delta x xi+1=xi+εΔx
相应的直线的斜率为:
d y d x = Δ y Δ x = Y 1 − Y 0 X 1 − X 0 = k \frac{dy}{dx}=\frac{\Delta y}{\Delta x}=\frac{Y_1-Y_0}{X_1-X_0}=k dxdy=ΔxΔy=X1X0Y1Y0=k

近似拟合

由于在实际的机器中我们无法实现那么高的精度,所以我们选择 ε = 1 m a x ( ∣ Δ x ∣ , ∣ Δ y ∣ ) \varepsilon=\frac{1}{max(|\Delta x|,|\Delta y|)} ε=max(Δx,Δy)1,将对应的 ε ∗ Δ x \varepsilon*\Delta x εΔx ε ∗ Δ y \varepsilon*\Delta y εΔy变为单位步长,对应有不同斜率有两种情况:
一种情况为: m a x ( ∣ Δ x ∣ , ∣ Δ y ∣ ) = ∣ Δ x ∣ max(|\Delta x|,|\Delta y|)=|\Delta x| max(Δx,Δy)=Δx,即 ∣ k ∣ < = 1 |k|<=1 <

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值