问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Bresenham直线演算法的最佳化

发布网友 发布时间:2022-05-24 21:00

我来回答

1个回答

热心网友 时间:2023-11-01 23:10

以上的程序有一个问题:电脑处理浮点运算的速度比较慢,而error与deltaerr的计算是浮点运算。此外,error的值经过多次浮点数加法之后,可能有累积误差。使用整数运算可令算法更快、更准确。只要将所有以上的分数数值乘以deltax,我们就可以用整数来表示它们。唯一的问题是程序中的常数0.5—我们可以透过改变error的初始方法,以及将error的计算由递增改为递减来解决。新的程序如下:
function line(x0, x1, y0, y1)
boolean steep := abs(y1 - y0) > abs(x1 - x0)
if steep then
swap(x0, y0)
swap(x1, y1)
if x0 > x1 then
swap(x0, x1)
swap(y0, y1)
int deltax := x1 - x0
int deltay := abs(y1 - y0)
int error := deltax / 2
int ystep
int y := y0
if y0 < y1 then ystep := 1 else ystep := -1
for x from x0 to x1
if steep then plot(y,x) else plot(x,y)
error := error - deltay
if error < 0 then
y := y + ystep
error := error + deltax
[编辑] 历史
Jack E. Bresenham于1962年在IBM发明了此算法。据他本人表示,他于1963年在丹佛举行的美国计算机协会全国大会上发表了该算法,论文则登载于1965年的《IBM系统期刊》 (IBM Systems Journal) 之中。[1]Bresenham直线算法其后被修改为能够画圆,修改后的算法有时被称为“Bresenham画圆算法”或中点画圆算法。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
江西蓝天学院和赣江职业技术学院哪个好? 江西有什么好的中专学校 什么是单点登录(SSO),以及单点登录的实现流程 前端实现单点登录(SSO) 前端单点登录如何实现 面试官:来说说单点登录的三种实现方式 为什么很多人不买哈弗H9 座机如何开通国内长途 座机如何申请 辽宁省出租车手续怎么办? 直线bresenham算法基于什么思路 Bresenham直线演算法的一般化 Bresenham直线演算法的介绍 Bresenham直线演算法的演算方法 共享充电宝成本怎么样 共享充电宝成本分析 共享充电宝财务怎么面试 深圳是谁开发的? 共享充电宝有没有税收这项要求 您好,公司购入一批共享充电宝,金额很大,靠这个收租金,请问一下购进的充电宝该如何入账比较好呢? 是不是深圳是靠香港发展? 改革开发33年了 ,有谁晓得 深圳是用什么打造起来的 ,深圳刚开始开发的时候是用什么模式打造的? 当年上海,深圳,天津的开发用的什么模式 深圳是如何开发的 深圳的开发是靠走私和股票发展起来的吗 深圳的历史,是靠什么发展的,最早的划分地,当初咋来的(名字以前) 带脏字的网名和头像, 网名类似 笑看世界太多狗 头像类似 找一个和这个匹配的QQ情侣头像 请教大家在外省可不可以考二建 求黑子的篮球的头像....越多越好...比如萌一点...或者有杀气...要个人的... 求一些裂嘴女,鲨鱼嘴的动漫头像图片,要有杀气霸气,阴沉沉或者恐怖之类的,反正嘴巴裂得越开越好,比如 关于Bresenham算法的求助 Bresenham算法编写直线的程序怎么写啊!!Java学的不好…………这作业惨烈 lcd Bresenham算法画直线疑问代码e=dy-dx/2;是什么意思? 刚接触不太懂,请问各位我在mac上装了github for mac,还需要装git吗 求计算机图形学中的直线绘制函数法、DDA算法、中点法和Bresenham算法的优缺点以及比较. 如何用中点Bresenham算法完成直线扫描转换? 在直线Bresenham生成算法中,确定y的值取yi+1,还是yi的依据是 写出直线段扫描转换的Bresenham算法,并生成从点P1(0,0)到点P2 (5,2)的直线段,要求写出每一步递推过程 我的华为荣耀30手机为啥没有HD开关。荣耀301。。荣耀30i设置里没有高清通话软件? 免费通话软件 那个通话清晰的 这个壁纸名字叫什么? 求这张壁纸原图及出处 最近我看新闻,看到说无代码平台,不用开发程序就能搭建系统,我想试试? 2厘亚克力板介刀能切吗 求这张壁纸的原图,图片我删了 请给我这个桌面壁纸的原图,非常感谢! 前置摄像头模糊不清 二进制负数补码转为十进制还有意义吗 青青子衿青青子佩采用了什么手法表达了什么感情? 青青子衿,悠悠我心。呦呦鹿鸣,食野之苹,我有嘉宾,鼓瑟吹笙。运用了哪些表现手法?表达了什么情感