大学教程(从零开始)_Java图形处理和Java_2D

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

{}
public void paint(Graphics g) { //g.clipRect(50,50,180,180); //画线
g.drawLine(0,0,20,30);
//输出字符串 g.drawString("图形显示",100,30);
//设置颜色
Color c = new Color(255,200,0); g.setColor(c); //设置字体
三维矩形 draw3DRect(int x, int y, int width, int height, boolean raised); fill3DRect(int x, int y, int width, int height, boolean raised);
绘制椭圆
drawOval(int x, int y, int width, int height); fillOval(int x, int y, int width, int height); 例在框架中绘制直线、矩形和椭圆。



CAP_BUTT 无装饰地结束未封闭的 子路径和虚线线段。 CAP_ROUND 使用半径等于画笔宽度 一半的圆形装饰 结束未封闭的子路径 和虚线线段。 CAP_SQUARE 使用正方形结束未封 闭的子路径和虚线线段,正方形越过 线段端点,并延长等于线条宽度一半 的距离。
Graphics2D的属性设置
图7-3

绘制弧形
drawArc(int x, int y, int width, int height, int startAngle, int arcAngle); fillArc(int x, int y, int width, int height, int startAngle, int arcAngle);
Graphics2D简介
Graphics2D对象保存了大量用来确定如何绘制图形 的信息,其中大部分都包含在一个Graphics2D对象 的6个属性之中,这6个属性分别为: (1)绘制(paint) (2)画笔(stroke) (3)字体(font) (4)转换(transform) (5)剪切(clip) (6)合成(composite)
Font f = new Font("TimesRoman",Font.BOLD+ Font.ITALIC,24); g.setFont(f); g.drawString("图形显示",180,30); g.drawLine(20,20,100,50); g.drawLine(20,20,50,100);
课程结构
绘图基础 7.2 绘图 7.3 图像处理基础 7.4 多媒体基础
7.1
7.1 Java图形坐标系统和图形上下文
Java坐标系统
Java的坐标原点(0,0)位于屏幕的左上角,坐标 度量以象素为单位,水平向右为X轴的正方向,竖 直向下为Y轴的正方向,每个坐标点的值表示屏幕 上的一个像素点的位置,所有坐标点的值都取整数, 如下图所示。
如果将宽度设置为 0.0f,则将笔划呈现为可用于目标设备和 抗锯齿提示设置的最细线条。 cap - BasicStroke 端点的装饰 join - 应用在路径线段交汇处的装饰 miterlimit - 斜接处的剪裁限制。miterlimit 必须大于或等于 1.0f。 dash - 表示虚线模式的数组 dash_phase - 开始虚线模式的偏移量
学习导读
Java语言的类库中提供了丰富的绘图方法,其中
大部分对图形、文本、图像的操作方法都定义在 Graphics类中,Graphics类是java.awt程序包的一 部分。 本章介绍的内容包括了颜色、字体处理、基本 图形绘制方法、文本处理以及Java 2D中 Graphics2D提供的基本图形绘制和图形特殊效果 处理等方面的内容。
图7.1 组件的坐标系统
7.1.2字形和颜色
字符串、字符和字节输出
在Graphics类中,Java提供了三个文字输出方
法。 (1)字符串输出方法:drawString (String string, int x, int y) (2)字符输出方法:drawChars (char chars[ ], int offset, int number, int x, int y) (3)字节输出方法:drawBytes (byte bytes[ ], int offset, int number, int x, int y)
7.1.2字形和颜色
Java在Font类中实现对字体的控制,可改变字
体、风格和大小。字体的数量和计算机平台密切 相关,不同计算机上安装的字体差别很大。 Font类的构造方法: Font(String fontName,int style,int size) 例如: Font fn=new Font(“宋体”,Font.PLAIN,12); 其中:常用的字体有宋体,楷体等; 常用的风格:正常(Font.PLAIN)、粗 体(Font.Bold)、斜体(Font.ITALIC)
7.1.2字形和颜色
Color常用方法: setColor(Color
c); 组建类中:setForeground(Color c); setBackground(Color c); getColor();
7.2 绘图
绘制直线
在Java中可以使用下面方法绘制一条直线: drawLine(int x1, int y1, int x2, int y2);//使用当前颜色,在点(x1,
例 在框架中绘制扇形和星形。
图7-4
【例】设置Graphics对象画图,显示结果如图7.1所示。源程 序代码如下:
//程序文件名SimpleGUI.java
import java.awt.*;
import java.applet.*; public class SimpleGUI extends Applet { public void init()
Graphics2D的属性设置
stroke: stroke用于在绘制图形的轮廓时确定线条的形状和 粗细,通常使用BasicStroke对象来定义、通过 setStroke()方法设定stroke的属性值。 BasicStroke类提供了下面的构造方法来建立画笔的 绘制方式:
①BasicStoke (); ②BasicStoke (float width); ③BasicStoke (float width, int cap, int join); ④BasicStoke (float width, int cap, int join, float miterlimit); ⑤BasicStoke (float width, int cap, int join, float miterlimit, float[] dash, float dash_phase); width - 此 BasicStroke 的宽度。此宽度必须大于或等于 0.0f。
7.2.2 Graphics2D类
Graphics2D类继承于Graphics类,提供几何学、坐标
变换、颜色管理以及文本排列等的更高级控制。Graphics2D
类是Java平台上渲染二维图形、文字、以及图片的基础类, 提供较好的对绘制形状、填充形状、旋转形状、绘制文本、 绘制图像以及定义颜色的支持。
g.fillOval(170,170,20,20);
g.setColor(Color.blue);
//圆角矩形
g.drawRoundRect(180,180,40,40,20,20); g.fillRoundRect(200,200,40,40,20,20);
//多边形 int xC[] = {242,260,254,297,242};
7.1.2字形和颜色
Font类的其他常用方法: getStyle(); getSize(); getName(); isPlain(); isBold(); isItalic();
7.1.2字形和颜色
Java在Color类中实现对颜色的控制,可改变前景色和
背景色。 此外,程序员还可以通过调配三原色的比例创建自己的 Color对象。Color类有以下几种常用的构造方法: •Color(float r,float g,float b) 指定三原色的浮点值,每个 参数取值在0.0~1.0之间。 •Color(int r,int g,int b) 指定三原色的整数值,每个参数 取值在0~255之间。 •Color(int rgb) 指定一个整型数代表三原色的混合值,16 ~23比特位代表红色,8~15比特位代表绿色,0~7比特 位代表蓝色。
paint: 用来对要绘制的图形或文字的颜色进行设置。 具体设置是通过它的成员方法setPaint( )和 getPaint( )来实现的。 例如,假设g2是Graphics2D对象,可以用 g2.setPaint(Color.green)语句设置g2的paint属性为绿 色。
Graphics2D的属性设置
x (0,0) x轴
y
(x,y)
y轴
7.1 绘图基础
任何一个图形对象(ponent的子类
)使用java.awt.Grephics类提供的绘图方法就可以 画出线条、矩形、圆形等图形。该方法为: public void paint(Graohics g);
7.1.1 Graphics类
int yC[] = {240,243,290,300,270};
g.drawPolygon(xC,yC,5);
} }
图7.1 简单的图形界面
将例7.1注释的程序语句
// g.clipRect(50,50,180,180); 的注释符号去掉,重新编译执行,可以看见 如图7.2所示的结果。
图7.2 裁剪后的图形界面
transform:


用来时间常用的图形平移、缩放、旋转和斜切等变 换操作。 先用AffineTransform对象,然后调用setTransform ()方法设置transform属性。
y1) 和 (x2, y2) 之间画线。
绘制矩形
普通直角矩形 drawRect(int x, int y, int width, int height); fillRect(int x, int y, int width, int height); 圆角矩形
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);
//矩形
g.drawRect(40,40,40,40); g.fillRect(60,60,40,40);
g.setColor(Color.red);
//3D矩形 g.draw3DRect(80,80,40,40,true);
g.draw3DRect(100,100,40,40,false); g.fill3DRect(120,120,40,40,true); //椭圆 g.drawOval(150,150,30,40);在AWΒιβλιοθήκη 编程接口中,用户通过Paint方法接收
Graphics对象作为参数, 若是使用Graphics2D类,就需要在Paint方法中 进行强制转换。
• Public void paint(Graphics old) •{ • Graphics2D new = (Graphics2D)old; •}

绘制多边形和折线段
绘制多边形 drawPolygon(int[] xPoints, int[] yPoints, int nPoints); fillPolygon(int[] xPoints, int[] yPoints, int nPoints); 绘制折线段 drawPolygonline(int[] xPoints, int[] yPoints, int nPoints);
课程结构?71绘图基础?72绘图?73图像处理基础?74多媒体基础71java图形坐标系统和图形上下文?java坐标系统java的坐标原点00位于屏幕的左上角坐标度量以象素为单位水平向右为x轴的正方向竖直向下为y轴的正方向每个坐标点的值表示屏幕上的一个像素点的位置所有坐标点的值都取整数如下图所示
第7章 Java图形、图像与多媒体
相关文档
最新文档