第7章Java图形处理和Java2D课件

PPT
  • 阅读 40 次
  • 下载 0 次
  • 页数 42 页
  • 大小 186.725 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第7章Java图形处理和Java2D课件
可在后台配置第一页与第二页中间广告代码
第7章Java图形处理和Java2D课件
可在后台配置第二页与第三页中间广告代码
第7章Java图形处理和Java2D课件
可在后台配置第三页与第四页中间广告代码
第7章Java图形处理和Java2D课件
第7章Java图形处理和Java2D课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 42
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】第7章Java图形处理和Java2D课件.ppt,共(42)页,186.725 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45199.html

以下为本文档部分文字说明:

第7章Java图形处理和Java2D学习导读Java语言的类库中提供了丰富的绘图方法,其中大部分对图形、文本、图像的操作方法都定义在Graphics类中,Graphics类是java.awt程序包的一部分。本章介

绍的内容包括了颜色、字体处理、基本图形绘制方法、文本处理以及Java2D中Graphics2D提供的基本图形绘制和图形特殊效果处理等方面的内容。课程结构7.1Java图形坐标系统和图形上下文7.2Co

lor类7.3Font类和FontMetrics类7.4常用的绘图方法7.5Java2D简介7.1Java图形坐标系统和图形上下文Java坐标系统Java的坐标原点(0,0)位于屏幕的左上角,坐标度量以象素为单位,水平向右为

X轴的正方向,竖直向下为Y轴的正方向,每个坐标点的值表示屏幕上的一个像素点的位置,所有坐标点的值都取整数,如下图所示。x轴y轴(0,0)xy(x,y)7.1Java图形坐标系统和图形上下文图形上下文(graphicscontext)图形上下文有时也称为图形环境,指允许用户在屏幕上绘制

图形的信息,它由Graphics类封装,可以通过Component类的getGraphics()方法返回获得。图形上下文表示一个绘制图层,如组件的显示区、打印机上的一页、或一个屏幕外图像缓冲区。7.2Color类Color类使用了sRGB(s

tandardRGB,即标准RGB)颜色空间来表示颜色值。颜色由红(R)、绿(G)、蓝(B)三原色构成,每种原色的强度用一个byte值表示,每种原色取值从0(最暗)~255(最亮),可以根据这三种颜色值的不同组合,显示不同的颜色

效果。在Java中Color类定义了13种颜色常量供用户使用,除此之外,用户也可以通过Color类提供的构造函数Color(intr,intg,intb)创建自己需要的颜色。7.3Font类和FontMetrics类Font类可以使用java.awt.Font类创建字体对象Font类的构

造函数为:Font(Stringname,intstyle,intsize);如:Fontfont=newFont(“Serif”,Font.ITALIC,10);7.3Font类和FontMetrics

类例7.1在控制台下输出系统所有的可用字体。程序源代码见ShowAvaliableFont.java,程序运行结果见图7-1。图7-17.3Font类和FontMetrics类FontMetrics类FontMetrics类是一个抽象类,要使用FontMetrics对象,可以通过调用Gra

phics类中的getFontMetrics()方法。FontMetrics定义字体的度量,给出了关于在特定的组件上描绘特定字体的信息。这些字体信息包括了ascent(上升量)、descent(下降量)、leading(前导宽度)和height(高度)。7.3Font类和FontM

etrics类例7.2在框架中央位置显示字符串“JavaProgramming”,并将字体设置为Serif、粗斜体、大小为30,颜色为红色,而将框架背景设置为淡灰色。程序源代码见FontMetricsDemo.java,程序运行结果见图7-2。图7-

27.4常用的绘图方法绘制直线在Java中可以使用下面方法绘制一条直线:drawLine(intx1,inty1,intx2,inty2);参数x1、y1、x2、y2分别表示该直线的起点(x1,y1)和终点(x2,y2

)的坐标值。绘制矩形普通直角矩形drawRect(intx,inty,intwidth,intheight);fillRect(intx,inty,intwidth,intheight);x、y分别表示矩形左上角的x坐标和y坐标,width、height分别表示矩

