JavaFX:如何使用SVG的矩阵变换

时间:2012-09-11 12:44:45

标签: svg javafx-2

再次是我:)。

今天我的问题集中在SVG上。在SVG中,您可以对<path>标记内的不同<g>元素进行分组,以便能够一次调用所有路径的转换。此外,还有一些转换/操作只能在组上调用,而不能直接在路径上调用。

我有一个SVG源我需要在我的UI中显示,包含如上所述的不同元素。所以我有类似的东西:

<g id="myId" transform="matrix(-1,2.4336e-008,-2.4336e-008,-1,2163.78,1161.93)">
  <path .../>
</g>

目前我正在使用SVGPath和Stackpane,它运行良好。我只是想知道如何处理矩阵变换?由于没有相应的SVGGroup类,我想我必须自己实现,规则被描述为here

我是在正确的路上还是我又错过了什么?你是否可以推荐using Images而不是处理SVG的东西(虽然我不知道这对于矩阵变换的特殊情况如何有用)。

每次都推荐任何建议:)

干杯。

1 个答案:

答案 0 :(得分:2)

您可以使用FX变换:

    SVGPath path = new SVGPath();
    path.setContent("M50,50 L100,50 L100,100 L50,50 Z");
    path.getTransforms().add(
         Transform.affine(-1,2.4336e-008,-2.4336e-008,-1,2163.78,1161.93));

您的数字有点极端,但对于简单的转换,我尝试matrix个参数与Transform#affine个相同。