如何在拉斐尔获得物品的位置?我可以使用getBBox()获取大小,但似乎无法获得该位置?
答案 0 :(得分:17)
getBBox()应该为您提供位置以及x和y属性。
var bbox = el.getBBox();
alert([bbox.x, bbox.y]);
答案 1 :(得分:7)
getBBox()返回一个具有5个属性的对象。他们是:
如果设置了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]