形的宽和高。圆角矩形drawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight);fillRoundRect(intx,inty,intwidth,intheight

,intarcWidth,intarcHeight);参数arcWidth和arcHeight分别表示圆角弧的水平直径和竖直直径(x,y)arcHeightwidthheight图7-6绘制圆角矩形示意图arcWidth三维矩形draw3DRect(intx,inty,

intwidth,intheight,booleanraised);fill3DRect(intx,inty,intwidth,intheight,booleanraised);这两种方法的参数含义相同,x、y分别表示矩形左上角的x坐标和y坐标,width、height分别表示矩形的宽和高,r

aised为真(True)表示矩形从表面凸起,raised为假(False)表示矩形从表面凹进。7.4常用的绘图方法绘制椭圆drawOval(intx,inty,intwidth,intheight);fillOval(intx,inty,intwidth,intheig

ht);这两种方法的参数含义相同,x、y分别表示该椭圆外接矩形左上角的x坐标和y坐标,width、height分别表示外接矩形的宽和高,如图所示。如果设置外接矩形为正方形,即width和height相等,则可以绘制圆。(x,y)widthhei

ght图7-7绘制椭圆示意图例7.3在框架中绘制直线、矩形和椭圆。程序源代码见DrawImageDemo.java,程序运行结果见图7-3。7.4常用的绘图方法绘制弧形drawArc(intx,inty,intwidth,intheight,intstartAngle,intar

cAngle);fillArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle);其中x、y、width、height参数的含义和drawOv

al()方法的参数含义相同,参数startAngle表示该弧的起始角度,参数arcAngle表示生成角度(从startAngle开始转了多少度),且水平向右方向表示0度,从0度开始沿逆时针方向旋转为正角。heightwidth图

7-9绘制弧形示意图startAngle的度数arcAngle的度数(x,y)绘制多边形和折线段绘制多边形drawPolygon(int[]xPoints,int[]yPoints,intnPoints);fillPolygon(int[]xPoints,int[]yPoints,intnP

oints);其中多边形的顶点是由数组xPoints和yPoints中对应下标的相应元素组成的坐标来指定,数组xPoints存放所有顶点的x坐标,数组yPoints存放所有顶点的y坐标,参数nPoints指定多边形的顶点个数。drawPolygon()方法在绘制多边

形时并不自动关闭多边形的最后一条边,而仅是一段开放的折线。所以,若想画封闭的边框型多边形,不要忘了在数组的尾部再添上一个起始点的坐标。drawPolygon(Polygonp)方法和fillPolygon(Polygonp)

方法也可以用来绘制多边形。这两种方法的参数是一个Polygon类的对象。若想在多边形上增加一个顶点,可以使用addPoint(intx,inty)方法。因此可以通过先创建一个空的Polygon对象,再重复调用addPoint()方法将所有多边形的顶点

加入到创建的Polygon对象中,然后通过调用drawPolygon(Polygonp)方法或fillPolygon(Polygonp)的方式绘制多边形。绘制折线段drawPolygonline(int[]xPoints,int[]y

Points,intnPoints);其中数组xPoints存放所有顶点的x坐标,数组yPoints存放所有顶点的y坐标,nPoints指定折线段顶点的个数。7.4常用的绘图方法例7.4在框架中绘制扇形和星形。程序源代码见DrawArcPolygon.java,程序运行结果见图7-3。图7-47.

5Java2D简介一、Java2DAPIJava2DAPI(ApplicationProgrammingInterface)增强了抽象窗口工具包(AWT)的图形、文本和图像功能,可以创建高级图形库,开发更为强大的用户接口和新型的Java应用程序。Java2

D是Java核心类库的一部分,它包含的包有:•java.awt:包含一般的或比原有类增强的Java2DAPI类和接口;•java.awt.image:用于图像定义和绘制的类和接口•java.awt.colo

r:包含用于颜色空间定义和颜色监视的类和接口;•java.awt.font:包含用于文本布局和字体定义的类和接口;•java.awt.geom:包含所有与几何图形定义相关的类和接口;•java.awt.print:包含用于打印所有基于Java2D的文本

