- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 特种作业操作证 制冷与空调运行操作作业 实操培训.pdf VIP
- CL01实验室内审检查记录表.pdf VIP
- 幼儿园:实习心得.docx VIP
- (高清版)DB52∕T 895-2014 混凝土砌块用轻质配砖.pdf VIP
- BS EN 10025-6-2004第6部分:技术交付条件用于高屈服强度的扁平产品淬火和结构钢回火的条件.pdf VIP
- 2025法律职业伦理历年试题及答案.doc VIP
- 《房颤诊断和治疗中国指南(2023)》解读PPT课件.pptx VIP
- 40篇短文搞定高考英语3500单词(回顾巩固用).pdf VIP
- 大学生职业生涯规划.pdf VIP
- 2025 公司招聘简章(模板).pdf VIP
原创力文档


文档评论(0)