光栅图形学算法-画直线算法

如果对这些算法感兴趣,可以去查阅算法的详细介绍,这里只是用伪代码来描述这些算法。

1.DDA算法
DDA算法依赖于直线的斜截式方程

 n=x2 - x1; //像素点个数k = (y2-y1)/(x2-x1);  //直线斜率 for(int i=1;i<=n;i++){x1 = x1 + 1;y1 = y1 + k;y = int(y + 0.5) //y的值才是点的纵坐标}

2.中点画线算法
中点画线算法依赖直线的一般式方程

n= x2 - x1;//直线的各个参数A = y1 - y2;B = x2 - x1;C = x1 * y2 - x2 * y1;d = 2 * (A * (x1+1) + B * (y1+0.5) + C);for(int i=1; i<=n; i++){  x1 += 1;if(d<0){  y1 += 1;d += (A + B) * 2;}elsed += 2 * A;}

3.Bresenham算法
Bresenham算法集合了以上两个算法的优点。

 n=x2 - x1;dx = x2 - x1;dy = y2 - y1;e = -1 * dx;for(int i=1; i<=n; i++){x1 += 1;e += 2 * dy;if(e > 0){y1 += 1;e -= 2 * dx;}}

光栅图形学-画直线经典算法相关推荐

  1. 计算机图形学 Bresenham直线生成算法

    bresenham算法是一种光栅化的直线生成算法,是计算机图形学目前使用广泛的直线扫描转换算法,具体逻辑很简单,就是描点.所以bresenham的算法研究实际上是研究目标点的选择. 实验环境: ope ...

  2. 图形学(2)光栅图形学的直线绘制(上)

    本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明.李振波两位老师,感谢他们录制该门课程供大家学习! 光栅图形学 为适应光栅显示器,需发展一套和他相适应的算法来处理.显 ...

  3. 图形学(3)光栅图形学的直线绘制(下)

    本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明.李振波两位老师,感谢他们录制该门课程供大家学习! Bresenham算法 前两种算法把效率提高到了整数加法级别,只讲 ...

  4. 【计算机图形学】壹 · 光栅图形学之直线段的扫描转换算法

    有两点P0(x0,y0),P1(x1,y1)P_{0}(x_{0},~y_{0}),~P_{1}(x_{1},~y_{1})P0​(x0​, y0​), P1​(x1​, y1​)确定一条线段L(P0 ...

  5. 计算机图形学直线算法论文,《计算机图形学》中直线生成算法的教学心得

    摘要:<计算机图形学>是计算机科学与技术专业一门重要的专业课,其中直线生成算法是教学重点之一.该文通过分析几种直线生成算法的特点,阐述了理论教学和实践教学的重点和难点,总结了教学的体会和心 ...

  6. 布兰森汉姆画圆matlab,bresenham算法画直线

    实验一名称:基本图形的生成算法 要求:(1)掌握 DDA 生成线段算法 (2)掌握 Bresenham 生成线段算法 (3)掌握生成圆弧算法 1. 代码 (1) Bresenham 画线算法 v 实验 ...

  7. 在yuv上画线_利用布雷森汉姆算法绘制在YUV图像上画直线

    最近,因工作需要,在YUV图像上画直线: 算法1步骤: 1.已知直线的起点和终点: 2. 利用布雷森汉姆算法在两点间画直线: 3. 将该直线上的点的颜色在YUV图像上画出. 布雷森汉姆算法原理参考wi ...

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

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

  9. 图形学画直线c语言,002计算机图形学之直线画线算法

    002计算机图形学之直线画线算法 我们知道直线方程的斜截式是如下的样子: y = kx +b 在显示器上显示直线的话,如果使用如上的方程,每描一个点 需要进行一次浮点乘法,一次浮点加法,和取整操作. ...

最新文章

  1. c语言交错级数前10项和,怎么求一个交错级数的和,谢谢
  2. 使GDAL库支持中文路径或中文文件名的处理方法
  3. [禅悟人生]越忙的人时间越多
  4. ASP内置对象Request的ServerVariables集合列表
  5. 如何构建 SaaS 网站的高转化?
  6. 揭秘视频千倍压缩背后的技术原理之预测技术
  7. 转:OAUTH协议简介
  8. windows azure虚拟机创建——快速创建,库模板创建
  9. Flex利用Datagrid来设置全选和单选
  10. postgre管理员 无法访问表_PostgreSQL常见问题处理方法
  11. linux学习笔记:Linux 文件的基本属性
  12. 打开的文件过多问题排查思路及解决过程
  13. 错误解决办法:‘NULL’ was not declared in this scope
  14. Java核心技术卷1:基础知识(原书第10版)
  15. 西门子主程序调用子程序_西门子S7-200系列PLC子程序的调用方法
  16. java ffmpeg amr mp3_java利用ffmpeg将amr、caf转mp3格式
  17. 品优购电商系统 1 - 分布式框架Dubbox
  18. Mac 10.12安装Go2Shell在资源管理器快速打开Shell并跳转到指定位置
  19. spring 组建及核心内容的简介(一)
  20. TMC电机驱动芯片使步进电机的更好用

热门文章

  1. 2020年CSDN博客之星实时排行榜——热门有你
  2. 策略验证_指标买点分析技法_运用boll布林线指标选择买点
  3. c#获取某月有多少天的方法
  4. linux服务器 openshift,Openshift 指南
  5. 1.2 行列式的性质
  6. 锂电池的电量单位 mAh Wh
  7. Android Sqlite数据库详解
  8. 读书笔记--电力变压器
  9. 哔哩哔哩三倍速播放可用方法
  10. python正则表达式匹配模式_Python与正则表达式[0] - re 模块的正则表达式匹配