java程序设计电子教案和教学指南第8章-图形图像处理_第1页
java程序设计电子教案和教学指南第8章-图形图像处理_第2页
java程序设计电子教案和教学指南第8章-图形图像处理_第3页
java程序设计电子教案和教学指南第8章-图形图像处理_第4页
java程序设计电子教案和教学指南第8章-图形图像处理_第5页
已阅读5页,还剩42页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章Java 图形图像处理Java8.1 简单图形 1.在Java Applet中绘制直线 坐标系: 以整个屏幕的左上角为坐标原点(0,0),以像素为单位,横轴顺序向右延伸。纵轴顺序向下延伸。 8.1 简单图形 1.在Java Applet中绘制直线 在AWT类库中,Graphpics类中定义了许多支持绘图的方法。绘制直线方法: void drawLine(int x1,int y1,int x2,int y2)点(x1,y1)为直线的起点坐标;点(x2,y2)为直线的终点坐标。 8.1 简单图形 2. 绘制矩形 绘制矩形方法:drawRect(int x,int y,int width,i

2、nt height);/ 绘制矩形fillRect(int x,int y,int width,int height);/ 用前景色填充 参数的意义:(x,y)为矩形左上角角点的坐标;width为矩形的宽度,height为矩形的高度。【程序案例8.1】import java.applet.Applet;import java.awt.Graphics;public class Exa8_1 extends Applet public void paint(Graphics g) g.drawLine(30,10,40,90); g.drawLine(60,20,90,100); g.drawR

3、ect(100,20,60,60); g.fillRect(210,20,60,60); 程序运行结果如图8.1所示: 3. 绘制圆角矩形 绘制带圆角的矩形的方法:drawRoundRect(int x,int y,int width,int height, int arcWidth,int arcHeight)fillRoundRect(int x,int y,int width,int height, int arcWidth,int arcHeight)drawRoundRect()和fillRoundRect()分别用来绘制和填充 3. 绘制圆角矩形 绘制带圆角的矩形的方法:drawR

4、oundRect(int x,int y,int width,int height, int arcWidth,int arcHeight)fillRoundRect(int x,int y,int width,int height, int arcWidth,int arcHeight)参数的意义:(x,y)为矩形左上角角点的坐标;width为矩形的宽度,height为矩形的高度;arcWidth和arcHeight分别为圆角的宽度和高度。3. 绘制圆角矩形 绘制带圆角的矩形的方法:drawRoundRect(int x,int y,int width,int height, int arc

5、Width,int arcHeight)fillRoundRect(int x,int y,int width,int height, int arcWidth,int arcHeight)参数的意义: 如果想得到一个较为扁平的圆角,可以取数值大些;否则,数值取小些即可。 【程序案例8.2】import java.applet.Applet;import java.awt.Graphics;public class Exa8_2 extends Applet public void paint(Graphics g) g.drawRoundRect(30,10,100,80,20,20); g

6、.fillRoundRect(160,10,100,80,30,20); 程序运行结果如图8.2所示:4. 绘制弧线 绘制弧线的方法:drawArc(int x,int y,int width,int height, int startAngle,int arcAngle) 参数的意义:点(x,y)为弧线的左上角坐标;width和height为圆弧的宽度和高度;startAngle为圆弧的起始角度,起始角指定了圆弧的起始位置;4. 绘制弧线 绘制弧线的方法:drawArc(int x,int y,int width,int height, int startAngle,int arcAngle

7、) 参数的意义:arcAngle为圆弧的角度,圆弧的角度确定了圆弧的大小,取正(负)值为逆(顺)时针方向,当绘制的弧线的角度大于等于360度时,弧线便变成了一个完整的椭圆。 【程序案例8.3】import java.applet.Applet;import java.awt.Graphics; import java.awt.Color;public class Exa8_3 extends Applet public void paint(Graphics g) g.setColor(Color.red); g.drawArc(10,40,40,80,0,180); g.drawArc(80

8、,5,40,80,180,180); g.setColor(Color.blue); g.fillArc(100,0,100,100,0,-90); 程序运行结果如图8.3所示:5. 绘制椭圆 绘制椭圆的方法:drawOval(int x,int y,int width,int height) 点(x,y)为椭圆的横轴长度和纵轴的长度,width为椭圆沿x轴的宽度,height为椭圆沿y轴的高度圆的绘制: 调用rawOval()设置椭圆的宽度和高度相等,即得圆。 5. 绘制椭圆 绘制椭圆的方法:drawOval(int x,int y,int width,int height) 【程序案例8.

9、4】import java.applet.Applet;import java.awt.Graphics;import java.awt.Color;public class Exa8_4 extends Applet public void paint(Graphics g) g.setColor(Color.red); g.drawOval(20,20,80,30); g.setColor(Color.blue); g.fillOval(130,10,50,50); 程序运行结果如图所示:6. 绘制多边形 方法drawPolygon()和方法fillPolygon()分别用来绘制和填充多边

