计算机图形学03:改进的中点BH算法

02-29 1788阅读 0评论

计算机图形学03:改进的中点BH算法

计算机图形学03:改进的中点BH算法,计算机图形学03:改进的中点BH算法,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,方法,地址,第2张
(图片来源网络,侵删)

作者:非妃是公主

专栏:《计算机图形学》

博客地址:https://blog.csdn.net/myf_666

个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩

计算机图形学03:改进的中点BH算法

文章目录

  • 专栏推荐
  • 专栏系列文章
  • 一、改进缘由
  • 二、算法原理
  • 三、OpenGL代码实现
  • 四、实现效果图
  • the end……

    专栏推荐

    专栏名称专栏地址
    软件工程专栏——软件工程
    计算机图形学 专栏——计算机图形学
    操作系统专栏——操作系统
    软件测试专栏——软件测试
    机器学习专栏——机器学习
    数据库专栏——数据库
    算法专栏——算法

    专栏系列文章

    文章名称文章地址
    直线生成算法(DDA算法)计算机图形学01——DDA算法
    中点BH算法绘制直线计算机图形学02——中点BH算法
    改进的中点BH算法计算机图形学03——改进的中点BH算法
    中点Bresenham画椭圆计算机图形学04——中点BH绘制椭圆
    中点BH算法绘制任意斜率直线计算机图形学05——中点BH算法绘制任意斜率的直线
    中点Bresenham画圆计算机图形学06——中点BH算法画圆
    有效边表法的多边形扫描转换计算机图形学07——有效边表法绘制填充多边形
    中点BH算法绘制抛物线 100 x = y 2 100x = y^2 100x=y2计算机图形学08——中点BH绘制抛物线
    二维观察之点的裁剪计算机图形学09——二维观察之点裁剪
    二维观察之线的裁剪计算机图形学10——二维观察之线裁剪
    二维观察之多边形的裁剪计算机图形学11——二维观察之多边形裁剪
    二维图形的几何变换计算机图形学12——二维图形几何变换
    三维图形的几何变换计算机图形学13——三维图形几何变换
    三维图形的投影变换计算机图形学14——三维图形投影变换

    计算机图形学(英语:computer graphics,缩写为CG)是研究计算机在硬件和软件的帮助下创建计算机图形的科学学科,是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。虽然这个词通常被认为是指三维图形,事实上同时包括了二维图形以及影像处理。

    计算机图形学03:改进的中点BH算法,计算机图形学03:改进的中点BH算法,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,方法,地址,第4张
    (图片来源网络,侵删)

    一、改进缘由

    为什么需要改进中点BH算法呢?因为上一篇(计算机图形学02:中点BH算法绘制直线)已经提到,中点BH算法会带来浮点数的问题,而浮点数对于硬件的运算不仅实现复杂,而且运行起来效率低下。因此,我们需要对其进行改进,也就诞生了改进的中点BH算法。


    二、算法原理

    d的含义发生了改变,不再是中点了

    计算机图形学03:改进的中点BH算法

    计算机图形学03:改进的中点BH算法

    计算机图形学03:改进的中点BH算法

    计算机图形学03:改进的中点BH算法

    计算机图形学03:改进的中点BH算法,计算机图形学03:改进的中点BH算法,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,方法,地址,第9张
    (图片来源网络,侵删)

    改进点1将右半部分的0.5去掉了

    计算机图形学03:改进的中点BH算法

    这样通过改进的BH算法,去掉了小数,这是一种改进方法。上一篇中也存在着去整改进,为什么有两种改进方法呢?(上一篇文章地址:计算机图形学02:中点BH算法绘制直线)

    我并不清楚,也没有进一步检索,知道的小伙伴可以把答案放在评论区!我会补上。

    但我猜测,最初的BH算法应该是没有进行化整的,后面在实际硬件运算中发现了问题,因而出现了2种改进方法,一种是上文提到的(叫做中点BH算法的化整改进),另一种就是本文提到的,叫做改进的中点BH算法= =。(不过这只是一种猜测……)


    三、OpenGL代码实现

    // 改进的Bresenham算法绘制直线段(0≤k≤1)
    void  Bhline(int  x0, int  y0, int  x1, int  y1) {
    	int  x, y, dx, dy, e;
    	if (x0 > x1) {				// x0为起始点,x1为终止点
    		x = x1; x1 = x0; x0 = x; y = y1; y1 = y0; y0 = y;
    	}
    	dx = x1 - x0;  dy = y1 - y0;  x = x0;  y = y0;
    	e = -dx;
    	glBegin(GL_POINTS);
    	while (x 
    		glVertex2i(x, y);
    		x++;
    		e = e + 2 * dy;			// e = e + 2dx * k
    		if (e  0) {
    			y++;
    			e = e - 2 * dx;		// e = e - 1
    		}
    	}
    	glEnd();
    }
    

    四、实现效果图

    运行代码后,调用函数,效果如下:

    计算机图形学03:改进的中点BH算法


    the end……

    改进的中点BH算法到这里就要结束啦~~到此既是缘分,欢迎您的点赞、评论、收藏!关注我,不迷路,我们下期再见!!

    😘😘😘 我是Cherries,一位计算机科班在校大学生,写博客用来记录自己平时的所思所想!

    💞💞💞 内容繁杂,又才疏学浅,难免存在错误,欢迎各位大佬的批评指正!

    👋👋👋 我们相互交流,共同进步!

    注:本文由非妃是公主发布于https://blog.csdn.net/myf_666,转载请务必标明原文链接:https://blog.csdn.net/myf_666/article/details/128164331


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1788人围观)

还没有评论,来说两句吧...

目录[+]