如何移动拉斐尔套装?

发布于 2024-12-26 12:50:28 字数 191 浏览 1 评论 0原文

我有一组用 Raphael.set() 分组的对象。我想要做的是将整个集合(更改 x 和 y 坐标)从一个地方移动到另一个地方。 如何将整个集合作为单个对象移动? 我已经发现,当调用 .attr({X: newX, Y: newY}) 时,集合中的每个元素都将定位在这个坐标上,这将导致将所有元素堆积在一个地方。

I have a set of objects grouped with Raphael.set(). What I want to do is to move the whole set (change x and y coordinates) from one place to another.
How I can move the whole set as a single object?
What I found already is that when an .attr({X: newX, Y: newY}) is called every element from the set will be positioned on this coordinated which will result in piling all the elements in one place.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

黒涩兲箜 2025-01-02 12:50:28

编辑:请参阅 Rick Westera 的回答,因为 translate 现已弃用。

使用 .translate(x, y),例如:

var paper = Raphael('stage', 300, 300);
var set = paper.set();
set.push(paper.rect(0,0,30,50));
set.push(paper.circle(40,50,10));
set.push(paper.path("M 0 70 L 100 70"));
set.translate(100, 100);

http://jsfiddle.net/q4vUx /

Edit: Refer to Rick Westera's answer as translate is now deprecated.

Use .translate(x, y), example:

var paper = Raphael('stage', 300, 300);
var set = paper.set();
set.push(paper.rect(0,0,30,50));
set.push(paper.circle(40,50,10));
set.push(paper.path("M 0 70 L 100 70"));
set.translate(100, 100);

http://jsfiddle.net/q4vUx/

噩梦成真你也成魔 2025-01-02 12:50:28

使用 transform('Tx,y') 因为 translate 已被弃用。例如:

var paper = Raphael('stage', 300, 300);
var set = paper.set();
set.push(paper.rect(0, 0, 100, 100));
set.push(paper.text(50, 50, "Foo"));
set.transform("T100,50");

请注意,有两种类型的平移:

  • “T100,50”将使用全局轴将集合向右移动 100 像素,向下移动 50 像素。
  • 't100,50' 将执行相同的操作,但使用集合的局部轴(即,它取决于集合的旋转方式)。

Use transform('Tx,y') as translate is deprecated. For example:

var paper = Raphael('stage', 300, 300);
var set = paper.set();
set.push(paper.rect(0, 0, 100, 100));
set.push(paper.text(50, 50, "Foo"));
set.transform("T100,50");

Note that there are two types of translation:

  • 'T100,50' will move the set 100px to the right and 50 down using the global axis.
  • 't100,50' will do the same but using the set's local axis (ie. it depends on which way the set has been rotated).
空名 2025-01-02 12:50:28

这就是我用来重新定位一组的方法,在我的例子中是由 Paper.print() 返回的一组字体,但我认为它应该适用于任何类型的集合。

var glyphs = paper.print(0, 0, text, paper.getFont(font, 800), fontSize).hide();
glyphs.transform('...T' + [posx, posy] + 'R' + [angle, posx, posy]).show();

希望有帮助。

This is what i'm using to reposition a set, in my case is a set of fonts returned by Paper.print() but i think it should work with any kind of set.

var glyphs = paper.print(0, 0, text, paper.getFont(font, 800), fontSize).hide();
glyphs.transform('...T' + [posx, posy] + 'R' + [angle, posx, posy]).show();

hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文