OpenGL:中点直线算法

理论部分

中点直线算法是通过在像素中确定与理想直线最靠近的像素来进行扫描转换的。

image.png

在上图中,假设直线的斜率0≤m≤10\le m \le 10m1。假设当前最近的像素已经确认为P(xk,yk)P(x_k, y_k)P(xk,yk),由于xxx位最大的位移方向,因此直线在xxx方向上每次增加一个像素单位,而在yyy方向上是否增加一个像素单位,即PPP点的下一个点是选P1(xk+1,yk)P_1(x_{k+1},y_k)P1(xk+1,yk)还是P2(xk+1,yk+1)P_2(x_{k+1},y_k+1)P2(xk+1,yk+1),取决于两个备选像素哪一个离理想像素最近
M(xk+1,yk+0.5)M(x_k+1, y_k+0.5)M(xk+1,yk+0.5)P1P2P_1P_2P1P2的中点,QQQ是理想直线与直线x=xk+1x=x_k+1x=xk+1的交点。在图中可以看出,P2P_2P2离理想像素QQQ更近,所以应该选择P2P_2P2作为下一个像素。
像素选择的方法:理想像素QQQ在中点MMM上方,则选取P2P_2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ht巷子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值