SetViewBox перемещение бумаги - PullRequest
       4

SetViewBox перемещение бумаги

1 голос
/ 08 февраля 2012

Я использую функцию setViewBox () в Raphael 2. Ширина и высота умножаются на такие значения, как (1.2, 1.3 ...).Это правильно изменяет увеличение / масштабирование, но x и y, которые я дал как 0,0, заставляют бумагу отображать ее содержимое после некоторого смещения.Если я изменю x и y на некоторое положительное значение после рендеринга (используя firebug !!), то верхний левый угол бумаги перемещается назад и выше в свое правое положение.Я хочу знать, как будет рассчитываться стоимость.Я понятия не имею о том, как х, у влияют на окно просмотра.Если кто-нибудь может дать мне какие-либо указатели для этого, это будет реальная помощь.

Я попытался дать разницу между шириной / высотой, деленной на 2. Также я должен отметить, что я не рендеринг изображения, но различныеRaphael формирует, например, тексты, тексты путей и т. д. в моей статье.

С нетерпением ждем помощи!Kavita

Ответы [ 2 ]

1 голос
/ 27 мая 2013

это пример, показывающий, как рассчитать значения setViewBox, я включил jquery (чтобы получить мой SVG-контейнер X и Y: $ ("#" + map_name) .offset (). Left и $ ("#" + map_name) .offset (). top) и после этого я рассчитал, сколько мне нужно увеличить:

var original_width = 777;
var original_height = 667;
var zoom_width = map_width*100/original_width/100;
var zoom_height = map_height*100/original_height/100;
if(zoom_width<=zoom_height)
   zoom = zoom_width;
else
   zoom = zoom_height;
rsr.setViewBox($("#"+map_name).offset().left, $("#"+map_name).offset().top, (map_width/zoom), (map_height/zoom));
0 голосов
/ 27 февраля 2012

Вы установили центр масштабирования на 0,0, как:

element.scale(1.2,1.2,0,0);

это может масштабировать ваш элемент без перемещения координат верхнего левого угла.

...