|
傻孩子,你的“怎样在点阵屏上绘图——基于LCD12864 ”上说的Bresenham算法为什么和书上讲的算法不一样?能仔细讲一下吗?
为什么x和y要和inc进行比较,只有在大于等于inc的情况下,当前点才能加1或减1?
附傻孩子的伪代码:
在(x1,y1)到(x2,y2)之间画一条直线
dx 是x到终点横坐标的距离
dy 是y到终点纵坐标的距离
ix 是dx的绝对值
iy 是dy的绝对值
inc是dx和dy中较大的那个
plot是是否要画一个点的标志位,boolean变量
plotx 是当前点所在的横坐标
ploty 是当前点所在的纵坐标
plotx = x1
ploty = y1
x = 0
y = 0
在 plotx,ploty画一个点——起点
for i = 0 to inc 增量1
x += ix
y += iy
plot = false
if x > inc then
plot = true
x -= inc
if dx > 0 then plotx ++
if dx < 0 then plotx --
if y > inc then
plot = true
y -= inc
if dy > 0 then ploty ++
if dy < 0 then ploty --
if plot == true then 在(plotx,ploty)处画点 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|