二维几何变换java代码_基于Batik的SVG应用: 关于几何变换

本文是作者在 SVGGIS 系统的开发实践过程中关于 SVG 坐标转换的总结。在描述 SVG 坐标变换原理的同时,使用 Apache Batik 项目实现了相关例子。

SVG 是一种用 xml 语言来描述二维图形对象的语言,SVG 允许三种图形对象:1.矢量图形,2.图片,3.文本对象。这三种图形对象都可以支持分组,使用样式渲染,进行几何变换。

SVG 还能够通过脚本来实现交互操作和动态显示。可以通过定义动画对象或使用script 脚本来实现动画。

1.1 一个 SVG 例子

我们首先来看一个 SVG 的例子,窗口右上角有四个色块,每个色块是一个50×50的矩形。

图 2. 样本文档

平移

旋转

横切

2.1 Batik 的基础知识

2.1.1 Batik 的用途

Batik 是基于 java 语言实现的一个 SVG 应用的工具集,用于实现对 SVG 对象的显示、编辑以及将 SVG 图形对象转换成其他图片格式,如 jpg、gif 等。

这个项目的目标就是给开发人员一套用于处理或应用 SVG 对象的基础核心模型。作为Apache 项目成员之一,该项目也为开发人员提供了一个开发的可扩展的平台。同时 batik 也维护了一个可以查看 SVG 文件的浏览器。虽然 batik 还没有完全实现 SVG 的所有标准语法和标记,但通过比较不同版本的区别就会发现,他正在以很高的效率覆盖 SVG 所有的标准。

2.1.2 让我们实现一个简单的 Batik 程序

首先让我们实现一个简单的基于 Batik 的 SVG 浏览器。Batik 封装了org.apache.batik.swing.JSVGCanvas 对象可以用于在 swing 中嵌入 SVG 显示容器,并可以通过 org.apache.batik.swing.JSVGCanvas 提供的方法对 SVG 文档和图像进行操作。这个浏览器可以支持大部分 SVG 的语法和标准包括脚本交互的功能,但暂时还没有引入动画。关于动画和脚本交互的内容我们会在以后的文章中讲述,今天先集中解决几何变换的问题。

可以通过该页面引导运行该程序: 从附件中可以查看该程序的完整代码,也可通过 网上下载地址 运行该程序。图 8. 将一个 SVGCanvas 添加到界面

private javax.swing.JPanel SVGPanel = new javax.swing.JPanel();

private JSVGCanvas svgCanvas = new org.apache.batik.swing.JSVGCanvas();

SVGPanel.add("Center", svgCanvas);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值