【发布时间】:2014-05-14 08:14:42
【问题描述】:
我正在尝试做的事情:将 SVG 路径转换为 (x,y) 点的数组。
我现在有这个:
public Point[] strokeToPoints(Node n){
SVGOMPathElement path = (SVGOMPathElement) n;
System.out.println(path.getAttribute("d"));
System.out.println(path.getTotalLength());
return null;
}
节点 n 始终是从 SVG 文件中提取的路径元素,如下所示:
<path id="kvg:098df-s1" kvg:type="㇒" d="M52.75,10.5c0.11,0.98-0.19,2.67-0.97,3.93C45,25.34,31.75,41.19,14,51.5"/>
线
System.out.println(path.getAttribute("d"));
返回
M52.75,10.5c0.11,0.98-0.19,2.67-0.97,3.93C45,25.34,31.75,41.19,14,51.5
这很好,但是行
System.out.println(path.getTotalLength());
返回
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.apache.batik.dom.svg.SVGPathSupport.getTotalLength(SVGPathSupport.java:41)
at org.apache.batik.dom.svg.SVGOMPathElement.getTotalLength(SVGOMPathElement.java:131)
是什么导致了这个错误?我需要总长度,这样我就可以遍历它,将点收集到一个数组中。
【问题讨论】:
标签: java svg element shape batik