Javascript 拉斐尔体位
我怎样才能得到拉斐尔画中物体的位置?我可以使用getBBox()获得大小,但似乎没有办法获得位置?根据形状的不同,文档似乎说可以使用函数访问它。所以,如果它是一个圆Javascript 拉斐尔体位,javascript,raphael,Javascript,Raphael,我怎样才能得到拉斐尔画中物体的位置?我可以使用getBBox()获得大小,但似乎没有办法获得位置?根据形状的不同,文档似乎说可以使用函数访问它。所以,如果它是一个圆 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.
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、宽度和高度的属性。有关更多信息,请查看文档。getBBox()应提供位置以及x和y属性
var bbox = el.getBBox();
alert([bbox.x, bbox.y]);
也可以通过以下方式访问x和y值:
var x = myCircle.attrs.x;
var y = myCircle.attrs.y
getBBox()返回一个具有5个属性的对象。它们是:
paper.Raphael(10,10,300,300);
circle.paper( 30, 55, 15 );
var circleBBox = circle.getBBox( false );
编辑:刚刚下载了R2.1,我相信它已经在getBBox()返回的属性中添加了x2和y2。属性x和y都在集合中。这里的问题是,如果该集合在其他地方被转换,那么.getBBOx()中给出的x和y就不会考虑转换 transformPath(路径,变换)可以通过应用集合具有的相同变换来提供帮助 要转换该点,您可以:
tp = Raphael.transformPath("M"+x+","+y, set.attr('transform'))
x = tp[0][1]
y = tp[0][2]
el.getBBox是正确的方法。请看Dmitry的回答。谢谢,但如果你能在raphaeljs的文档中添加这些技巧,那就太好了。在Raphael文档中,问题可能首先是对象“位置”的定义。如果您指的是对象的“重心”,则当前必须由应用程序代码计算,因为它取决于对象的类型。现在,似乎没有库代码来获取常见形状的中心。对于任意形状,我想它可能需要在应用程序级别定义,并且边界框允许计算它。如果“位置”是指经典的左上角位置,则边界框的(x,y)属性就是结果,如@b_dubb所述。