[计算机图形学算法]直线扫描转换算法-DDA

数值微分法DDA

根据直线方程的斜截式,已知起点和中点,可得直线方程y=kx+b.

当|k|<=1时,x每沿步进方向前进一个单位(一下均以1代替),增量y为k,如下图的公式

这样的方法,将求直线每一个点用到的kx+b含乘法的式子,转换为x+1,y+k的加法算法.注意,这一每一步用到的y,是上一步真实计算得到的y,不是四舍五入后的y,四舍五入后的y用来绘制坐标,而真实的y参与增量计算.

然而对于|k|>1的直线而言,如下图,会发现一条直线被抽象成了三个点,可以推算,当k很大时,一条线会被抽象成两个点,这...谁还看得出来是条直线!

 这时候,就要沿着y的方向增加步进了,x = k`y+b.(k`!=k),k` = x增量/y增量.

如上图的例子,x=(2/5) y,y沿步进一步,x增量2/5,用同样的方法,可以用更多的点来表示一条直线了

资料来源<计算机图形学-中国农业大学>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值