我面临着一个小而恼人的问题。我有一个svg图像,说“test.svg”。我用一个特殊的Swing组件显示它(SVGSalanel的SVGPanel如果你有兴趣,但没关系)。所以,我的“test.svg”完美显示,我也可以按照自己的意愿调整大小。现在,我的问题是当我调整swing组件的大小时,我想修改“test.svg”的大小。
我的第一个意图是修改<svg>
元素的宽度和高度属性,但当然它不能按预期工作,因为对象的坐标会出错。
例如,如果我在svg面板中间有一条水平线:
//Should be sth like that
<svg ... height='20' width='20'><line x1="0" x2="20" y1="10" y2="10" /></svg>
如果我尝试通过仅改变大小来调整大小,我会得到:
//using my "naive" resize method
<svg ... height='10' width='10'><line x1="0" x2="20" y1="10" y2="10" /></svg>
并且该线不再位于面板中间。相反,它现在位于底部。
所有这些都可能非常明显。对不起,如果是这样的话。
因此,简而言之,如何获得预期结果:
<svg ... height='10' width='10'><line x1="0" x2="10" y1="5" y2="5" /></svg>
非常感谢你的帮助!
答案 0 :(得分:1)
在<svg>
元素上放置一个viewBox属性,例如viewBox="0 0 20 20"
。现在,您可以更改宽度/高度,而不会影响内容。