c语言dda算法完整实现,计算机图形学DDA算法.doc
计算机图形学DDA算法
DDA算法
DDA算法(Digital Differential Analyzer),又称数值微分法,是HYPERLINK "/view/13769.htm"计算机图形学中一种基于直线的微分方程来生成直线的方法。
目录
1HYPERLINK "/viewhtm#1"算法思想
2HYPERLINK "/viewhtm#2"算法描述
3HYPERLINK "/viewhtm#3"代码实例
算法思想
直线的基本微分方程为:设直线通过点
和,则直线方程可表示为:
如果已知第点的坐标,可用步长
和得到第点的坐标为:
或
如下图:
将算得的直线上每个点的当前坐标,按四舍五入得到光栅点的位置。
算法描述
DDA算法的C语言描述如下。
当
时,实现代码:
voidDDALine(intx0,inty0,intx1,inty1,intcolor)
{
intx;floatdx,dy,y,k;
dx=x1-x0,dy=y1-y0;
k=dy/dx,y=y0;
for(x=x0;x<=x1;x++)
{
Drawpixel(x,int(y+0.5),color);
y=y+k;
}
}
当时,实现代码:
voidDDALine(intx0,inty0,intx1,inty1,intcolor)
{
inty;floatdx,dy,x,k;
dx=x1-x0,dy=y1-y0;
k=dx/dy,x=x0;
for(y=y0;y<=y1;y++)
{
Drawpixel(int(x+0.5),y,color);
x=x+k;
}
}
任意斜率代码实现如下:
HYPERLINK "/viewhtm#"?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
voidDDALine(intx0,inty0,intx1,inty1,intcolor)
{
intdx,dy,n,k;floatxinc,yinc,x,y;
dx=x1-x0;dy=y1-y0;
if(abs(dx)>abs(dy))
n=abs(dx);
else
n=abs(dy);
xinc=(float)dx/n;
yinc=(float)dy/n;
x=(float)x0;y=(float)y0;
for(k=1;k<=n;k++)
{
Drawpixel(int(x+0.5),int(y+0.5),color);
x+=xinc;
y+=yinc;
}
}
3、代码实例HYPERLINK "/viewhtm#"编辑
Java代码
HYPERLINK "/viewhtm#"?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//代码
KeyGenerator kg = KeyGenerator.getInstance("AES"); //获取密匙生成器
kg.init(256); //初始化
//DES算法必须是56位
//DESede算法可以是112位或168位
//AES算法可以是128、192、256位
SecretKey key = kg.generateKey(); //生成密匙,可用多种方法来保存密匙
//加密
Cipher cp = Cipher.getInstance("AES"); //创建密码器
cp.init(Cipher.ENCRYPT_MODE, key); //初始化
String str = "我是需要被加密的明文";
byte [] ptext = str.getBytes("UTF8");
byte [] ctext = cp.doFinal(ptext); //加密
//解密
Cipher cp = Cipher.getInstance("AES"); //创建密码器
cp.init(Cipher.DECRYPT_MODE, key); //初始化
byte [] ptext = cp.doFinal(ctext); //解密
String str = new String(ptext, "UTF8"); //重新显示明文
参考资料
1.HYPERLINK "javascript:void(0)" HYPERLINK "/redirect/4e5fTS/I6q9DqKjKRLK5yauPAR/Sd7gyMcE1M
c语言dda算法完整实现,计算机图形学DDA算法.doc相关推荐
- 计算机图形学算法详解,计算机图形学裁剪算法详解
<计算机图形学裁剪算法详解>由会员分享,可在线阅读,更多相关<计算机图形学裁剪算法详解(10页珍藏版)>请在人人文库网上搜索. 1.裁剪算法详解在使用计算机处理图形信息时,计算 ...
- GIS地图界面和计算机图形学填充算法
一 GIS地图界面 GIS程序最常见的界面就是,不同区域被边界隔开,填充为不同的颜色: 如下三个:是超图iServer自带: 京津地区土地利用现状,京津地区人口分布,京津地区地貌分布:用于学习是很好资 ...
- 计算机图形学要学什么语言,计算机图形学:算法与实现
计算机图形学:算法与实现 语音 编辑 锁定 讨论 上传视频 <计算机图形学:算法与实现>一书的出版社是清华大学出版社,出版时间是第1版 (2012年1月1日). 书 名 计算机图形学 ...
- 计算机图形学常见算法原理,计算机图形学常用算法及代码大全
<计算机图形学常用算法及代码大全>由会员分享,可在线阅读,更多相关<计算机图形学常用算法及代码大全(41页珍藏版)>请在人人文库网上搜索. 1.2.1.1 生成直线的DDA算法 ...
- 计算机图形学画直线程序豆丁网,计算机图形学DDA生成直线画法程序.doc
计算机图形学DDA生成直线画法程序 实验一.直线的生成 一.实验目的 掌握DDA直线画法.中点画线法和Bresenham画线法 掌握VC++简单程序设计方法 二.实验内容 根据提供的程序框架,修改部分 ...
- 计算机图形学---DDA直线画法c#实现
计算机图形学-DDA直线画法c#实现 DDA直线画法,即数值微分法,是计算机图形学中直线段扫描转换的经典算法之一,本篇文章将简单介绍DDA算法,并给出c#实现的代码. 一.DDA直线画法 设直线的斜截 ...
- 【CAD算法】【计算机图形学】Bezier贝塞尔曲线生成程序(python/numpy实现)[1]
整个项目,从Bezier曲线的创建,到Coons Patch曲面的实现,再到网格的实现和优化,还有最后对表面的光顺,链接如下: [CAD算法][计算机图形学]Bezier贝塞尔曲线生成程序(pytho ...
- 计算机图形学代码3D太阳系,计算机图形学-绘制太阳系.doc
<计算机图形学-绘制太阳系.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<计算机图形学-绘制太阳系.doc>文档请在天天文库搜索. 1.实验名 ...
- 计算机图形学直线算法论文,《计算机图形学》中直线生成算法的教学心得
摘要:<计算机图形学>是计算机科学与技术专业一门重要的专业课,其中直线生成算法是教学重点之一.该文通过分析几种直线生成算法的特点,阐述了理论教学和实践教学的重点和难点,总结了教学的体会和心 ...
- 计算机图形学 裁剪算法源代码,OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc...
OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 .<计算 ...
最新文章
- CentOS 部署 flask项目
- c primer plus--数据和C(第3章)--习题
- php integer
- linux编写arm执行文件夹,嵌入式ARM-Linux平台上的编译、配置和运行使用
- what to look if you want to debug your docsify based website
- V-rep学习笔记:vrep中的实用工具
- bzoj3140: [Hnoi2013]消毒(二分图)
- 10步骤优化SQL Server 数据库性能
- CM3计算板安装硬件时钟DS3231
- 电子音乐包括电声乐器和计算机音乐,浅谈电子音乐制作的发展方向
- RedisUtil - Redis功能介绍,五种数据类型的使用,Spring和Redis的集成
- selenium-04-验证码问题
- java软件工程师自我评价_电子技术研发工程师简历自我评价填写样本
- 九龙擒庄指标源码破译_擒庄系列:庄家难逃该指标,散户屡试不爽的秘籍!(附公式)...
- 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(二)
- 国美在线php面试题,国美电器面试经验
- 【日常实用篇】解决2345压缩软件自带的流氓广告
- 以太坊源码系列之miner解析(1)
- PC按键精灵读取txt文本出现乱码怎么办?按键精灵手机助手读取txt文本中文变问号怎么办?
- oracle ssd加速,评测 | Intel Optane SSD 加速 SmartX 超融合在 Oracle 等场景下的系统性能...