用户坐标、视图坐标、javaawt坐标概念的建立和应用

用户坐标、视图坐标、javaawt坐标概念的建立和应用

ID:8831346

大小:135.50 KB

页数:15页

时间:2018-04-08

用户坐标、视图坐标、javaawt坐标概念的建立和应用_第1页
用户坐标、视图坐标、javaawt坐标概念的建立和应用_第2页
用户坐标、视图坐标、javaawt坐标概念的建立和应用_第3页
用户坐标、视图坐标、javaawt坐标概念的建立和应用_第4页
用户坐标、视图坐标、javaawt坐标概念的建立和应用_第5页
资源描述:

《用户坐标、视图坐标、javaawt坐标概念的建立和应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验1实验报告格式《计算机图形学》实验1实验报告实验题目:用户坐标、视图坐标、Javaawt坐标概念的建立和应用实验内容:掌握用户坐标、视图坐标、Javaawt坐标概念,掌握三类坐标的转换算法。编写自己的算法函数,并形成Java语言程序包。编写程序调用验证之。参考程序:有两个示范程序MyCanvas.java和MyLineDrawApplet.java基本概念:用户坐标:是独立于设备的逻辑坐标,可以是用户用来定义设计对象的各种坐标。视图坐标:是设备相关的坐标,随目标渲染设备不同而不同。Java awt坐标:使用java.awt时的坐标。填充:以已知的某一

2、条线为基准,向周围区域扩展像素,然后对这些像素所在的位置进行着色。 将用户坐标转换为视图坐标实际上是将用户自己设计的逻辑坐标转换为设备相关的坐标,将视图坐标转化为AWT坐标就是将视图坐标按照显示窗口的大小进行缩放。算法设计:功能:用户可根据自己输入的用户坐标,进行视图坐标与awt坐标之间的转换,反向的转换原理与正向相同。此外,该程序还可以进行图形的绘制和填充,如矩形,椭圆等图形。算法1:用户坐标向视图坐标的转换设userMinx、userMaxx分别为用户坐标系x轴的最小值与最大值,userMiny、userMaxy分别为用户坐标系y轴的最小值与最大值;

3、viewMinx、viewMaxx分别为视图坐标系x轴的最小值与最大值,viewMiny、viewMaxy分别为视图坐标系y轴的最小值与最大值。若令(userX,userY)为要转换的用户坐标,(viewX,viewY)为转换后的视图坐标。则它们之间的转换关系为:viewX=viewMinx+(userX-userMinx)/(userMaxx-userMinx)*(viewMaxx-viewMinx);viewY=viewMiny+(userY-userMiny)/(userMaxy-userMiny)*(viewMaxy-viewMiny);算法1实

4、现如下:publicdoubleviewX(doubleuserX){//x坐标的转换doubles=(userX-userMinx)/(userMaxx-userMinx);doublet=viewMinx+s*(viewMaxx-viewMinx);//坐标的平移及压缩returnt;}publicdoubleviewY(doubleuserY){//y坐标的转换doubles=(y-userMiny)/(userMaxy-userMiny);doublet=viewMiny+s*(viewMaxy-viewMiny);//坐标的平移及压缩retur

5、nt;}算法2:视图坐标向awt坐标的转换若令(viewX,viewY)为视图坐标,(x,y)为awt坐标,width、height分别为窗口的宽度和高度,则它们之间的转换关系为:X=viewX*width;Y=viewY*height;算法2实现如下://将视图坐标系的点转换到JavaAWT坐标publicintgetIntX(doubleviewX){return(int)(windowWidth*viewX);//注意视图坐标0-1之间}publicintgetIntY(doubleviewY){return(int)(windowHeight*(

6、1-viewY));//Y轴方向相反}算法3:绘制矩形首先将传入的用户坐标转换为awt坐标,通过对传入的坐标比较,找出矩形左上角坐标(ix0,iy0),并求出矩形的宽度width和高度height,利用Graphics类的方法drawRect(ix0,iy0,width,height)可画出矩形。算法3实现如下:publicvoiddrawRect(doublex1,doubley1,doublex2,doubley2){//从用户的点坐标转换到JavaAWT坐标intix1=getX(x1);intiy1=getY(y1);intix2=getX(x2

7、);intiy2=getY(y2);intix0=(ix1

8、的转换//用户坐标系的二维图形的描画方法,等//用编译命令javac-d.MyC

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

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

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