游戏程序设计教程第3章 游戏程序的基本框架(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
变换步骤: 1.建立AffineTransform对象 AffineTransform at=new AffineTransform() 2.设置变换过程,例如要进行旋转变换 at.rotate(Math.PI/4.0) 3.在Graphics2D对象上应用变换 g2.setTransform(at) 4. 调用draw()方法绘制图形
原理: • 渲染过程与设备无关 • 通过Graphics(2D)对象来实施 • 当组件( Component )需要显示时自动 调用paint()或update()方法 方法分类: 1.绘制形状(Shape对象) 2.设置绘制的效果
2 绘制几何图形
图形绘制框架: • 建立应用程序主类 • 生成Frame对象和Panel对象,并将Panel 对象添加到Frame对象中 • 重载Panel对象的paint()方法,在其 中添加绘制图形的代码 • 在main()方法中对应用程序主类进行 实例化
Line2D line = new Line2D.Double(x1,y1,x2,y2);
3. 设置绘制效果(边框颜色、边框类型等) 4. 调用Graphics2D的draw()方法
图形绘制举例: • 直线(点) • 矩形 • 圆角矩形 • 椭圆(圆) • 多边形(封闭,非封闭)
3 填充图形
• 使用Graphics对象:
图形变换举例: • 单一的变换:平移,旋转,缩放,错切 • 复合变换:对于平移变换注意区别两种方 法setToTranslation()和translate(),对 于其它变换有类似区别
作业
• 修改本讲的示例并实现不同的效果 • 阅读官方的Java2D API在线教程 http://java.sun.com/docs/books/tutori al/2d/TOC.html
• Shape类(抽象类) 提供了表示一些几何形状的对象的定义。 用于表示图形的轮廓以及确定该轮廓如何 将 2D 平面划分成内点和外点的规则。 每个 Shape 对象都提供返回值,以获取 几何形状的边框,确定点或矩形是部分还
是全部位于 Shape 内部。
Java2D 图形渲染(Render)
绘制方式
使用Graphics对象:
使用Graphics2D对象: 1. 首先获取Graphics2D对象
public void paint (Graphics g) { Graphics2D g2 = (Graphics2D) g; ... }
2. 建立几何图形对象( java.awt.geom包中 定义了各种Shape对象) ,例如:
4 图形变换
• AffineTransform类描述了一种二维仿射变换的功能, 它是一种二维坐标到二维坐标之间的线性变换,保持 二维图形的“平直性”(straightness,即变换后直 线还是直线不会打弯,圆弧还是圆弧)和“平行性” (parallelness,其实是指保二维图形间的相对位置 关系不变,平行线还是平行线,相交直线的交角不变。 • 仿射变换可以通过一系列的原子变换的复合来实现, 包括:平移(Translation)、缩放(Scale)、翻转 (Flip)、旋转(Rotation)和错切(Shear)。
• 使用Graphics2D对象: 设置填充属性,然后调用Fill()方法
图形填充举例: • 单色填充:矩形,椭圆(圆),多边形 • 渐变效果填充(GradientPaint)
GradientPaint redtowhite=new GradientPaint(0,0,Color.blue,100, 50,Color.WHITE); g2.setPaint(redtowhite); g2.fill(rec);
坐标系统
分为两个坐标空间: 用户坐标空间( User space) 设备坐标空间( Device space )
重要的类(参见JDK手册)
• Graphics类 是所有图形上下文的抽象基类,允许应用 程序在组件( 已经在各种设备上实现)以 及闭屏图像上进行绘制。 • Graphics2D类 为Graphics的扩展 类,提供对几何形状、 坐标转换、颜色管理和文本布局更为复杂 的控制。它是用于在 Java平台上呈现二维 形状、文本和图像的基础类。
第3章 游戏程序的基本框架(1)
——Java2D图形绘制简介
内容Biblioteka Baidu要
• Java2D 概述 • 绘制几何图形 • 填充图形
• 图形变换
1.Java2D 概述
• Java 提供的一组API,用于处理2D图形 及图像 功能: • 绘制和填充简单及复杂的形状 • 裁剪、合成和透明度 • 图像处理和变换 • 高级字体处理和字符串格式化