1.Java2D——图形备忘(Java多媒体)

上传人:平*** 文档编号:47672392 上传时间:2018-07-04 格式:PPT 页数:28 大小:864.63KB
返回 下载 相关 举报
1.Java2D——图形备忘(Java多媒体)_第1页
第1页 / 共28页
1.Java2D——图形备忘(Java多媒体)_第2页
第2页 / 共28页
1.Java2D——图形备忘(Java多媒体)_第3页
第3页 / 共28页
1.Java2D——图形备忘(Java多媒体)_第4页
第4页 / 共28页
1.Java2D——图形备忘(Java多媒体)_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《1.Java2D——图形备忘(Java多媒体)》由会员分享,可在线阅读,更多相关《1.Java2D——图形备忘(Java多媒体)(28页珍藏版)》请在金锄头文库上搜索。

1、Java2D图形大外软件学院(徐)大外软件学院(徐) 主要内容Java2D图形的坐标系统 颜色 Graphics2D类 Java2D基本图形 画笔的粗细、颜色和填充模式 图形的旋转大外软件学院(徐) Java2D图形的坐标系统X轴Y轴(0,0)大外软件学院(徐) RGB色彩模式RGB色彩模式使用RGB模型为图像中每一个像素的 RGB分量分配一个0255范围内的强度值。(0,0,0)是黑色,(255,255,255)是白色,( 255,0,0)是纯红色 (100,0,0)是暗红色,(0,100,0)是暗绿色, (0,0,100)是暗蓝色 (50,50,50)是暗灰色,(150,150,150)是

2、亮一些 的灰色。大外软件学院(徐) Color类Java.awt包下 常量:Color.YELLOW 等 构造方法:Color(int r,int g,int b)构造函数,分别代 表红绿蓝的参数0-255大外软件学院(徐) Graphics2D类表示当前绘画的上下文,即画笔。通过Graphics类 ,你可以画矩形、椭圆以及多边形。而 Graphics2D增强了几何图形渲染概念,提供渲染 任意几何图形的机制。与其类似使用Java 2D API你 能画出任意样式、任意宽度的线,使用任意的纹 理来填充各种几何图形。大外软件学院(徐) Java2D基本图形1直线 使用java.awt.geom包中的

3、Line2D的子类 Line2D.Double创建一个直线对象。如: Line2D line=new Line2D.Double(12,20,100, 90); 创建一条(12,20)到(100,90)直线对象。大外软件学院(徐) Java2D基本图形2矩形 使用java.awt.geom包中的Rectangle2D. Double类来 创建一个矩形对象,如: Rectangle2D rect=new Rectangle2D. Double (50,50,300,50.897); 上述语句创建了一个左上角坐标是(50,50),宽是 300,高是50.987的一个矩形对象。大外软件学院(徐) J

4、ava2D基本图形3圆角矩形 使用java.awt.geom包中的RoundRectangle2D. Double类来创建一个圆角矩形对象: RoundRectangle2D rect_round=new RoundRectangle2D. Double (50,50,300,50,8,5); 上述语句创建了一个左上角坐标是(50,50),宽是 300,高是50,圆角的长轴和短轴分别为8和5的圆 角矩形对象。大外软件学院(徐) Java2D基本图形4椭圆 使用java.awt.geom包中的Ellipse2D. Double类来创 建一个椭圆对象: Ellipse2D ellipse=new

