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算法(一)相关推荐

  1. java 2d划线 刷子_Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO2DGRAPHICS)...

    Java图形设计中,利用Bresenham算法实现直线线型,线宽的控制(NO2DGRAPHICS) (2007-04-05 23:37:39) Java 2D Graphics提供了强大的画线功能,可 ...

  2. Bresenham 算法画线 画圆

    最近作业在做 graphics driver 涉及到 Bresenham 画线以及画圆算法,以防自己忘记了总结一些知识点以及源码. 所有代码的输入参数类型都是 unsinged int Bresenh ...

  3. 【转】直线光栅化算法-Bresenham算法

    [转]直线光栅化算法-Bresenham算法 https://blog.csdn.net/cjw_soledad/article/details/78886117 posted on 2019-03- ...

  4. OpenGL——使用Bresenham算法绘制圆

    Bresenham算法是计算机图形学中为了"显示器(屏幕或打印机)系由像素构成"的这个特性而设计出来的算法,使得在求直线各点的过程中全部以整数来运算,因而大幅度提升计算速度.--摘 ...

  5. 游戏中DDA算法和Bresenham算法的应用

    在角色扮演或即时战略游戏中,经常会将角色以最佳的方式走到指定地点.游戏场景的地面情况复杂,而且场面大,若采用盲目式搜索,例如盲目穷举法,则几乎要遍历整个场景,效率非常低,造成角色反应速度过慢,实践证明 ...

  6. 计算机图形学E2——OpenGL Bresenham算法画直线

    其他计算机图形学实验见 链接 要求 使用Bresemham算法画直线,并且通过鼠标可以实现交互操作 参考代码: 代码1 代码2 代码3(代码好理解) 代码4(讲解很全面) #include<io ...

  7. bresenham算法_二维光栅图形的扫描:直线的DDA、Bresenham算法与圆的生成

    数值微分DDA算法 算法原理 DDA算法是一个增量算法,每一步的x.y值是用前一步的值加上一个增量来获得的,每一步在最大位移方向上加1. 优点:算法直观.易实现 缺点:有浮点数和浮点运算,效率不高 代 ...

  8. [XJTUSE]计算机图形学第二章作业,使用OpenGL编程实现DDA、中点画线和Bresenham算法和中点画圆法

    首先是Windows10 + Visual Studio 2019 搭建OpenGL环境可以查看如下链接: 萌新向!!!Windows10 + Visual Studio 2019 搭建OpenGL环 ...

  9. 【计算机图形学】基于OpenGL的中点Bresenham算法画直线

    学习过三种画直线的方法(DDA.中点Bresenham算法.改进的中点Bresenham算法)后,想着实际操作一下如何能够实现,OpenGL无疑是很好的选择,在老师的推荐下,我尝试着用OpenGL来实 ...

  10. 基于中点算法和Bresenham算法绘制椭圆

     方法一 一.设计思路 该实验利用中点算法和Bresenham算法寻找最逼近椭圆的理想像素集. 对于,判断下一点取还是, 先取中点,判断该中点在圆内还是圆外, 若在圆外,说明椭圆上的点离下方的像素点更 ...

最新文章

  1. 解决微博登录 Application requires permission to access the Internet
  2. 什么情况下可以不写PHP的结束标签“?”
  3. 展望企业级移动设备的操作系统
  4. 随笔(很晚很晚,瞎写一通)
  5. Serverless 躁动背后的 5 大落地之痛
  6. Linux stty
  7. live2dviewer android,live2dviewerex安卓版
  8. mysql 交集_面试官:来说说MySQL的常见优化方案……
  9. 一不小心就进入了P2P陷阱
  10. C语言程序设计(第三版)何钦铭著 习题3-2
  11. 大学计算机考试满分多少分,自主招生考试多少分 最多降多少分
  12. 这些音乐MV制作堪称大片,看过真是值回票价
  13. 【loj10064】黑暗城堡
  14. 友达8寸高分辨率工业屏G080UAN02.2-8寸MIPI屏
  15. Bazel 与 gtest:构建一个最简单的测试驱动开发环境
  16. 阿里云服务器更改时区
  17. UVALIVE 2678
  18. 服务器的1U、2U、4U是指什么?
  19. multisim常用d触发器_请问这个符号的d触发器在multisim中的芯片代号是什么
  20. 阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析...

热门文章

  1. Git系列(二)、Git连接远程仓库(Gitee码云)
  2. 人际交往的43个绝招
  3. 太极熊猫服务器怎么都在维护,太极熊猫3月8日战区调整及维护公告
  4. $(...).modal is not a function的解决办法
  5. linux kernel setup_arch
  6. Java面试题Tomcat的优化经验
  7. 【GIVENCHY商务休闲风格/白色/100%精梳棉/撞色拼接领/长袖衬衣】玛萨玛索男装网购商城...
  8. C#设计模式之桥接模式(Bridge Pattern)
  9. uniapp正则校验
  10. AF多尺度孔隙处理软件2D 多孔介质材料建模