计算机图形学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相关推荐

  1. 计算机图形学算法详解,计算机图形学裁剪算法详解

    <计算机图形学裁剪算法详解>由会员分享,可在线阅读,更多相关<计算机图形学裁剪算法详解(10页珍藏版)>请在人人文库网上搜索. 1.裁剪算法详解在使用计算机处理图形信息时,计算 ...

  2. GIS地图界面和计算机图形学填充算法

    一 GIS地图界面 GIS程序最常见的界面就是,不同区域被边界隔开,填充为不同的颜色: 如下三个:是超图iServer自带: 京津地区土地利用现状,京津地区人口分布,京津地区地貌分布:用于学习是很好资 ...

  3. 计算机图形学要学什么语言,计算机图形学:算法与实现

    计算机图形学:算法与实现 语音 编辑 锁定 讨论 上传视频 <计算机图形学:算法与实现>一书的出版社是清华大学出版社,出版时间是第1版 (2012年1月1日). 书    名 计算机图形学 ...

  4. 计算机图形学常见算法原理,计算机图形学常用算法及代码大全

    <计算机图形学常用算法及代码大全>由会员分享,可在线阅读,更多相关<计算机图形学常用算法及代码大全(41页珍藏版)>请在人人文库网上搜索. 1.2.1.1 生成直线的DDA算法 ...

  5. 计算机图形学画直线程序豆丁网,计算机图形学DDA生成直线画法程序.doc

    计算机图形学DDA生成直线画法程序 实验一.直线的生成 一.实验目的 掌握DDA直线画法.中点画线法和Bresenham画线法 掌握VC++简单程序设计方法 二.实验内容 根据提供的程序框架,修改部分 ...

  6. 计算机图形学---DDA直线画法c#实现

    计算机图形学-DDA直线画法c#实现 DDA直线画法,即数值微分法,是计算机图形学中直线段扫描转换的经典算法之一,本篇文章将简单介绍DDA算法,并给出c#实现的代码. 一.DDA直线画法 设直线的斜截 ...

  7. 【CAD算法】【计算机图形学】Bezier贝塞尔曲线生成程序(python/numpy实现)[1]

    整个项目,从Bezier曲线的创建,到Coons Patch曲面的实现,再到网格的实现和优化,还有最后对表面的光顺,链接如下: [CAD算法][计算机图形学]Bezier贝塞尔曲线生成程序(pytho ...

  8. 计算机图形学代码3D太阳系,计算机图形学-绘制太阳系.doc

    <计算机图形学-绘制太阳系.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<计算机图形学-绘制太阳系.doc>文档请在天天文库搜索. 1.实验名 ...

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

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

  10. 计算机图形学 裁剪算法源代码,OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc...

    OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分  .<计算 ...

最新文章

  1. CentOS 部署 flask项目
  2. c primer plus--数据和C(第3章)--习题
  3. php integer
  4. linux编写arm执行文件夹,嵌入式ARM-Linux平台上的编译、配置和运行使用
  5. what to look if you want to debug your docsify based website
  6. V-rep学习笔记:vrep中的实用工具
  7. bzoj3140: [Hnoi2013]消毒(二分图)
  8. 10步骤优化SQL Server 数据库性能
  9. CM3计算板安装硬件时钟DS3231
  10. 电子音乐包括电声乐器和计算机音乐,浅谈电子音乐制作的发展方向
  11. RedisUtil - Redis功能介绍,五种数据类型的使用,Spring和Redis的集成
  12. selenium-04-验证码问题
  13. java软件工程师自我评价_电子技术研发工程师简历自我评价填写样本
  14. 九龙擒庄指标源码破译_擒庄系列:庄家难逃该指标,散户屡试不爽的秘籍!(附公式)...
  15. 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(二)
  16. 国美在线php面试题,国美电器面试经验
  17. 【日常实用篇】解决2345压缩软件自带的流氓广告
  18. 以太坊源码系列之miner解析(1)
  19. PC按键精灵读取txt文本出现乱码怎么办?按键精灵手机助手读取txt文本中文变问号怎么办?
  20. oracle ssd加速,评测 | Intel Optane SSD 加速 SmartX 超融合在 Oracle 等场景下的系统性能...

热门文章

  1. 大数据就业前景:大数据分析师是青春饭吗?
  2. 操作系统课程设计之磁盘调度系统的设计与实现c语言
  3. MongoDB University课程M103 Basic Cluster Administration 学习笔记
  4. web前端优化一些看法
  5. 10月24日杨力祥老师谈话有感
  6. 啦啦外卖独立版七牛云配置失败解决方案
  7. 啦啦外卖独立版配送小程序(黑色UI风格)
  8. java 正则表达式 提取ip_使用正则表达式从字符串中提取IP地址
  9. 2021Java面试总结!平安银行java开发面试
  10. 极路由+锐捷校园网小白使用教程