5、Ellipse2D. Double (50,30,300,50);大外软件学院(徐) 练习主体框架public class ShapeFrame extends Frame ShapeCanvas sc = new ShapeCanvas();public ShapeFrame(String s) super(s);setLayout(new BorderLayout();add(sc,BorderLayout.CENTER);setSize(1000,700);setVisible(true);addWindowListener(new WindowAdapter() public void

6、 windowClosing(WindowEvent e)System.exit(0););public static void main(String args)ShapeFrame pf = new ShapeFrame(“图形处理“);大外软件学院(徐) 练习画布和颜色public class ShapeCanvas extends Canvas ShapeCanvas() setBackground(Color.YELLOW);public void paint(Graphics g) /画图大外软件学院(徐) 练习椭圆public void paint(Graphics g) Gra

7、phics2D g2=(Graphics2D)g;Ellipse2D ellipse=new Ellipse2D.Double (20,30,400,200); g2.setColor(Color.green);g2.draw(ellipse);大外软件学院(徐) 练习其他图形/ 直线 前两个参数是起始点,后两个参数是结束点Line2D line = new Line2D.Double(70, 30, 70, 10);g2.setColor(Color.red);g2.draw(line);/ 矩形Rectangle2D rec = new Rectangle2D.Double(100, 10

8、0, 200, 400);g2.setColor(Color.ORANGE);g2.draw(rec);g2.setColor(Color.gray);g2.fill(rec);/圆角矩形RoundRectangle2D rrec = new RoundRectangle2D.Double(50, 50, 300, 500,20, 20);g2.setColor(Color.blue);g2.draw(rrec);大外软件学院(徐) Java2D基本图形5绘制圆弧 使用java.awt.geom包中的Arc2D. Double类创建一 个圆弧对象: Arc2D ellipse=new Arc2

9、D. Double (50,30,300,50,0,100,Arc.PIE); 上述语句创建了一个外接矩形的左上角坐标是 (50,30),宽是300,高是50的起始角是0度终止角 是100度的饼弧对象。其中,最后一个参数取值: Arc2D.OPEN、Arc2D.CHORD、Arc2D.PIE决定弧是 开弧、弓弧和饼弧。大外软件学院(徐) 练习圆弧/ 弧度的特殊讲解Arc2D arc= new Arc2D.Double(0, 0, 200, 90, 0, 270, Arc2D.OPEN);/开弧g2.draw(arc);g2.fill(arc);arc.setArc(100, 0, 90, 90

10、, 0, 270, Arc2D.CHORD);/ 弓弧g2.draw(arc);arc.setArc(200, 0, 90, 90, 0, -270, Arc2D.PIE);/ 饼弧g2.draw(arc);大外软件学院(徐) Java2D文字7.文字 Font类: new Font(String 字体,int 风格,int 字号); setFont(Font f) 设置字体。当绘制文本时, Graphics对象用参数f指定的字体。 drawString(String s, int x, int y) 从参数x、y指定的 坐标位置处,从左向右绘制参数s指定的字符串。大外软件学院(徐) Java

11、2D文字Font f1 = new Font(“隶书“, Font.BOLD, 28);Font f2 = new Font(“Comic Sans MS“, Font.BOLD + Font.ITALIC, 16);g2.setFont(f1);g2.drawString(“计算机“, 10, 30);g2.setFont(f2);g2.drawString(“Java“, 10, 80);大外软件学院(徐) 画笔粗细BasicStroke类的成员: width这个参数最容易理解,表示线条的宽度 cap只能取三个值:CAP_BUTT, CAP_ROUND or CAP_SQUARE,表示不同

12、的线端。 join这个参数表示当两条线连接时,连接处的形状 ,可以取JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER 三个值。 默认端点使用CAP_SQUARE,默认连接使用 JOIN_MITER大外软件学院(徐) 画笔粗细大外软件学院(徐) 画笔粗细设置画笔宽度为3BasicStroke bs = new BasicStroke(3); g2.setStroke(bs);大外软件学院(徐) 渐进填充GradientPaint是Java2D中专门用来控制渐变的类, 它提供了使用线性颜色渐变模式填充 Shape 的方 法。其构造函数GradientPaint(float

13、 x1, float y1, Color color1, float x2, float y2, Color color2),充分 说明了它的作用,即从点(x1,y1)到点(x2,y2)进行渐 变。大外软件学院(徐) 渐进填充/ 渐变填充椭圆Ellipse2D ellipse = new Ellipse2D.Double(20, 30, 400, 200);GradientPaint gp = new GradientPaint(20, 30, Color.red, 200, 100, Color.green, true);/true代表颜色循环g2.setPaint(gp);g2.fill(

14、ellipse);大外软件学院(徐) 纹理填充TexturePaint类平铺一个图像来填充图形。构造函 数接收一个java.awt.image.BufferedImage和一个 Rectangle2D,把图像影射到矩形里,然后平铺矩 形。建立一个BufferedImage来保存图像相对是更 直接的方法。在BufferedImage的构造函数里制定 长,宽,高,类型为BufferedImage.TYPE_INT_RGB ,然后调用createGraphics()方法得到一个 Graphics2D。大外软件学院(徐) 纹理填充/ 创建纹理BufferedImage buffImage = new

15、BufferedImage(10, 10,BufferedImage.TYPE_INT_RGB); /纹理区域的大小为10*10Graphics2D gg = buffImage.createGraphics(); / 得到缓冲区画笔gg.setColor(Color.yellow); gg.fillRect(0, 0, 10, 10); / 画缓冲区填充底色(黄色)gg.setColor(Color.red); gg.fillOval(0, 0, 5, 5); / 缓冲区左上1/4区域画红色填充圆gg.setColor(Color.green); gg.fillOval(5, 5, 5, 5

16、); / 缓冲区右下1/4区域画绿色填充圆/ 创建结束/定义好的10*10的纹理拉伸到50,50大小,在填充椭圆TexturePaint mypaint = new TexturePaint(buffImage, new Rectangle(50, 50);g2.setPaint(mypaint);大外软件学院(徐) 图形旋转AffineTransform类来实现对图形的这些操作。(1)首先使用AffineTransform类创建一个对象:AffineTransform trans=new AffineTransform();对象trans具有最常用的三个方法来实现对图形变换操作 :大外软件学院(徐) 图形旋转translate(double a,double b) 将图形在x轴方向移动a 个单位 像素,y轴方向移动b个像素单位。a是正 值时向右移

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

当前位置:首页 > 中学教育 > 教学课件

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