Рафаэль Позиция - PullRequest
       6

Рафаэль Позиция

9 голосов
/ 26 октября 2010

Как я могу получить положение объекта в Рафаэле?Я могу получить размер с помощью getBBox (), но, похоже, нет способа получить позицию?

Ответы [ 5 ]

17 голосов
/ 27 октября 2010

getBBox () должен дать вам положение, а также свойства x и y.

var bbox = el.getBBox();
alert([bbox.x, bbox.y]);
7 голосов
/ 21 марта 2012

getBBox () возвращает объект с 5 свойствами. они:

  1. х
  2. у
  3. ширина
  4. высота
  5. ToString ()

если вы установите getBBox (false), он вернет данные координат для позиции объекта ПОСЛЕ преобразования. установите его в getBBox (true), чтобы вернуть координаты для объекта до преобразования

используйте вот так ...

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

edit: только что скачал R 2.1, и я считаю, что он добавил x2 и y2 к свойствам, возвращаемым getBBox ()

4 голосов
/ 26 октября 2010

В зависимости от того, какая это форма, документация говорит, что к ней можно получить доступ с помощью функции .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.

Квадрат будет иметь attr с x, y, шириной, высотой.Проверьте документацию для получения дополнительной информации.

3 голосов
/ 15 октября 2011

вы также можете получить доступ к значениям x и y следующим образом:

var x = myCircle.attrs.x;
var y = myCircle.attrs.y
0 голосов
/ 05 июня 2014

атрибуты x, y - это те, которые находятся внутри набора.Проблема здесь в том, что если набор переводится куда-то еще, то x и y, заданные .getBBOx (), не учитывают перевод.

Raphael.transformPath (path, transform) может помочь, применяяТо же самое преобразование, что набор имеет ...

, чтобы перевести эту точку, вы можете:

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