资源描述:
《计算机图形学dda算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、DDA算法DDA算法(DigitalDifferentialAnalyzer),又称数值微分法,是计算机图形学中一种基于直线的微分方程来生成直线的方法。目录1算法思想2算法描述3代码实例1、算法思想直线的基本微分方程为:设直线通过点和,则直线方程可表示为:如果已知第点的坐标,可用步长和得到第点的坐标为:或如下图:将算得的直线上每个点的当前坐标,按四舍五入得到光栅点的位置。2、算法描述DDA算法的C语言描述如下。当时,实现代码:voidDDALine(intx0,inty0,intx1,inty1,intcolor){<
2、divclass="text_piclayoutright"style="width:220px;padding-left:20px;"data-layoutintx;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;
3、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;}}任意斜率代码实现如下:?12345678910111213voidDDALine(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);elsen=abs(dy);xinc=
4、(float)dx/n;yinc=(float)dy/n;x=(float)x0;y=(float)y0;for(k=1;k<=n;k++){1415161718Drawpixel(int(x+0.5),int(y+0.5),color);x+=xinc;y+=yinc;}}3、代码实例编辑Java代码?12345678910111213//代码KeyGenerator kg = KeyGenerator.getInstance("AES"); //获取密匙生成器kg.init(256); //初始化//DES算法必须
5、是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");141516171
6、8192021byte [] 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.上海交通大学精品课程·计算机图形学·DDA算法.上海交通大学计算机
7、系[引用日期2013-05-10].2.张义宽.计算机图形学.西安:西安电子科技大学出版社,2004.