4

我很难理解如何使用Raphael.js 计算SVG 转换的旋转/缩放枢轴(例如旋转点)的坐标。简而言之,如果您应用诸如之类image.transform("S1.5R45")的变换,则这些变换是相对于默认旋转和缩放轴心应用的,我不确定如何计算。

举例来说,我整理了一个小提琴(jsfiddle.net/GVEqf/),其目的是在两个视口中具有完全相同的输出,以便对图像对象进行几次转换。在第一个视口中,我没有指定旋转点,但在第二个视口中我指定了。但是,我无法得到相同的结果。我需要输入第二个视口的旋转坐标,以便输出与第一种情况相同。

请帮忙。

4

1 回答 1

4

如果未指定,则枢轴是元素的中心。在这里,您必须注意已应用于图像的位置以及将要完成的缩放。由于在这种情况下您的缩放是相对于图像的左上角的,我们可以将中心坐标乘以它。

// Compute rotation pivot coordinates
var scaling = 1.5;
rx = (x + (img_width / 2)) * scaling;
ry = (y + (img_height / 2)) * scaling;

// Apply transformations
image1.transform("S1.5,1.5,0,0R45");
image2.transform("S1.5,1.5,0,0R45,"+rx+","+ry);

http://jsfiddle.net/TYCJ7/

于 2012-10-27T18:28:08.057 回答