计算机图形学实验3实验报告.doc

计算机图形学实验3实验报告.doc

ID:61511895

大小:783.00 KB

页数:6页

时间:2021-02-08

计算机图形学实验3实验报告.doc_第1页
计算机图形学实验3实验报告.doc_第2页
计算机图形学实验3实验报告.doc_第3页
计算机图形学实验3实验报告.doc_第4页
计算机图形学实验3实验报告.doc_第5页
资源描述:

《计算机图形学实验3实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《计算机图形学》实验3实验报告实验题目:直线(光栅化)实数型Bresenham算法在用户坐标系和JavaAWT坐标系下显示图像实验内容:1直线(光栅化)实数型Bresenham算法原理及程序。2直线(光栅化)DDA算法原理及程序。3在用户坐标系和JavaAWT坐标系下显示图像的算法原理及实现。写程序调用验证之。参考资料:1课件:光栅图形生成算法.PPT2Bresenham算法演示程序已经在MyCanvas包里,DDA算法applet演示程序DDA.java3有一个示范程序imageDrawApplet.java基本概念:

2、直线(光栅化):画一条从(x1,y1)到(x2,y2)的直线,实质上是一个发现最佳逼近直线的像素序列、并填入色彩数据的过程。这过程称为直线光栅化。Bresenham算法:Bresenham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在n维光栅上最接近的点。这个算法只会用到较为快速的整数加法、减法和位元移位,常用于绘制电脑画面中的直线。DDA算法:DDA算法(DigitalDifferentialAnalyzer),又称数值微分法,是计算机图形学中一种基于直线的微分方程来生成直线的方法。算法设计:(详细叙述

3、自己设计的Bresenham算法以及程序的功能、不同坐标系下图像显示的算法)Bresenham算法:基本原理:选择的原则是看精确值y与yi及yi+1的距离d1及d2的大小而定。用坐标为(xi,yi,r)的象素来表示直线上的点,则第i+1个点只能在C和D中选取。令d1=BC,d2=DBd1-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

4、当ε(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算法画出直线,在不同的坐标系下显示图像。用户坐标系下图像显示算法:定义

5、自己的坐标系,将用户坐标系转换为Java awt坐标,调用Graphics类的drawImage方法即可。Awt坐标系下图像显示算法:直接调用Graphics类的drawImage方法即可。代码://imageDrawApplet.java//图像显示程序importjava.applet.*;importjava.awt.*;importjava.net.*;//使用javanetwork包importMyCanvas.MyCanvas;//引入自制包中的类MyCanvas//===定义imageDrawApplet类

6、======publicclassimageDrawAppletextendsApplet{protectedImageimage;//图像对象protectedURLimageURL;//文件的URLprotectedStringimageFile="熊猫.jpg";//文件路径名protectedMyCanvasm;//定义MyCanvas的对象publicvoidinit(){//初始化setSize(640,400);try{//生成存放图像数据文件的URLimageURL=newURL(getDocumentB

7、ase(),imageFile);}catch(MalformedURLExceptione){};MediaTrackermt=newMediaTracker(this);//剪辑对象image=getImage(imageURL);//获取图像mt.addImage(image,1);//将图像追加到第一个剪辑try{mt.waitForID(1);//等待第一个剪辑就绪}catch(InterruptedExceptione){};m=newMyCanvas(this);//生成MyCanvas的对象}public

8、voidpaint(Graphicsg){//绘图方法/*在用户坐标系下显示图像*/m.myDrawImage(image,0,0,this);/*在JavaAWT坐标系下显示图像*/g.drawImage(image,0,0,this);}}//类imageDrawApplet结束//用DDA算法画直线packag

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。