旋转一组对象

时间:2012-11-27 12:37:19

标签: javascript kineticjs

我正在使用KineticJS并且我试图旋转组。当我第一次旋转时,偏移是正确的,它以我想要的方式旋转。当我改变组内矩形的大小然后尝试旋转它得到返回上一个中心点或偏移量。 任何人都可以帮忙!? 代码:

** //在这种情况下,selectedShape是组内的Rectangle,当我

//调整此矩形的大小,然后尝试旋转组,它会稍微改变**

            selectedShape.setPosition(0, 0);               
            var offsetX = selectedShape.getWidth() / 2;
            var offsetY = selectedShape.getHeight() / 2;

            group.setOffset(offsetX, offsetY);

            if (isForRotate)
            {
                 group.rotate(Math.PI / 4);
            }

//旋转后重置锚点位置

            topLeft.setPosition(selectedShape.attrs.x, selectedShape.attrs.y);
            topRight.setPosition(Number(selectedShape.attrs.x) + Number(selectedShape.getWidth()), selectedShape.attrs.y);
            bottomLeft.setPosition(selectedShape.attrs.x, Number(selectedShape.attrs.y) + Number(selectedShape.getHeight()));
            bottomRight.setPosition(Number(selectedShape.attrs.x) + Number(selectedShape.getWidth()), Number(selectedShape.attrs.y) + Number(selectedShape.getHeight()));
           ![enter image description here][1]

1 个答案:

答案 0 :(得分:0)

我并不完全清楚你想要什么,但旋转是一个绝对值,所以你应该使用类似的东西:

var rotation=selectedShape.getRotation();
selectedShape.setRotation(-rotation);

恢复为0;