计算机图形学:DDA(数值微分)画线法
DDA(Digital Differential Analyzer)是计算机图形学中常用的画线方法,比直接套用直线方程的效率要高
#include<stdlib.h>
#include<math.h>inline int round(const float a){return int(a+0.5);}void lineDDA(int x0,int y0,int x1,int y1)
{int dx=x1-x0int dy=y1-y0;int steps;//执行的步数//将长的那端作为步数 if(fabs(dx)>fab(dy)) {steps=fabs(dx);}else {steps=fab(dy);} //算出增量x_increment=float(dx)/steps;y_increment=float(dy)/steps;float x=x0,y=y0;setPixel(round(x),round(y));//根据增量逐个画出像素点for(int k=0;k<steps;++k)//迭代绘制每个对应的点{x+=x_increment;y+=y_increment;setPixel(round(x),round(y));}
}
计算机图形学:DDA(数值微分)画线法相关推荐
- 【计算机图形学】中点画线法实现任意斜率直线的绘制
[计算机图形学]中点画线法实现任意斜率直线的绘制 一.中点画线法原理简介 1.建立基础 中点画线法的建立基础是数值微分画线法(DDA),其作为改进算法,沿用了DDA算法的增量思想,针对影响DDA算法效 ...
- 图形学画直线c语言,002计算机图形学之直线画线算法
002计算机图形学之直线画线算法 我们知道直线方程的斜截式是如下的样子: y = kx +b 在显示器上显示直线的话,如果使用如上的方程,每描一个点 需要进行一次浮点乘法,一次浮点加法,和取整操作. ...
- 【计算机图形学】中点画线法实现焦点在x、y轴上的椭圆绘制
[计算机图形学]中点画线法实现焦点在x.y轴上的椭圆绘制 一.中点画线法原理简介 1.建立基础 中点画线法的原理介绍见直线绘制的博文中点画线法实现任意斜率直线的绘制.基本思路是以下一点在椭圆外/内的位 ...
- 画毛毛虫代码计算机图形学,计算机图形学 实验 数值微分(DDA)法、中点画线法、Bresenham算法.doc...
文档介绍: 实验名称数值微分(DDA)法.中点画线法.Bresenham算法实验时间年月日专业姓名学号预****操作座位号教师签名总评一.实验目的:1.了解数值微分(DDA)法.中点画线法.Brese ...
- 计算机图形学画直线程序豆丁网,计算机图形学DDA生成直线画法程序.doc
计算机图形学DDA生成直线画法程序 实验一.直线的生成 一.实验目的 掌握DDA直线画法.中点画线法和Bresenham画线法 掌握VC++简单程序设计方法 二.实验内容 根据提供的程序框架,修改部分 ...
- 计算机图形学---DDA直线画法c#实现
计算机图形学-DDA直线画法c#实现 DDA直线画法,即数值微分法,是计算机图形学中直线段扫描转换的经典算法之一,本篇文章将简单介绍DDA算法,并给出c#实现的代码. 一.DDA直线画法 设直线的斜截 ...
- 平移计算机图形学代码注释,求代码注释:计算机图形学的OpenGL画四面体。高手来吧。争取每句都注释下。谢谢...
求代码注释:计算机图形学的OpenGL画四面体.高手来吧.争取每句都注释下.谢谢 答案:3 信息版本:手机版 解决时间 2018-12-20 05:00 已解决 2018-12-20 01:58 求 ...
- 图形学--(中点画线法+Bresenham画线算法)
编程环境:codeblocks+EGE库 用到的函数:putpixel(int x1,int y1,int color) 用某种颜色打亮一个坐标点. 这俩种算法都是用来在计算机上画一条直线的,那么我 ...
- 计算机图形学第一次上机——中点线算法和中点圆算法
计算机图形学第一次上机实验 课程实验报告 目录 计算机图形学第一次上机实验 课程实验报告 一.实验目的 二.实验环境 三.实验内容 1.中点线算法 2.中点圆算法 四.实验心得 附录:程序源代码 一. ...
- 图形学画直线c语言,计算机图形学:3种画直线算法(转)
//--------------------------------------------------------------------- //绘制直线的DDA算法基本函数 //--------- ...
最新文章
- sql server 数据库模型 备份 恢复 总结 备份脚本
- BYOD革命挑战企业IT安全
- 利用RMAN检测数据库坏块的脚本
- addslashes 及 其他 清除空格的方法是不安全的
- 【电路】KiCad-Pcbnew-建BGA形式的Footprint
- ActiveMQ broker 集群, 静态发现和动态发现
- 改进 网站资源探测工具(添加代理)
- HandlerMappings
- css html 双面打印_从 Linux 命令行进行打印 | Linux 中国
- PHP汉字转拼音的类
- go语言ATM小案例
- python生日快乐代码简单_Python编程代码:当你的亲人朋友生日时,给他运行这个程序,生日快乐弹窗!...
- 使用Mono.Cecil对MSIL进行注入
- C# PDF的创建,替换文本,插入图片
- 金融量化数据接口API汇总
- 怎么觉得自己越来越好看了
- java springboot 商城系统源码
- 计算机认知矫正发展史,计算机认知矫正疗法对儿童认知功能的影响.pdf
- (半平面交)POJ2451Uyuw‘s Concert
- Linux 文件彻底删除工具