Bresenham算法(一)
Bresenham算法(一)
一、Bresenham直线算法(1)
基本原理:
Bresenham的直线算法是一种算法,它确定应该选择的n维光栅的点,以便形成两点之间的直线的近似近似。 它通常用于在位图图像中(例如在计算机屏幕上)绘制线基元,因为它仅使用整数加法,减法和位移,所有这些都是标准计算机体系结构中非常便宜的操作。 它是一种增量错误算法。 它是计算机图形学领域最早开发的算法之一
考虑d2与d1的关系:
(1)如果d2>=d1,则直线更接近下方点
(2)如果d2<d1,则直线更接近上方点
二、 Bresenham直线算法(2)
过各行各列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项的符号确定该列象素中与此交点最近的象素。
算法:
void Bresenhamline (int x0,int y0,int x1, int y1,int color)
{ int x, y, dx, dy;float k, e;dx = x1-x0, dy = y1- y0,k=dy/dx; e=-0.5, x=x0, y=y0;for (i=0; i£dx; i++){ drawpixel (x, y, color);x=x+1,e=e+k;if (e³0){ y++, e=e-1;}
}
}
Bresenham算法(一)相关推荐
- java 2d划线 刷子_Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO2DGRAPHICS)...
Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO2DGRAPHICS) (2007-04-05 23:37:39) Java 2D Graphics提供了强大的画线功能,可 ...
- Bresenham 算法画线 画圆
最近作业在做 graphics driver 涉及到 Bresenham 画线以及画圆算法,以防自己忘记了总结一些知识点以及源码. 所有代码的输入参数类型都是 unsinged int Bresenh ...
- 【转】直线光栅化算法-Bresenham算法
[转]直线光栅化算法-Bresenham算法 https://blog.csdn.net/cjw_soledad/article/details/78886117 posted on 2019-03- ...
- OpenGL——使用Bresenham算法绘制圆
Bresenham算法是计算机图形学中为了"显示器(屏幕或打印机)系由像素构成"的这个特性而设计出来的算法,使得在求直线各点的过程中全部以整数来运算,因而大幅度提升计算速度.--摘 ...
- 游戏中DDA算法和Bresenham算法的应用
在角色扮演或即时战略游戏中,经常会将角色以最佳的方式走到指定地点.游戏场景的地面情况复杂,而且场面大,若采用盲目式搜索,例如盲目穷举法,则几乎要遍历整个场景,效率非常低,造成角色反应速度过慢,实践证明 ...
- 计算机图形学E2——OpenGL Bresenham算法画直线
其他计算机图形学实验见 链接 要求 使用Bresemham算法画直线,并且通过鼠标可以实现交互操作 参考代码: 代码1 代码2 代码3(代码好理解) 代码4(讲解很全面) #include<io ...
- bresenham算法_二维光栅图形的扫描:直线的DDA、Bresenham算法与圆的生成
数值微分DDA算法 算法原理 DDA算法是一个增量算法,每一步的x.y值是用前一步的值加上一个增量来获得的,每一步在最大位移方向上加1. 优点:算法直观.易实现 缺点:有浮点数和浮点运算,效率不高 代 ...
- [XJTUSE]计算机图形学第二章作业,使用OpenGL编程实现DDA、中点画线和Bresenham算法和中点画圆法
首先是Windows10 + Visual Studio 2019 搭建OpenGL环境可以查看如下链接: 萌新向!!!Windows10 + Visual Studio 2019 搭建OpenGL环 ...
- 【计算机图形学】基于OpenGL的中点Bresenham算法画直线
学习过三种画直线的方法(DDA.中点Bresenham算法.改进的中点Bresenham算法)后,想着实际操作一下如何能够实现,OpenGL无疑是很好的选择,在老师的推荐下,我尝试着用OpenGL来实 ...
- 基于中点算法和Bresenham算法绘制椭圆
方法一 一.设计思路 该实验利用中点算法和Bresenham算法寻找最逼近椭圆的理想像素集. 对于,判断下一点取还是, 先取中点,判断该中点在圆内还是圆外, 若在圆外,说明椭圆上的点离下方的像素点更 ...
最新文章
- 解决微博登录 Application requires permission to access the Internet
- 什么情况下可以不写PHP的结束标签“?”
- 展望企业级移动设备的操作系统
- 随笔(很晚很晚,瞎写一通)
- Serverless 躁动背后的 5 大落地之痛
- Linux stty
- live2dviewer android,live2dviewerex安卓版
- mysql 交集_面试官:来说说MySQL的常见优化方案……
- 一不小心就进入了P2P陷阱
- C语言程序设计(第三版)何钦铭著 习题3-2
- 大学计算机考试满分多少分,自主招生考试多少分 最多降多少分
- 这些音乐MV制作堪称大片,看过真是值回票价
- 【loj10064】黑暗城堡
- 友达8寸高分辨率工业屏G080UAN02.2-8寸MIPI屏
- Bazel 与 gtest:构建一个最简单的测试驱动开发环境
- 阿里云服务器更改时区
- UVALIVE 2678
- 服务器的1U、2U、4U是指什么?
- multisim常用d触发器_请问这个符号的d触发器在multisim中的芯片代号是什么
- 阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析...
热门文章
- Git系列(二)、Git连接远程仓库(Gitee码云)
- 人际交往的43个绝招
- 太极熊猫服务器怎么都在维护,太极熊猫3月8日战区调整及维护公告
- $(...).modal is not a function的解决办法
- linux kernel setup_arch
- Java面试题Tomcat的优化经验
- 【GIVENCHY商务休闲风格/白色/100%精梳棉/撞色拼接领/长袖衬衣】玛萨玛索男装网购商城...
- C#设计模式之桥接模式(Bridge Pattern)
- uniapp正则校验
- AF多尺度孔隙处理软件2D 多孔介质材料建模