计算机图形实验3实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机图形学》实验3实验报告 实验题目:直线(光栅化)实数型Bresenham算法 在用户坐标系和Java AWT坐标系下显示图像 实验内容:1 直线(光栅化)实数型Bresenham算法原理及程序。 2 直线(光栅化)DDA算法原理及程序。 3 在用户坐标系和Java AWT坐标系下显示图像的算法原理及实现。 写程序调用验证之。 参考资料:1 课件:光栅图形生成算法.PPT 2 Bresenham算法演示程序已经在MyCanvas包里,DDA算法applet演示程序DDA.java 3 有一个示范程序imageDrawApplet.java 基本概念: 直线(光栅化):画一条从(x1, y1)到(x2, y2)的直线,实质上是一个发现最佳逼近直线的像素序列、并填入色彩数据的过程。这过程称为直线光栅化。 Bresenham算法:Bresenham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在 n 维光栅上最接近的点。这个算法只会用到较为快速的整数加法、减法和位元移位,常用于绘制电脑画面中的直线。 DDA算法:DDA算法(Digital Differential Analyzer),又称数值微分法,是计算机图形学中一种基于直线的微分方程来生成直线的方法。 算法设计:(详细叙述自己设计的Bresenham算法以及程序的功能、不同坐标系下图像显示的算法) Bresenham算法: 基本原理:选择的原则是看精确值y与yi及yi+1的距离d1及d2的大小而定。 用坐标为(xi,yi,r)的象素来表示直线上的点,则第 i+1个点只能在C和D中选取。令d1=BC ,d2=DB d1-d2=(yi+1–yi,r)-( yi,r+1-yi+1) =2yi+1–yi,r–(yi,r+1) = 2yi+1–2yi,r–1 令 ε(xi+1)= yi+1–yi,r–0.5 =BC-AC=BA=B-A = yi+1–(yi,r+ yi,r+1)/2 当ε(xi+1)≥0时,yi+1,r= yi,r+1,即选D点,即下个点( xi+1,yi+1 )对应的象素( xi+1, yi+1,r )为( xi+1, yi,r+1 ) 当ε(xi+1)0时,yi+1,r= yi,r,即选C点,即下个点( xi+1,yi+1 )对应的象素( xi+1, yi+1,r )为( xi+1, yi,r ) ε(xi+1)= yi+1–yi,r–0.5 ε(xi+1)≥0时,yi+1,r= yi,r+1 ε(xi+1)0时,yi+1,r= yi,r 程序功能:用DDA算法画出直线,在不同的坐标系下显示图像。 用户坐标系下图像显示算法:定义自己的坐标系,将用户坐标系转换为Java?awt坐标,调用Graphics类的drawImage方法即可。 Awt坐标系下图像显示算法:直接调用Graphics类的drawImage方法即可。 代码: //imageDrawApplet.java //图像显示程序 import java.applet.*; import java.awt.*; import java.net.*; //使用java network 包 import MyCanvas.MyCanvas; //引入自制包中的类MyCanvas //===定义imageDrawApplet类====== public class imageDrawApplet extends Applet { protected Image image; //图像对象 protected URL imageURL; //文件的URL protected String imageFile=熊猫.jpg; //文件路径名 protected MyCanvas m; //定义MyCanvas的对象 public void init() { //初始化 setSize(640, 400); try{ //生成存放图像数据文件的URL imageURL=new URL(getDocumentBase(),imageFile); }catch(MalformedURLException e){}; MediaTracker mt= new MediaTracker(this); //剪辑对象 image=getImage(imageURL); //获取图像 mt.addImage(image,1); //将图像追加到第一个剪辑 try{ mt.waitFor

文档评论(0)

ebitjij + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档