我有一个 SVG 容器作为填充整个页面的 Paper。在这个容器中,我以网格模式显示元素。
假设每个形状填充一个 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 定位相同的设计,而不必更改其原始路径字符串。
虽然我找到了使用 Path.polyline 的解决方法,但它总体上并不理想,尤其是在扩大网格长度时。我应用了一个映射函数,将每个 Paper.polyline 坐标转换为网格中它应该结束的位置。我敢打赌,为我打印的每个形状迭代每个坐标是一个不必要的昂贵过程,并且必须有一种方法为整个元素本身设置全局 x 和 y。