11.图形、图像以及动画.doc

上传人:枫** 文档编号:547951774 上传时间:2023-05-30 格式:DOC 页数:12 大小:83.50KB
返回 下载 相关 举报
11.图形、图像以及动画.doc_第1页
第1页 / 共12页
11.图形、图像以及动画.doc_第2页
第2页 / 共12页
11.图形、图像以及动画.doc_第3页
第3页 / 共12页
11.图形、图像以及动画.doc_第4页
第4页 / 共12页
11.图形、图像以及动画.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《11.图形、图像以及动画.doc》由会员分享,可在线阅读,更多相关《11.图形、图像以及动画.doc(12页珍藏版)》请在金锄头文库上搜索。

1、第十二章 图形和图像以及动画 1、图形 2、图像 3、动画4、Java的声音功能(可选项)一、图形 1、Java的图形坐标系统 Java的坐标使用像素来作为度量单位。超始坐标0,0是在该applet窗口的左上角处。X坐标的值从0,0点开始向右逐渐增大,y坐标则沿着向下的方向增大。Jdk1.2以前的版本在graphics 里的x,y是不可以出现小数的,所有的像素值都是整数。 2、Point类 该类是形容一个图形坐标系统上的一个点。构造方法如下: Point() 构造一个默认值为(0, 0)的点; Point(int x , int y) 构造一个横纵座标初值为x和y的点; Point(Point

2、 p) 以p构造一个点。 成员变量:x:横座标;y:纵座标。 一般方法: void move(int x, int y) 移动到坐标(x, y); Point1.java 3、Graphics类 大多数基本的绘图操作是在类Graphics中定义的方法,它是java.awt包的一部分。这个类的对象表示了一个可以在里边绘制某些内容的环境,它可以是一个小应用程序窗口(如,我们在Applet那一章用到的drawString方法)、图形用户界面的一部分或者是一个打印机。 文本并不是我们能够使用Graphics类来绘制的唯一东西。我们还可画直线、椭圆、圆、弧、矩形和其他多边形。 (1)直线 drawLin

3、e()方法是用来在两个点之间画一条直线。该方法接收四个参数:起点的x和y坐标以及终点的x和y坐标,线的宽度被设定成一个像素的大小。 drawLine(x1,y1,x2,y2) (2)矩形 drawRect(x, y, w, h) 绘制一个空心矩形; fillRect(x, y, w, h) 绘制一个实心矩形; 上面两个方法都接收四个参数:矩形的左上角的x和y坐标、矩形的宽度和高度。 drawRoundRect(x, y, w, h, rx, ry) 绘制一个空心的圆角矩形; fillRoundRect(x, y, w, h, rx, ry) 绘制一个实心的圆角矩形。 上面两个方法都接收六个参数

4、:矩形的左上角的x和y坐标、矩形的宽度和高度、圆角的宽度和高度(是一个外接圆)。 (3)多边形 drawPolygon(int x, int y, int numPoints) fillPolygon(int x, int y, int numPoints) 多边形的多个顶点坐标参数数组(x,y)指定,x是所有顶点横坐标的集合,y是所有顶点纵坐标的集合,参数numPoints指定x和y的个数(即,多边形顶点的个数)。 GraphicsDraw.java 练习: 转动的三角。 T1201.java (4)椭圆drawOval(int x, int y, int w, int h)fillOval

5、(int x, int y, int w, int h)椭圆画在一个左上角坐标为(x, y)、宽度和高度为(w, h)的矩形中,如果要是画圆,我们把w,h设为一样,即将其外接矩形指定为正方形即可。 (5)圆弧drawArc(int x, int y, int w, int h, int st, int sw)fillArc(int x, int y, int w, int h, int st, int sw) 圆弧画在一个左上角坐标为(x, y)、宽度和高度为(w, h)的矩形中。圆弧的起点是st,经过sw指定的角度距离,角度按度数指定。角度为零,在水平线上,即时钟3点钟的位置。如果sw值为正

6、值,按逆时针方向绘制圆弧;如果sw值为负值,则按顺时针方向画圆弧。如,画一个3点到6点的逆时针圆弧,如下:fillArc(100,100,200,200,0,270) (6)复制和清除 copyArea(x, y, w, h, mx, my) copyArea()方法接收六个参数:要复制的矩形区域的x,y坐标、该区域的宽度和高度、在显示某个区域的一个备份之前要从该区域移动的水平和垂直间距,它们是以像素为单位。如:将一个100*100像素的区域复制到它右方50个像素、下方25个像素的区域上,如下: copyArea(0,0,100,100,50,25) 方法clearRect()使用了与fill

