Javascript 旋转后缩放会更改rect元素的位置
原始Javascript 旋转后缩放会更改rect元素的位置,javascript,svg,transform,Javascript,Svg,Transform,原始rect,带旋转: 缩放后,旋转中心将根据新的bbox: 缩放rect后,如果我们更新旋转中心,则rect的位置将更改。但是,如果我们不更新中心,那么它将按预期工作,直到应用其他转换。 在更新宽度和高度时缩放,而不是缩放变换 我的问题是如何保持元素的位置不变 如果单击缩放-无更新位置不会改变,但单击缩放-更新位置会改变 函数scaleAndUpdate(id,更新){ 变量 elem=document.getElementById(id), bbox,cx,cy; 元素setAttr
rect
,带旋转:
缩放后,旋转中心将根据新的bbox
:
缩放rect
后,如果我们更新旋转中心,则rect
的位置将更改。但是,如果我们不更新中心,那么它将按预期工作,直到应用其他转换。
在更新宽度和高度时缩放,而不是缩放变换
我的问题是如何保持元素的位置不变
如果单击
缩放-无更新
位置不会改变,但单击缩放-更新
位置会改变
函数scaleAndUpdate(id,更新){
变量
elem=document.getElementById(id),
bbox,cx,cy;
元素setAttribute('width',200);
元素setAttribute('height',200);
如果(更新){
bbox=elem.getBBox();
cx=bbox.x+(bbox.width/2);
cy=bbox.y+(bbox.height/2);
元素setAttribute('transform','rotate(45',+cx+','+cy+'));
}
}
功能重置(id){
变量
elem=document.getElementById(id);
元素setAttribute('x',40);
元素setAttribute('y',40);
元素setAttribute('width',100);
元素setAttribute('height',100);
元素setAttribute('transform','rotate(45,90,90');
}
比例-无更新
规模-更新
重置