文档详情

图形图像与音频文件.PPT

发布:2018-08-13约2.5千字共10页下载文档
文本预览下载声明
第 * 页 * 第 * 页 《Java2实用教程(第4版)》 第14章 配合例子源代码一起使用 Power point 制作:耿祥义 张跃平 图形、图像与音频 * 第 * 页 导读 主要内容 绘制基本图形 图形的布尔运算 绘制钟表 绘制图像 播放音频 * 第 * 页 §14.1 绘制基本图形 Component类有一个方法public void paint(Graphics g),程序可以在其子类中重写这个方法。当程序运行时,java运行环境会用Graphicd2D(Graphics的一个子类)将参数g实例化,对象g就可以在重写paint方法的组件上内绘制图形、图像等 . Graphics2D的“画笔”分别使用draw和fill方法来绘制和填充一个图形。 组件都是矩形形状,组件本身有一个默认的坐标系,组件的左上角的坐标值是(0,0)。 例子1绘制了太极图和四边形,效果如图14.2。 * 第 * 页 §14.2 变换图形 有时需要平移、缩放或旋转一个图形。可以使用AffineTransform类来实现对图形的这些操作。例如: AffineTransform trans=new AffineTransform(); 将图形沿顺时针或逆时针以(x,y)为轴点旋转number个弧度 : trans.rotate(60.0*3.1415927/180,100,100); g_2d.setTransform(trans); 例子2旋转椭圆和字符串,效果如图14.3。 * 第 * 页 §14.3 图形的布尔运算 两个图形进行布尔运算运算之前,必须分别用这两个图形创建两个Area区域对象,例如: Area a1 = new Area(T1); Area a2 = new Area(T2); a1就是图形T1所围成的区域;a2就是T2所围成的区域。那么,a1调用add方法: a1.add(a2); 之后,a1就变成a1和a2经过布尔“或”运算后的图形区域。可以用Graphics2D对象g来绘制或填充一个Area对象(区域): g.draw(a1); g.fill(a1); 例子3绘制图形的布尔运算,效果如图14.4。 * 第 * 页 §14.4 绘制钟表 钟表可以显示当前本机的时间。在这里要用到一个数学公式,如果一个圆的圆心是(0,0),那么对于给定圆上的一点(x,y),该点按顺时针旋转α弧度后的的坐标(m,n)由下列公式计算: m = x×cos(α)-y×sin(α) n = y×cos(α)+x×sin(α) 例子4(Example14_4.java , Clock.java )绘制秒针、分针、时针走动的钟表,效果如图14.5。 * 第 * 页 §14.5 绘制图像 1.加载图像 组件调用getToolkit()方法可以返回这个对象的引用。Tollkit类的对象调用方法 Image getImage(String fileNme) 或 Image getImage(File file)。 可以返回一个Image对象,该对象封装着参数file(或参数fileName)指定的图像文件。 2.绘制图像 public boolean drawImage(Image img,int x,int y,ImageObserver observer); 参数img是被绘制的Image对象,x、y是要绘制指定图像的矩形的左上角所处的位置,observer是加载图像时的图像观察器 。 例子5绘制了一幅图像,并更改了窗口左上角的咖啡图像 * 第 * 页 §14.6 播放音频 播放音频的步骤如下。 (1)创建File对象 File musicFile=new File(hello.wav); (2)获取URI对象(URI类属于java.net包) URI uri=musicFile.toURI(); (3)获取URL对象 URI url=uri.toURL(); (4)创建音频对象(AudioClip和Applet类属于java.applet包) AudioClip clip=Applet.newAudioClip(url); (5)播放,循环与停止 clip.play() 开始播放, clip.loop() 循环播放, clip.stop() 停止播放。 例子6(Example14_6.java ), AudioClipDialog.java在应用程序中播放音频,界面效果如图14.7 * 第 * 页 §14.7 应用举例 1.制作JPG图像文件 制作
显示全部
相似文档