相对于其中心操纵/创建SVG

时间:2012-12-03 10:19:56

标签: svg

我想确定SVG的中心,这样我就可以轻松操作多个SVG。

我试图制作基本多边形的多个例子(3到8面),并且很快意识到我要么自己制作,要么涉及大量数学,要么我可以从维基百科中提取当前的数字。前者的问题是从Sketchup转换坐标需要花费大量时间。后者的问题在于它们的方向不同且尺寸不同。

我知道你可以变换,缩放和旋转SVG,但我需要知道SVG中心的坐标。我如何找到它,所以我可以设置通用操作?

transform="rotate(degrees x y)",我需要知道完成此任务的中心。

JS Fiddle 在这里,我想将所有中心设置为相同,然后将它们缩放到相同的高度和宽度,并可能单独旋转它们,使它们都具有平底,而不是顶点。

1 个答案:

答案 0 :(得分:0)

你问题的一般答案并不明显......

多边形可能更简单,特别是凸多边形:您可以通过计算路径中每个点的x和y坐标的最大值和最小值来迭代路径并找到其边界框。

然后您可以确定形状的中心是边界框的中心。

另一种方法是在你估计的中心放置一个不可见的元素(对于复杂的形状,“center”的概念可以是变量),并获得它的坐标以找出中心的位置。特别是对于旋转目的:您可能希望围绕可能不是几何中心的特定点进行旋转。