拉斐尔的位置

时间:2010-10-25 21:40:03

标签: javascript raphael

如何在拉斐尔获得物品的位置?我可以使用getBBox()获取大小,但似乎无法获得该位置?

5 个答案:

答案 0 :(得分:17)

getBBox()应该为您提供位置以及x和y属性。

var bbox = el.getBBox();
alert([bbox.x, bbox.y]);

答案 1 :(得分:7)

getBBox()返回一个具有5个属性的对象。他们是:

  1. X
  2. ý
  3. 宽度
  4. 高度
  5. 的toString()
  6. 如果设置了getBBox(false),它将在转换后返回对象位置的坐标数据。将其设置为getBBox(true)以在转换之前返回对象的坐标

    像这样使用......

    paper.Raphael(10,10,300,300);
    circle.paper( 30, 55, 15 );
    var circleBBox = circle.getBBox( false );
    

    编辑:刚刚下载了R 2.1,我相信它已经将x2和y2添加到了getBBox()返回的属性中

答案 2 :(得分:4)

根据文件的形状,文档似乎说可以使用.attr()函数访问它。所以,如果它是一个圆圈......

var x = myCircle.attr('cx'); //cx is the center-x-coordinate of the circle
var y = myCircle.attr('cy'); //same, for y
var r = myCircle.attr('r'); //Radius of circle.

一个正方形将具有x,y,宽度,高度的attr个。查看文档以获取更多信息。

答案 3 :(得分:3)

你也可以这样访问x和y值:

var x = myCircle.attrs.x;
var y = myCircle.attrs.y

答案 4 :(得分:0)

属性x,y是集合中的属性。这里的问题是,如果集合在其他地方被翻译,则.getBBOx()给出的x和y不考虑翻译。

Raphael.transformPath(path,transform)可以通过应用与集合相同的变换来提供帮助......

要翻译这一点,你可以:

tp = Raphael.transformPath("M"+x+","+y, set.attr('transform'))
x = tp[0][1]
y = tp[0][2]