美丽心灵公益论坛

查看: 1828|回复: 4

布雷森汉姆直线算法

[复制链接]
累计签到:42 天
连续签到:11 天

35

主题

403

回帖

3577

积分

论坛元老

Rank: 8Rank: 8

积分
3577
发表于 2023-4-21 23:17:28| 字数 269 | 显示全部楼层 |阅读模式
最近尝试学“布雷森汉姆直线算法”(Bresenham's line algorithm),是用来描绘由两点所决定的直线的算法。



简单来说,代码是这样的:
  1. plotLine(x0, y0, x1, y1)
  2.     dx = x1 - x0
  3.     dy = y1 - y0
  4.     D = 2*dy - dx
  5.     y = y0

  6.     for x from x0 to x1
  7.         plot(x, y)
  8.         if D > 0
  9.             y = y + 1
  10.             D = D - 2*dx
  11.         end if
  12.         D = D + 2*dy
复制代码


plot(x,y)是在X,Y位置画一个点。

但以上并不完整,还需plotLineLow和plotLineHigh.

很开心,原来以前有人发明的了,只需明白原理后编写程序即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 1钻石 +80 收起 理由
simonzhd + 80 赞一个!

查看全部评分

累计签到:1549 天
连续签到:4 天

542

主题

6510

回帖

518万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5188174

活跃会员热心会员发帖达人最佳新人

活跃会员
发表于 2023-4-22 09:37:04| 字数 0 | 显示全部楼层
累计签到:42 天
连续签到:11 天

35

主题

403

回帖

3577

积分

论坛元老

Rank: 8Rank: 8

积分
3577
 楼主| 发表于 2023-4-22 13:23:39| 字数 32 | 显示全部楼层
累计签到:3 天
连续签到:1 天

466

主题

5137

回帖

2万

积分

超级版主

Rank: 8Rank: 8

积分
23862

最佳新人活跃会员发帖达人

最佳新人
发表于 2023-4-25 10:46:06| 字数 17 | 显示全部楼层
很不错,棒棒哒!孤星学习能力很强。
累计签到:42 天
连续签到:11 天

35

主题

403

回帖

3577

积分

论坛元老

Rank: 8Rank: 8

积分
3577
 楼主| 发表于 2023-4-25 14:00:58| 字数 60 | 显示全部楼层
蓝莓糖 发表于 2023-4-25 10:46
很不错,棒棒哒!孤星学习能力很强。

谢谢蓝莓糖的称赞,你还是那么热心,那么有动力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|免责及版权声明|关于|美丽心灵公益论坛

GMT+8, 2025-12-5 08:59 , Processed in 0.095797 second(s), 35 queries .

Powered by Discuz! X3.4

!copyright!

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