Snap.SVG:我如何使用(x,y)定位路径对象,就像我们使用圆圈和rects一样?

时间:2014-04-03 19:51:05

标签: javascript css svg snap.svg

我有一个SVG容器作为我的纸张填充整个页面。在这个容器中,我以网格图案显示元素。

让我们说每个形状填充一个100 x 100像素大的空间,网格大500 x 500像素。我想在第一个单元格中有一个位置(0,0),一个在最后一个单元格中,位置(400,400)等。

尽管Snap.SVG允许为Paper.rect和Paper.circle等形状设置x和ay(或cx和cy),但似乎没有很好地记录为Paper.path或Paper.polyline元素。当然,这种行为应该是预期的,因为正如官方文档中所指出的,Paper.polyline是用多个x和y变量定义的(而Paper.path似乎根本没有任何变量)。因此,仅仅设置单个x或y并期望整个形状移动对我来说没有意义。但是,这是有问题的,因为我试图多次为Paper.path定位相同的设计,而不必更改其原始路径String。

虽然我找到了使用Path.polyline的解决方法,但它总体上不是最理想的,尤其是在扩展网格长度时。我应用了一个映射函数,它将每个Paper.polyline坐标转换为网格中应该结束的位置。我打赌,对于我打印的每个形状迭代遍历每个坐标是一个不必要的昂贵过程,并且必须有一种方法来为整个元素本身设置全局x和y。

1 个答案:

答案 0 :(得分:5)

我不熟悉snap.svg,但我必须相信它提供了翻译元素的能力,即将其移动到新的x,y位置。通常,通过svg dom移动路径将是......

<path transform="translate(myX myY)" d="...." />