计算机图形学01:直线生成算法(DDA算法)
作者:非妃是公主
专栏:《计算机图形学》
博客地址:https://blog.csdn.net/myf_666
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩文章目录
- 专栏推荐
- 专栏系列文章
- 序
- 算法
- 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)是研究计算机在硬件和软件的帮助下创建计算机图形的科学学科,是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。虽然这个词通常被认为是指三维图形,事实上同时包括了二维图形以及影像处理。
算法
找到一个增长最快的方向,每次增加1,另一个方向增加对应的长度,然后根据DDA算法:
对于x增长快的情况:
对于y增长快的情况:
OpenGL代码
// 数值微分方法绘制直线段
void DDAline(int x0, int y0, int x1, int y1) {int dx = x1 - x0, dy = y1 - y0, epsl, k; // 横向和纵向上的距离float x = x0, y = y0, xIncre, yIncre;if (abs(dx) > abs(dy)) epsl = abs(dx);else epsl = abs(dy);xIncre = (float)(dx) / epsl;yIncre = (float)(dy) / epsl;glBegin(GL_POINTS);for (k = 0; k <= epsl; k++) {glVertex2i((int)(x + 0.5), (int)(y + 0.5)); // 舍入取整x += xIncre; y += yIncre; // 每次叠加一个增量}glEnd();
}
缺点
涉及到大量的浮点数运算,效率较低,不利于硬件实现。
效果图
运行代码后,调用函数,效果如下:
the end……
直线生成算法(DDA算法)到这里就要结束啦~~到此既是缘分,欢迎您的点赞、评论、收藏!关注我,不迷路,我们下期再见!!
计算机图形学01:直线生成算法(DDA算法)相关推荐
- 计算机图形学 Bresenham直线生成算法
bresenham算法是一种光栅化的直线生成算法,是计算机图形学目前使用广泛的直线扫描转换算法,具体逻辑很简单,就是描点.所以bresenham的算法研究实际上是研究目标点的选择. 实验环境: ope ...
- 图形学画直线c语言,002计算机图形学之直线画线算法
002计算机图形学之直线画线算法 我们知道直线方程的斜截式是如下的样子: y = kx +b 在显示器上显示直线的话,如果使用如上的方程,每描一个点 需要进行一次浮点乘法,一次浮点加法,和取整操作. ...
- 计算机图形学-基本图形生成算法
基本图形生成算法 图元扫描转换 直线段扫描转换 圆弧扫描转换 实区域填充 图形的剪裁 图形反走样 消隐 光栅化算法 线段光栅化算法 DDA算法 中点Bresenham画线算法 Bresenha ...
- 计算机图形学实验报告 裁剪,计算机图形学-实验报告三-图形裁剪算法
<计算机图形学-实验报告三-图形裁剪算法>由会员分享,可在线阅读,更多相关<计算机图形学-实验报告三-图形裁剪算法(9页珍藏版)>请在人人文库网上搜索. 1.图形裁剪算法1. ...
- 计算机图形学-扫描转换直线段-直线方程法-DDA算法-中点算法-OPENGL实现-详解
扫描转换直线段 说明与环境配置 环境配置 扫描转换直线段 方法一: 直线方程法 代码描述: 算法比较简单, 暂无代码. 方法二: 数字差分分析DDA算法 代码描述: 方法三: 中点算法 代码描述: 所 ...
- 计算机图形学:直线段的生成算法,VS实现数值微分法和中点Bresenham算法
实验要求: 实现直线段生成的两种方法: 1) 数值微分法 和 2) 中点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 ...
- 计算机图形学(1)基本图形算法
计算机图形学--基本图形算法 光栅图形中点的表示 屏幕坐标系在左上角 地址=(Xmax-Xmin)[每行像素点数]*(Y-Ymin)[行数]+(X-Xmin)[行中位置]+基地址 直线扫描转换算法 假 ...
- 计算机图形学(三种画线算法)
第二章:光栅图形学算法 1.光栅显示器:光栅扫描式图形显示器简称光栅显示器,是画点设备,可看作是一个点阵单元发生器,并可控制每个点阵单元的亮度 2.由来:随着光栅显示器的出现,为了在计算机上处理.显示 ...
最新文章
- android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
- Linux环境中Visual Studio Code 安装配置及其卸载(详细教程)
- 查看linux中的TCP连接数
- api 原生hbase_HBase客户端API
- 急速JavaScript全栈教程
- 鸿蒙2.0操作体验,鸿蒙2.0操作系统正式版-华为鸿蒙2.0操作系统正式版官方预约 v1.0.0-优盘手机站...
- java connection 可以有多个statement 吗,JDBC多线程多个statement共享同一个connection
- i=1,为什么 (++i)+(++i)=6?
- HTML5: 全局属性
- Linux中强大的top命令
- 计算机基础-计算机系统的安装
- JAVA基础语法 - 继承
- 不容错过的Multisim14.0语言设置!!
- Involution Inverting the Inherence of Convolution for Visual Recognition
- 代码设置margintop_如何通过代码设置TextView的Margin参数?
- 计算机程序漏洞用英语怎么说,安全漏洞的英文
- 带宽与速度的换算(表达式+例子)
- php数据结构 链表,php数据结构-单链表
- 幻数java题_幻数
- Bitmap 贴图加工成 PBR 贴图
热门文章