7、Rect()方法相同的四个参数,它用当前窗口的背景色来填充这个矩形区域,效果就好象是擦除了该区域的东西。 (7)限定作图区域 clipRect(int x, int y, int width, int height) 该方法接收四个参数,将作图区域限定在起始点坐标(x, y),width宽和height高的一个矩型中。 GraphicsDraw1.java (8)设置颜色和字体 setBackground(Color.pink) 设置当前窗口的背景色; setForeground(Color.blue) 设置当前窗口的前景色; setColor() 设置“画笔”的颜色; getColor()

8、setFont() 设置“画笔”的字体。 (9)设定画图模式 画图模式决定了对象如何在窗口中画图。默认时,新输出的信息将覆盖窗口上先前存在的内容,然而,使用setXORMode()可以使用新的对象与窗口异或: void setXORMode(Color xorColor) 这里,画对象时,xorColor指定颜色将与窗口异或,XOR模式的优点是无论用什么颜色画对象,新对象总是保证看得见。为了返回覆盖模式,调用下面的方法: void setPaintMode() 通常,对一般的输出都用覆盖模式,特殊目的才用XOR模式。 GraphicsDraw2.java (10)改变坐标值translat(1

9、0,10)它改变了一个坐标的值:如果你以前的x 和y的值是0,0如果你调用了translat以后就会把x和y的值改变。(很少使用) 4、Dimension对象 我们可以通过调用窗口对象的getSize()方法,获得得窗口的当前尺寸。该方法返回窗口的尺寸,值则封装在Dimension对象中,是该对象的两个成员变量。 int height 高度; int width 宽度;构造方法:Dimension() 构造一个width,height的值分别是0;Dimension(Dimension f) 通过另一个Dimension的对象把w,h的值传进来;Dimension(int width,int

10、height) 确定width,和height的大小。其他方法:(1)Dimension(ff).equals(Diemsion f) 判断Dimension对象的值是否相等,实际上是指,width,height两个值是否相等;(2)getSize() 它是指获得Dimension对象的width,height的值;(3)getHeight()(4)getWidth()(5)setSize(Dimension f) 它是指把一个已好的对象的值去初始化另一个对象;(6)setSize(double f,double l)(7)setSize(int f,int f)(8)toString() 用

11、一个点去调用他,将返回这个点的信息,你再用StringBuffer 输出来就可以看到这个点的详细情况; 5、FontMetrics类 Java支持多种字体,对大多数字体来说,字符的大小是不一样的-大多数字体的字符有一定的比例,也即不同的字体某个字符的高度、伸长部分(字符的悬挂部分)和水平线之间的空白是变化的。此外,字体点阵的大小是可以修改的。如果我们需要确切的知道某种字体的高度和宽度,就需要使用FontMetrics类。 几个常用术语: Height:字体中最高的字符从上端到下端的高度; Baseline:字符的底端对齐的线; Ascent:从基线到字符顶端的距离; Descent:从基线到字

12、符底部的距离; Leading:一行文本底部到另一行文本顶端之间的距离; 构造方法: FontMetrics(Font fnt) 由于该类是抽象类,不能直接使用new关键字创建,可以调用Component类的方法:FontMetrics fm = getFontMetrics(fnt); fnt是Font类的实例。 常用方法: int StringWidth(String str) 返回str指定的字符串的宽度; int byteWidth(byte b, int start, int numBytes) 返回数组b中存储的numBytes个字符的宽度。字符串的初始位置在start; int

13、charWidth(char c, int start, int numChars) 返回数组c中存储的numChars个字符的宽度。字符串的初始位置在start; int charWidth(char c) 返回c的宽度; int charWidth(int c) int getAscent() 返回字体中最大的头部(上半截); int getDescent() 返回字体中最大的尾部; Font getFont() 返回字体;int getHeight() 返回一行文本的高度值,这个值可被用于控制在窗口中输出多行文本; int getLeading() 返回行间距; int getMaxAd

14、vance() 返回最宽字符的宽度。如果这个值不可得,返回-1; int getMaxAscent() 返回最大头部; int getMaxDescent() 返回最大尾部; int getWidths() 返回最前面256个字符的宽度; String toString() 返回调用对象的字符串形式。练习: 自动居中显示字符串。 Dimension1.java 二、图像 Java提供了对“成像”技术(图形图像的显示和处理)的支持。本节主要讲述AWT的Image类和java.awt.image包。 图像是Image类的对象,该类是java.awt包的一部分。图像是一个“矩形”的图形对象。通过使用java.awt.image包中的类,可以实现对图像的操作。java.awt.image定义了大量的成

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号