搜索
bottom↓
回复: 6

傻孩子,你的“怎样在点阵屏上绘图——基于LCD12864 ”上说的Bresenham算法为什么和书

[复制链接]

出0入0汤圆

发表于 2010-8-12 14:06:04 | 显示全部楼层 |阅读模式
傻孩子,你的“怎样在点阵屏上绘图——基于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)处画点

出0入296汤圆

发表于 2010-8-12 14:44:16 | 显示全部楼层
Bresenham算法的原理就是固定一个坐标轴,每次增量1,然后去检查另外一个坐标的增量,
如果大于等于一个点,就给另外一个坐标加一,如果不够,就继续累加增量……

出0入0汤圆

 楼主| 发表于 2010-8-12 15:36:20 | 显示全部楼层
回复【1楼】Gorgon Meducer 傻孩子
bresenham算法的原理就是固定一个坐标轴,每次增量1,然后去检查另外一个坐标的增量,
如果大于等于一个点,就给另外一个坐标加一,如果不够,就继续累加增量……
-----------------------------------------------------------------------

那为什么需要 x += ix; y += iy; 然后再去和inc比较呢?你给的伪代码中只是在x轴上增加x的增量,在y轴上增加y的增量,然后判断和inc的大小,这是什么意思,一时理解不了,只能请教了、!

出0入296汤圆

发表于 2010-8-13 09:36:05 | 显示全部楼层
前面的算法是一个同时适应两个轴的算法,你按照算法中的描述自己一步一步走一下就知道了。

出0入0汤圆

发表于 2010-8-13 22:06:54 | 显示全部楼层
技术贴,标记

出0入0汤圆

发表于 2011-2-23 10:13:04 | 显示全部楼层
还是不明白

出0入296汤圆

发表于 2011-2-23 18:08:02 | 显示全部楼层
to 【5楼】 redworlf 果子
   看3楼的回复
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 17:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表