、图形和图像的类和接口。•java.awt.image.renderable:用于图像定义和绘制的类和接口•com.sun.image.codec.jpeg7.5Java2D简介二、Graphics2D简介Graphics2D对象保存了大量用

来确定如何绘制图形的信息,其中大部分都包含在一个Graphics2D对象的6个属性之中,这6个属性分别为:(1)绘制(paint):该属性确定所绘制线条的颜色,以及填充图形的颜色和图案等。用户可以通过setPaint(Paint

p)方法进行该属性值的设置。(2)画笔(stroke):该属性可以确定线条的类型以及粗细,还有线段端点的形状。用户可以通过setStroke(Strokes)方法进行该属性值的设置。(3)字体(font):该属性可以确定所显示字符串的字体

。用户可以通过setFont(Fontf)方法进行该属性值的设置。(4)转换(transform):该属性确定了图形绘制过程中要应用的转换方法,通过指定转换方法可将所画内容进行平移、旋转和缩放。用户可以通过setTransform()方法进行该属性值的设

置。(5)剪切(clip):该属性定义了组件上某区域的边界。用户可以通过setClip(Clipc)方法进行该属性值的设置。(6)合成(composite):该属性定义了如何绘制重叠的几何图形,使用合成

规则可以确定重叠区域的显示效果。用户可以通过setComposite(Compositec)方法来设置该属性的值。7.5Java2D简介三、Graphics2D的图形绘制Graphics2D是Graphics类的子类,也是一个抽象类,不能实例化Graphi

cs2D对象,为了使用Graphics2D,可以通过Graphics对象传递一个组件的绘制方法给Graphics2D对象。方法如下面代码段所示:publicvoidpaint(Graphicsg){Graphi

cs2Dg2=(Graphics2D)g;……}Java2DAPI提供了几种定义点、直线、曲线、矩形和椭圆等常用几何对象的类,这些新几何类是java.awt.geom包的组成部分,包括如Point2D、Line2D、Arc2D、Rectangle2D、Ellipse2D等。每个类都有

单精度和双精度两种象素定义方式,如Point2D.double和Point2D.float,Line2D.double和Lint2D.float等,用这些类可以很容易的绘制基本的二维图形对象。7.5Java2D简介例7.5使用

Graphics2D绘制直线、矩形和椭圆。程序源代码见Graphics2DDemo.java,程序运行结果见图7-5。图7-57.5Java2D简介四、Graphics2D的属性设置1、paint属性paint用于填充绘制图形的颜色或图案,在Java2DAPI中提

供了两种paint属性的填充方式:GradientPaint和TexturePaint。GradientPaint则定义在两种颜色间渐变的填充方式,而TexturePaint是利用重复图像片段的方式定义一种纹理填充方式。我们可以用setPaint()方法设置定义好的填充方

式来并将其应用于绘制图形中。GradientPaint类提供了下面的构造方法来建立颜色渐变方式:①GradientPaint(floatx1,floaty1,Colorcolor1,floatx2,f

loaty2,Colorcolor2);②GradientPaint(floatx1,floaty1,Colorcolor1,floatx2,floaty2,Colorcolor2,booleancyclic);其中构造方法①和②中参数x1、y1指定颜色渐变的起点坐标,x2、y2指定颜色渐变的终

点坐标,填充颜色从color1渐变至color2。构造方法②中参数cyclic为True时,填充方式和构造方法①定义的相同,若cyclic为False,则填充方式为非周期性渐变。③GradientPaint(Point2Dp1,Colorcolor

1,Point2Dp2,Colorcolor2);④GradientPaint(Point2Dp1,Colorcolor1,Point2Dp2,Colorcolor2,booleancyclic);构造方法③的和构造方法①类似,

构造方法④的和构造方法②类似,只是在构造方法③和④中使用了Point2D对象来指定填充颜色渐变的起始(p1)和结束(p2)位置。TexturePaint类的构造方法为:TexturePaint(BufferedImagetxtr,Rectangle2Danchor)。其中t

