SVG仅在路径坐标上进行变换,而不在直线和厚度上进行变换

SVG仅在路径坐标上进行变换,而不在直线和厚度上进行变换,svg,Svg,据我所知,svg转换(如缩放)适用于整个svg对象,即不仅适用于矢量点,还适用于线的厚度和宽度。也就是说,a`transform=“scale(10)”操作意味着线宽是不进行此转换的线宽的10倍 有没有一种方法可以将这种变换仅应用于路径的顶点?我想保持一致的路径宽度 假设我有以下SVG文件: <?xml version="1.0" encoding="UTF-8"?> <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink

据我所知,svg转换(如缩放)适用于整个svg对象,即不仅适用于矢量点,还适用于线的厚度和宽度。也就是说,a`transform=“scale(10)”操作意味着线宽是不进行此转换的线宽的10倍

有没有一种方法可以将这种变换仅应用于路径的顶点?我想保持一致的路径宽度

假设我有以下SVG文件:

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" xmlns="http://www.w3.org/2000/svg" >
<polygon transform="scale(10) translate(100,100)" style=" fill: rgba(255,255,255,0);  stroke: black; " points=" 100.0,0.0 49.99999999999997,86.60254037844388 -49.99999999999998,86.60254037844388 -100.0,1.2246467991473532E-14 -49.999999999999964,-86.60254037844388 49.999999999999936,-86.6025403784439 100.0,-2.4492935982947064E-14" />
</svg>


当然,设置vector effect=“非缩放笔划”将在Opera、Chrome、Safari和Firefox上运行。有一个。

当然,set vector effect=“non-scaling stroke”可以在Opera、Chrome、Safari和Firefox上使用。在Chrome(v47)中有一个.

如果转换像scale(0,2)一样是不可逆的,那么这在Chrome(v47)中不起作用。我没有检查其他浏览器。UA必须做一个反向缩放,所以这几乎是意料之中的。如果你有这样的比例,你将看不到任何缩放的图形。这是我的猜测,但这取决于实现,而不是什么。不,它不是。椭圆可以退化为线段。将
标度(0,2)
应用于
“M0 0 h1”
不会改变路径。应用于路径的投影没有理由“粉碎”线宽。所有这些都与以下事实不一致:
scale(0.00001,2)
scale(0,2)
在与
vector effect=“non-scaling stroke”
一起使用时完全不同。最重要的是,这种行为与规范不一致。如果转换像scale(0,2)一样是不可逆的,那么这在Chrome(v47)中是不起作用的。我没有检查其他浏览器。UA必须做一个反向缩放,所以这几乎是意料之中的。如果你有这样的比例,你将看不到任何缩放的图形。这是我的猜测,但这取决于实现,而不是什么。不,它不是。椭圆可以退化为线段。将
标度(0,2)
应用于
“M0 0 h1”
不会改变路径。应用于路径的投影没有理由“粉碎”线宽。所有这些都与以下事实不一致:
scale(0.00001,2)
scale(0,2)
在与
vector effect=“non-scaling stroke”
一起使用时完全不同。最重要的是,这种行为与规范不一致。