SVG输出被拉伸

时间:2015-08-08 05:00:57

标签: svg geogebra

以下链接中的SVG文件水平拉伸:

http://isometricland.net/svg/openworld_sandbox_nonlinear_venndiagram_bugreport.svg

我想知道是否通过编辑源代码来快速修复文件?

不幸的是,用于创建文件的软件GeoGebra的开发人员在修复错误时速度很慢,而且我很着急。我将不胜感激任何帮助。感谢。

[编辑]

这是大概应该是什么样子。

three circles in a square

1 个答案:

答案 0 :(得分:2)

将根viewBox元素中的<svg>属性更改为以下内容。

viewBox="0 0 1605 887"

您可能还想将widthheight属性更改为更合适的属性。使用

width="100%" height="100%"

如果您希望它适合父<div>或其他内容。或者,如果需要,请指定确切的大小。请确保使用具有相同宽高比的宽度和高度(1615/897)。

<强>更新

选项1 :要使其显示为正方形,您需要更改viewBox,如上所述,还需要更改preserveAspectRatio设置。对根<svg>元素进行以下更改。

viewBox="0 0 1605 887"
preserveAspectRatio="none"

图表仍然非常大,因为宽度和高度设置为&#34; 60cm&#34;。如果你想要它更小,只需将它们更改为更合适的东西 - 例如。 &#34; 600px的&#34 ;.或者,如果你愿意,可以让他们&#34; 100%&#34;如上所述,并将它们放在正方形<div>

选项2:或者作为上述选项的替代方法,您可以将transform添加到第一个<g>元素(包装整个图表)。

<g stroke-linejoin="miter" stroke-dashoffset="0.0000" stroke-dasharray="none"
   stroke-width="1.0000" stroke-miterlimit="10.000" stroke-linecap="square"
   transform="scale(0.474 0.858)">

此变换等效于上面更改的viewBox导致的隐式变换。

选项1中关于更改宽度和高度的注释也适用于此处。