开源改变世界

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

推推 grbl 2年前 (2023-02-03) 208次浏览
关闭
cojarbi 打开了这个问题 2016 年 12 月 8 日 · 78条评论
关闭

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口#58

cojarbi 打开了这个问题 2016 年 12 月 8 日 · 78条评论

评论

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
合作者

不确定原因或区别,但有些对我开放,有些则不。

CUT LETRAS 打不开.svg.txt
彩框打不开.svg.txt
A 打不开.svg.txt

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58  自配这个 2016 年 12 月 8 日
SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58  加了 增强 标签 2016 年 12 月 8 日
SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

需要将我的 SVG 解析器移植到 ES6。

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
成员

“A”:可能是另一个 OSX 问题:
SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

“CUTLETRAS”和“颜色框”:没有路径对象。当前解析器仅处理组和路径。

@lautr3k 您的解析器是否处理非路径对象?

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
成员

@cojarbi检查设置 -> 文件设置 -> SVG PX PER INCH。它应该默认为 96,但如果默认值没有正确初始化(例如空或 0),那么它可能会弄乱解析器。

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

@tbfleming我的 SVG 解析器目前支持所有基本形状(线、折线、多边形、矩形、圆、弧、椭圆)、所有路径命令、组、viewBox、defs 和使用。

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

刚刚为 ES6 重写为 NMP 模块创建了 repo:https ://github.com/lautr3k/lw.svg-parser

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
 评论了 2016 年 12 月 8 日 通过电子邮件
SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
合作者作者

@tbfleming设置默认96

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

@tbfleming我再也找不到你说的路径格式……

path1 = [
    [x,y,x,y,x,y], // Shape or Line
    [x,y,x,y,x,y]  // Hole if shape
    ...            // Hole...
]
path2 = [
    [[x,y],[x,y],[x,y]], // Shape or Line
    [[x,y],[x,y],[x,y]]  // Hole if shape
    ...                  // Hole...
]

我认为 path1 ?

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
成员

路径1。它可以是开放和封闭子路径的混合,外部顺序无关紧要。例如这是有效的:

path1 = [
    [x,y,x,y,x,y,...], // Open path
    [x,y,x,y,x,y,...], // Closed path for a hole
    [x,y,x,y,x,y,...], // Open path
    [x,y,x,y,x,y,...], // Closed path for a hole
    [x,y,x,y,x,y,...], // Closed path for outer shape #1
    [x,y,x,y,x,y,...], // Closed path for a hole
    [x,y,x,y,x,y,...], // Closed path for outer shape #2
    [x,y,x,y,x,y,...], // Open path
    [x,y,x,y,x,y,...], // Closed path for a hole
    ...
]
SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
成员

它使用它来填充和描边颜色:[r, g, b, a]

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
成员

我附上路径压力测试。此路径对象混合了开放路径和封闭路径。

路径 stress.svg.txt

这是它的行为方式:

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

嗯…在我的脑海中,一条路径不能包含另一条路径。唯一的情况是定义形状孔。否则它是一组路径。我希望一次只能选择一种形状。

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
成员

SVG 路径对象允许它。由用户决定何时创建它们。

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58
成员

如果 SVG 不支持它,那么路径联合操作有时会无效。

SVG 解析器:来自 LW3:Optimisation 分支的 @lautr3k 的解析器端口 #58

是的,但是如果我的解析器在一个组中分别为您提供每个项目,不是更好吗?无论如何,这就是它的工作原理。