【问题标题】:JavaFX: how to use matrix transformations of SVGJavaFX:如何使用 SVG 的矩阵变换
【发布时间】:2012-09-04 09:40:02
【问题描述】:

又是我 :)

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

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

<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 的东西(尽管我不知道这在这种特殊情况下对矩阵转换有何帮助)。

一如既往,任何建议都会受到赞赏:)

干杯。

【问题讨论】:

    标签: svg javafx-2


    【解决方案1】:

    您可以使用 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 参数相同。

    【讨论】:

    • Sergey:你是我今天的英雄 :) 效果很好,成功了,非常感谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    相关资源
    最近更新 更多