10、形: drawPolygon(int xpoints,int ypoints, int npoints);fillPolygon(int xpoints,int ypoints,int npoints); 6. 绘制多边形 多边形的多条边分别用整型参数数组表示x坐标和y坐标,整型参数npoints表示多边形顶点的个数,它等于数组xpoints的长度。 drawPolygon(int xpoints,int ypoints, int npoints);fillPolygon(int xpoints,int ypoints,int npoints); 【程序案例8.5】import java.ap

11、plet.Applet;import java.awt.Graphics;import java.awt.Color;public class Exa8_5 extends Applet int pX1=10,30,40,50,70,50,40,30,10; int pY1=40,35,10,35,40,50,75,50,40; int pX2=90,110,120,130,150,130,120,110,90; int p1=9;public void paint(Graphics g) g.setColor(Color.blue); g.drawPolygon(pX1,pY1,p1); g

12、.setColor(Color.red); g.fillPolygon(pX2,pY1,p1); drawPolygon()不能自动形成封闭的多边形,必须保证第一个顶点与最后一个顶点的坐标相同;fillpolygon()方法则不需要这样做。 程序运行结果如图所示:8.2 画布(Canvas) 画布类Canvas继承于Component类,类Canvas或者其子类的一个实例即为画布 。 画布是一个可以绘画的组件,有自己的Paint()方法,能响应鼠标和键盘事件。 【程序案例8.6】import java.applet.Applet;import java.awt.*;import java.aw

13、t.Color;public class Exa8_6 extends Applet public void init() Canv c=new Canv(); c.setBackground(Color.yellow); c.setSize(100,250);/设置画布大小 add(c); class Canv extends Canvas/设置画布的子类 public void paint(Graphics g) int pX1=10,30,40,50,70,50,40,30,10; int pY1=40,35,10,35,40,50,75,50,40; int pX2=30,50,60,

14、70,90,70,60,50,30; int p1=9; g.setColor(Color.blue); g.drawPolygon(pX1,pY1,p1); g.setColor(Color.red); g.fillPolygon(pX2,pY1,p1); 程序运行结果如图所示:8.3 在Applet中加载图像 当载入本地计算机上的图像文件时可采用以下方式:Image getImage(URL url,String name);需要指明图像文件的基地址和图像的文件名称需要指明图像文件的基地址和图像的文件名称8.3 在Applet中加载图像 当载入本地计算机上的图像文件时可采用以下方式:Ima

15、ge getImage(URL url,String name);如果图像文件和Applet位于同一个目录下面,就可以通过getCodeBase()方法获得地址。 若图像文件和包含Applet的HTML文件位于同一个目录下面,可以使用getDocumentBase()获得基地址。 【程序案例8.7】import java.awt.*;import java.awt.image.*;import java.applet.Applet;public class Exa8_7 extends AppletImage imgObj;类Exa8_7是Applet的子类声明一个Image对象用于指明需要载

16、入的图像public void init()imgObj=getImage(getDocumentBase(),ZW.GIF);public void paint(Graphics g)g.drawImage(imgObj,50,20,this); init()方法通过Applet提供的getImage方法获得需要载入的图像在paint方法中通过drawImage方法将上面载入的图像显示出来public void init()imgObj=getImage(getDocumentBase(),ZW.GIF);public void paint(Graphics g)g.drawImage(im

17、gObj,50,20,this); this指当前显示图像的容器对象对应的HTML文件内容如下: 程序运行结果如图所示:8.4 在Applet中加载数字音频 目前Java支持的音频文件格式主要有AIFF、AU、WAV、MIDI、RMF等; 音质可为8位或6位的单声道和立体声,采样频率从8kHz到48kHz。 8.4 在Applet中加载数字音频 播放方式:1. 通过Applet类的play方法。当播放本地计算机上的声音文件时调用格式如下: void play(URL url,String name);1)当声音文件和applet文件存放在同一目录下时,可以通过方法 getCodeBase()获

18、得基地址。2)当声音文件和包含Applet的HTML文件位于同一个目录下面时,可以通过方法getDocumentBase()获得基地址。 【程序案例8.8】import java.awt.Graphics;import java.applet.Applet;public class Exa8_8 extends Appletpublic void paint(Graphics g) g.drawString(音乐欣赏,20,30);play(getDocumentBase(),music.au); 播放当前路径下的music.au声音文件对应的HTML文件Audio.HTML内容如下: 程序运行结果如图所示:问题:1.play()方法只能将声音播放一次。2.调用play()方法装载并播放声音文件时,若找不到指定的声音文件,则无法听到声音,但不会产生异常。8.4 在Applet中加载数字音频 播放方式:2.通过AudioClip类中的方法播放。 AudioClip类包含在java.applet类库中,其播放功能更为强大。为了得到AudioClip对象,可以调用Applet类中的getAud

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论