xtr用来定义一个单位的填充图像的材质,anchor用来复制材质。7.5Java2D简介例7.6使用GradientPaint渐变填充方式和TexturePaint纹理填充方式绘制图形。程序源代码见Paint

Demo.java,程序运行结果见图7-6,使用纹理填充方式绘制图形的填充单元图像见图7-7。图7-6图7-77.5Java2D简介Graphics2D的属性设置2、stroke属性stroke用于在绘制图形

的轮廓时确定线条的形状和粗细,通常使用BasicStroke对象来定义、通过setStroke()方法设定stroke的属性值。BasicStroke定义的特性包括线条宽度、笔形样式、线段连接样式和短划线图案等。使用stroke属性设定图形轮廓的绘制方式时,首先

调用setStroke()方法设定轮廓的绘制方式,然后使用setPaint()方法定义画笔如何绘制该图形,最后使用draw()方法来绘制该图形。在BasicStroke中定义了一组基本的简单图形轮廓的直线绘制和点划线绘制方式,它提供了3种绘制粗线的末端样

式:CAP_BUTT、CAP_ROUND和CAP_SQUARE;以及3种线段连接样式:JOIN_BEVEL、JOIN_MITER和JOIN_ROUND。BasicStroke类提供了下面的构造方法来建立画笔的绘制方式:①BasicStoke();②BasicSt

oke(floatwidth);③BasicStoke(floatwidth,intcap,intjoin);7.5Java2D简介④BasicStoke(floatwidth,intcap,intjoin,floatmiterlimit);⑤BasicStoke(floa

twidth,intcap,intjoin,floatmiterlimit,float[]dash,floatdash_phase);width-此BasicStroke的宽度。此宽度必须大于或等于0.0f。如果将宽度设置为0.0f,则将笔划呈现为可用于目标设备和抗锯齿提示设置的最细线条。ca

p-BasicStroke端点的装饰join-应用在路径线段交汇处的装饰miterlimit-斜接处的剪裁限制。miterlimit必须大于或等于1.0f。dash-表示虚线模式的数组dash_phase-开始虚线模式的偏移量7.5Java2

D简介CAP_BUTT无装饰地结束未封闭的子路径和虚线线段。CAP_ROUND使用半径等于画笔宽度一半的圆形装饰结束未封闭的子路径和虚线线段。CAP_SQUARE使用正方形结束未封闭的子路径和虚线线段,正方形越过线段端点,并延长等于线条宽度一半的

距离。7.5Java2D简介例7.7使用BasicStroke类设定画笔绘制样式。程序源代码见StrokeDemo.java,程序运行结果见图7-8。图7-87.5Java2D简介Graphics2D的属性设置3、composite用于定义绘制重叠图形的绘制方式。可以通

过setComposite()方法来将AlphaComposite对象添加到Graphics2D上下文中,设置图像重叠部分的复合样式。7.5Java2D简介例7.8使用AlphaComposite类设定重叠区域的图形绘制样式。程序源代码见Comp

ositeDemo.java,程序运行结果见图7-9.图7-97.5Java2D简介例7.9使用BasicStroke类设定输出文字的显示样式,并对文字进行TexturePaint方式的填充。程序源代码见TextPaintDemo.java,程序

运行结果见图7-10。图7-107.5Java2D简介GeneralPath类GenealPath类是定义在java.geom包中的类,我们可以使用GeneralPath类来定义复杂的不规则图形的绘制路径。GeneralPath类提供的构造函

数有:①GeneralPath();②GeneralPath(intrule);③GeneralPath(intrule,intinitialCapacity);④GeneralPath(Shapes)。7.5Java2D简介例7.10使用GeneralPath类绘制一张带有笑

脸的小人。程序源代码见GeneralPathDemo.java,程序运行结果见图7-11。图7-117.6本章小结本章介绍了Java中图形和文本的绘制方法,主要包括以下几方面内容:Color类、Font类、FontMetrics类的使用;基本的几何图形如:直线、

矩形、椭圆、弧形和多边形的绘制;Java2DAPI的基本内容;Java2D中Graphics2D的基本内容;在Java2D中如何绘制直线、矩形、椭圆等基本图形。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?