meta2d.js icon indicating copy to clipboard operation
meta2d.js copied to clipboard

parseSvg函数是不是有bug,转换出来的图形不一样

Open Plortinus opened this issue 2 years ago • 7 comments

您使用的核心库版本

"@meta2d/svg": "^1.0.3",
"@meta2d/core": "1.0.24",

你遇到了什么问题

WX20230809-101343@2x

你期待实现什么效果

断路器 电容器1

什么系统下,什么浏览器

Chrome

推荐版本

相关代码片段

          axios.get(el.svgUrl).then((res) => {
            const data = parseSvg(res.data)
            el.data = data
          })

您的联系方式

Plortinus avatar Aug 09 '23 02:08 Plortinus

你好,目前svg解析库解析能力有限,详情查看https://doc.le5le.com/document/119826576 , 不能解析的建议作为图片节点处理,我们后续会不断完善svg解析模块

Grnetsky avatar Aug 09 '23 03:08 Grnetsky

第一个图,transform 属性目前只能支持简单的 translate ;还无法支持 matrix ,这个目前支持起来比较困难。 image

SignDawn avatar Aug 09 '23 04:08 SignDawn

第二个图同理,依旧是 tranform 的 matrix 部分解析不成功,等有空会去研究一下

SignDawn avatar Aug 09 '23 04:08 SignDawn

image

SignDawn avatar Aug 27 '23 14:08 SignDawn

第一张图片的 line 标签的 transform ,matrix 类型已经支持,简单说,line 标签如果有 matrix 的变换 transform ,已经可以处理了,参照如下 pr https://github.com/le5le-com/meta2d.js/pull/205

SignDawn avatar Aug 27 '23 14:08 SignDawn

第二张图片的 path 标签的 matrix 类型目前不太容易去支持,如果去计算点的话,还得解析 path 标签的路径,比较困难,暂未实现。 麻烦问一下,这个 svg 是通过什么软件生成的?看起来也就是一个 line ,是否可以生成侧更改配置项来生成 line 标签来解决这个问题? @Plortinus

SignDawn avatar Aug 27 '23 15:08 SignDawn

若想要支持 path 标签的 transform ,考虑在 meta2d 的绘制方法中来实现是否更合理?即 ctx.setTransform ,直接把 matrix 挂到对应的 pen 上,renderPen 中再去处理这个 matrix ?

SignDawn avatar Aug 27 '23 15:08 SignDawn