Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svg 笔划宽度不小于';t标度;纵横比问题?_Svg - Fatal编程技术网

Svg 笔划宽度不小于';t标度;纵横比问题?

Svg 笔划宽度不小于';t标度;纵横比问题?,svg,Svg,我在一个g元素中有一个或多个path元素,我正在缩放该元素以适应网格矩形。变换应用于g元素。我的变换的工作原理是,所有的点都位于正确的位置,但我发现我必须调整路径的笔划宽度,以获得一条可读的线 问题是,如果比例涉及纵横比的大变化,我最终会发现路径的某些段比其他段重,这取决于它们的方向 下面是我的代码计算的典型转换: scale(0.1875, -0.010397820616798718) translate(-1149000, -96174) 在这种情况下,我最终将笔划宽度从9px更改为约4

我在一个g元素中有一个或多个path元素,我正在缩放该元素以适应网格矩形。变换应用于g元素。我的变换的工作原理是,所有的点都位于正确的位置,但我发现我必须调整路径的笔划宽度,以获得一条可读的线

问题是,如果比例涉及纵横比的大变化,我最终会发现路径的某些段比其他段重,这取决于它们的方向

下面是我的代码计算的典型转换:

 scale(0.1875, -0.010397820616798718) translate(-1149000, -96174)
在这种情况下,我最终将笔划宽度从9px更改为约48px。靠近水平端的线段变薄,靠近垂直端的线段变厚


是否有任何简单的方法可以以具有相同渲染宽度的所有线段结束?

您是否考虑过将“向量效果”属性设置为“非缩放笔划”

 <line vector-effect="non-scaling-stroke" stroke="black" stroke-width="5" 
        x1="32" y1="50" x2="32" y2="350"/>

更新

我能想到的最佳解决方案是手动变换路径的坐标

  • vector effect=“非缩放向量”
    不受一致支持。我的Firefox和Safari版本不支持它,但我的Chrome浏览器支持
  • 在SVG标准中,无法独立地指定笔划的转换。(笔划变换属性很好——就像windows GDI+绘图系统一样,笔对象有自己的局部变换)

在这种情况发生变化之前,我能想到的最佳解决方案是手动计算出路径的坐标——即svg没有变换元素;坐标已经被转换了。

我确实看到了这一点,因为在另一个stackoverflow线程中提到了它。它在Firefox4中似乎不起作用。我希望它能让生活更轻松。矢量效果似乎是TinySVG规范的一个特性,而不是浏览器实现的常规SVG1.1规范。我能理解为什么他们会补充说,因为在分辨率有限的移动设备上缩放图形是一个大问题。具有讽刺意味的是,TinySVG最终会拥有常规SVG所没有的功能。Gareth我想你是对的。我希望SVG实现能为我完成转换,但我想这太好了,不可能是真的。我会将你的答案标记为已接受的答案,因为这是我将要做的,但它仍然有助于回答原始问题的解决方案。非缩放笔划支持应该出现在Firefox 15中。如果一切正常,它只是在夜间版本中登陆