Raphael.js Как получить центральную точку расположения бумаги и шкалы относительно центра? - PullRequest
6 голосов
/ 07 июня 2011

Я определил свою бумагу Рафаэля, как показано ниже:

var paper = Raphael("my-paper", '100%', '100%');

//render some shapes on my paper
var e = paper.ellipse(50, 50, 40, 20);
var c = paper.circle(50, 50, 40);
var r = paper.rect(40, 40, 50, 50, 10);

Как вы видели выше, я определил свою бумагу Рафаэля, а затем нарисовал некоторые фигуры на своей бумаге.У меня есть следующие два вопроса:

1. Как получить центральную точку x и y моей статьи.(x: горизонтальное расположение, y: вертикальное положение)

2. Я хотел бы масштабировать все на моей бумаге до вдвое большего размера, я знаю, что могу использовать функцию масштабирования Raphel .Я хотел бы масштабировать все элементы на бумаге относительно центра моей бумаги , поэтому мне нужно сделать что-то вроде:

e.scale(2, 2, CENTER_X, CENTER_Y)

(CENTER_X и CENTER_Y задаются в вопрос 1 )

Мне бы хотелось, чтобы результат выглядел как увеличение, правильно ли я использую или есть другие способы сделать это?

Ответы [ 2 ]

8 голосов
/ 07 июня 2011

paper.width и paper.height должны возвращать размеры бумаги, которая даст вам центр.

0 голосов
/ 15 августа 2014

Вы можете найти центр бумаги следующим образом

var x = this.paper.canvas.offsetLeft;
var y = this.paper.canvas.offsetTop;

var centerX = x + paper.width/2 ;
var centerY=  y + paper.height/2;
...