- 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实验报告书
实验3实验报告格式
《计算机图形学》实验3实验报告
信息:张凯 班级:信息1103 学号:201101010331
实验题目:直线(光栅化)实数型Bresenham算法
在用户坐标系和Java AWT坐标系下显示图像
实验内容:1 直线(光栅化)实数型Bresenham算法原理及程序。
2 直线(光栅化)DDA算法原理及程序。
3 在用户坐标系和Java AWT坐标系下显示图像的算法原理及实现。
写程序调用验证之。
参考资料:1 课件:光栅图形生成算法.PPT
2 Bresenham算法演示程序已经在MyCanvas包里,DDA算法applet演示程序DDA.java
3 有一个示范程序imageDrawApplet.java
基本概念:(详细叙述自己对实验内容的理解)
光栅化:光栅图形显示器可以看作一个像素的矩阵。在光栅显示器上显示的每一种图形,实际上都是具有一种或多种颜色的像素集合。确定最佳逼近图形的像素集合,并用指定属性写像素的过程称为图形的扫描转换或光栅化。
直线光栅化:寻找出最逼近直线的一组像数序列,表示该直线,并且填充色彩数据,这个过程就叫做直线的光栅化。
DDA算法基本原理:舍入法求解最佳逼近;利用微分思想,即每一个点坐标都可以由前一个坐标变化一个增量得到。
Bresenham算法原理:Bresenham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在?n维光栅上最接近的点。这个算法只会用到较为快速的整数加法、减法和位元移位,不会用到除法。?各点选择的原则是看精确值y 与yi及yi+1的距离d1及d2的大小而定。
算法设计:(详细叙述自己设计的Bresenham算法以及程序的功能、不同坐标系下图像显示的算法)
程序功能:用DDA算法画出直线,在不同的坐标系下显示图像。
Bresenham算法:
用坐标为(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
(1)当ε(xi+1)≥0时,yi+1,r= yi,r+1,即选D点,即下个点( xi+1,yi+1 )对应的象素( xi+1, yi+1,r )为( xi+1, yi,r+1 )
(2)当ε(xi+1)0时,yi+1,r= yi,r,即选C点,即下个点( xi+1,yi+1 )对应的象素( xi+1, yi+1,r )为( xi+1, yi,r )
不同坐标系下图像显示的算法:定义自己的坐标系,将用户坐标系转换为Java?awt坐标,调用Graphics类的drawImage方法即可。
代码:(给出和实验内容相关的Java程序和注解,不要辅助代码,否则扣分)
//******线段光栅化的成员变量********
protected Image image; //Java图像类的对象
protected MemoryImageSource mis; //内存图像数据源
protected int pixelWidth; //图像点阵的宽度(像素数)
protected int pixelHeight; //图像点阵的高度(像素数)
protected int[] pixel; //存放图像点的颜色(行优先一维存放)
protected int xoffset; //像素数据窗口内X坐标的偏移
protected int yoffset; //像素数据窗口内Y坐标的偏移
//直线(光栅化)实数型Bresenham算法
public void rasterizeDrawLine(double x1,double y1,double x2,double y2) {
double leftTopx,leftTopy;
//从用户坐标到Java AWT坐标
int ix1=getX(x1);
int iy1=windowHeight-getY(y1); //到窗口下方的像素数
int ix2=getX(x2);
int iy2=windowHeight-getY(y2); //到窗口下方的像素数
if(x1x2){
leftTopx=x1; //左上角的X坐标值设为x1(用户坐标)
xoffset=ix1; //窗口中的偏移量是Java AWT坐标
}
else{
leftTopx=x2; //左上角的X坐标值设为x2(用户坐标)
xof
您可能关注的文档
- 宗仁卿纪念医院地基基础评估报告书.doc
- 宏观及策略报告书 - 天相季度研究动态200548.doc
- 官山个人述职报告书.doc
- 宏观经济、区域经济、交通运输、竞争对手发展动态跟踪分析报告书(2003上半年).doc
- 安顺房地产市场专题报告书.doc
- 定制式固定义齿风险管理报告书.docx
- 定制式义齿调研报告书.doc
- 定岗实习报告书i.doc
- 宜信全国大学生信用认知调研报告书(精华版).docx
- 宜兴市新街小学教育综合督导报告书.doc
- 实验12存储过程设计-大型数据库-浙江财经学院-东方学院-信息-实验报告书-免费分享,请大家评个分!.doc
- 实验3生产管理项目报告书单.doc
- 实验一 eviews软件的基本操作-学生实验报告书.doc
- 实验一 熟悉c语言程序开发环境(有报告书格式).doc
- 实践报告书正文.doc
- 实验七 程序设计和函数练习-大型数据库-浙江财经学院-东方学院-信息-实验报告书-免费分享,请大家评个分!.doc
- 实验任务指导书(实验报告书版).doc
- 实验二 《采用powerdesigner进行过程建模》实验报告书.doc
- 实验室建设与实验实践教学考察调研报告书20130114卡.doc
- 实验室检测能力验证整改报告书范本.doc
文档评论(0)