光栅图形学-画直线经典算法
光栅图形学算法-画直线算法
如果对这些算法感兴趣,可以去查阅算法的详细介绍,这里只是用伪代码来描述这些算法。
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;}}
光栅图形学-画直线经典算法相关推荐
- 计算机图形学 Bresenham直线生成算法
bresenham算法是一种光栅化的直线生成算法,是计算机图形学目前使用广泛的直线扫描转换算法,具体逻辑很简单,就是描点.所以bresenham的算法研究实际上是研究目标点的选择. 实验环境: ope ...
- 图形学(2)光栅图形学的直线绘制(上)
本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明.李振波两位老师,感谢他们录制该门课程供大家学习! 光栅图形学 为适应光栅显示器,需发展一套和他相适应的算法来处理.显 ...
- 图形学(3)光栅图形学的直线绘制(下)
本模块内容绝大部分是在慕课上看中国农业大学网客时的笔记,因此算作转载,在此鸣谢赵明.李振波两位老师,感谢他们录制该门课程供大家学习! Bresenham算法 前两种算法把效率提高到了整数加法级别,只讲 ...
- 【计算机图形学】壹 · 光栅图形学之直线段的扫描转换算法
有两点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 ...
- 计算机图形学直线算法论文,《计算机图形学》中直线生成算法的教学心得
摘要:<计算机图形学>是计算机科学与技术专业一门重要的专业课,其中直线生成算法是教学重点之一.该文通过分析几种直线生成算法的特点,阐述了理论教学和实践教学的重点和难点,总结了教学的体会和心 ...
- 布兰森汉姆画圆matlab,bresenham算法画直线
实验一名称:基本图形的生成算法 要求:(1)掌握 DDA 生成线段算法 (2)掌握 Bresenham 生成线段算法 (3)掌握生成圆弧算法 1. 代码 (1) Bresenham 画线算法 v 实验 ...
- 在yuv上画线_利用布雷森汉姆算法绘制在YUV图像上画直线
最近,因工作需要,在YUV图像上画直线: 算法1步骤: 1.已知直线的起点和终点: 2. 利用布雷森汉姆算法在两点间画直线: 3. 将该直线上的点的颜色在YUV图像上画出. 布雷森汉姆算法原理参考wi ...
- 计算机图形学E2——OpenGL Bresenham算法画直线
其他计算机图形学实验见 链接 要求 使用Bresemham算法画直线,并且通过鼠标可以实现交互操作 参考代码: 代码1 代码2 代码3(代码好理解) 代码4(讲解很全面) #include<io ...
- 图形学画直线c语言,002计算机图形学之直线画线算法
002计算机图形学之直线画线算法 我们知道直线方程的斜截式是如下的样子: y = kx +b 在显示器上显示直线的话,如果使用如上的方程,每描一个点 需要进行一次浮点乘法,一次浮点加法,和取整操作. ...
最新文章
- c语言交错级数前10项和,怎么求一个交错级数的和,谢谢
- 使GDAL库支持中文路径或中文文件名的处理方法
- [禅悟人生]越忙的人时间越多
- ASP内置对象Request的ServerVariables集合列表
- 如何构建 SaaS 网站的高转化?
- 揭秘视频千倍压缩背后的技术原理之预测技术
- 转:OAUTH协议简介
- windows azure虚拟机创建——快速创建,库模板创建
- Flex利用Datagrid来设置全选和单选
- postgre管理员 无法访问表_PostgreSQL常见问题处理方法
- linux学习笔记:Linux 文件的基本属性
- 打开的文件过多问题排查思路及解决过程
- 错误解决办法:‘NULL’ was not declared in this scope
- Java核心技术卷1:基础知识(原书第10版)
- 西门子主程序调用子程序_西门子S7-200系列PLC子程序的调用方法
- java ffmpeg amr mp3_java利用ffmpeg将amr、caf转mp3格式
- 品优购电商系统 1 - 分布式框架Dubbox
- Mac 10.12安装Go2Shell在资源管理器快速打开Shell并跳转到指定位置
- spring 组建及核心内容的简介(一)
- TMC电机驱动芯片使步进电机的更好用