如何使用 Java 离散化 SVG 路径?

Posted

技术标签:

【中文标题】如何使用 Java 离散化 SVG 路径?【英文标题】:How do I discretize an SVG path with Java? 【发布时间】:2015-04-18 04:03:16 【问题描述】:

在 Java 中,我如何读取 SVG 路径的 d 属性,并将其离散化,以便将所有贝塞尔曲线正确细分为离散点,从而允许我指定一个阈值来解释锐角?

经过大量搜索后,我发现的唯一解决方案是使用 Apache Batik 以较短的间隔遍历路径,并均匀地采样点,但这会沿直线生成一堆不必要的点并且无法处理锐角的情况。

【问题讨论】:

【参考方案1】:

不久前,我实现了一种算法,可以将二次贝塞尔曲线转换为 javascript 中的一组直线(顶点)。 Its here in action

它不是Java,但转换起来应该不会太难,您应该自己通过在[Q,q,C,c,S,s]上进行正则表达式过滤掉贝塞尔曲线

一些描述是here。

【讨论】:

以上是关于如何使用 Java 离散化 SVG 路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用样式化组件在 reactjs 中设置 svg 样式

如何使用 svg 剪辑路径?

如何使用单路径绘制 SVG 曲线?

如何将文本转换为 SVG 路径?

如何使用 SVG 滤镜创建透明渐变蒙版

如何从 svg 中的所有点知道路径的 m 或 M 点?(使用 raphael.js)