В настоящее время я не понимаю, как точка начала работает при масштабировании и вращении.snapsvg - точка начала для масштабирования/поворота после преобразования
Например, если бы я должен был масштабировать прямоугольник 10x10 вокруг его центра, я бы ожидал, что мне придется получить прямоугольные данные последнего преобразования (x и y), получить высоту и ширину прямоугольника и разделить их на 2 и добавьте их в x и y, но это просто не работает.
Использование SnapSVG Я использую метод Snap.Matrix(), чтобы создать матрицу на основе предыдущего преобразования:
var data = activeElement.data('originalMatrix');
var s = size/50; // size is a number from 1-100, defaulted to 50
var matrix = new Snap.Matrix(1,0,0,1,data.dx,data.dy);
matrix.rotate(data.rotate);
matrix.scale(s,s);
I под стендом, что для обоих вращать и масштабировать методы принимают точку происхождения, но я не могу как вычислить эти значения. Кто-нибудь знает?
С уважением
я бы подумал, что прохождение значения BBox cx и cy было бы правильным, но все равно ничего –
Если вы хотите повернуть вокруг своего центра, то el.getBBox.cx/cy должен работать, однако, важно, чтобы он фигурировал, если это само нужно будет учитывать любые преобразования на объект. Базовый jsfiddle был бы полезен, как всегда, чтобы выделить с минимальным кодом. – Ian
из-за экономии времени Я использовал последнюю скрипку, ту же концепцию - http://jsfiddle.net/4eL3gstp/19/ –