svg.js旋转元件旋转整个坐标系

时间:2016-01-05 16:41:38

标签: svg rotation svg.js

使用svg.js版本2.1.1

当尝试旋转对象然后移动它时,看起来整个坐标系正在旋转,而不仅仅是对象。就像两个轴都随着物体旋转一样。这不是我想要的 - 我想使用绝对坐标,而不是相对于对象。

也许我不理解SVG或svg.js,我做错了什么,但对我来说这看起来很荒谬。

示例代码

var draw = SVG('drawing').size(300,300)
var img = 'https://pbs.twimg.com/profile_images/378800000674268962/06ce58cab26c3a0daf80cf57e5acb29b_400x400.jpeg'

var picture = draw.image(img, 100, 100)
picture.rotate(30)
var i = 20

picture.click(function() {    
    this.move(i,0)
    i += 20
})

以下是我所谈论的小提琴示例:https://jsfiddle.net/dudek3370/swzqo5ye/8/

1 个答案:

答案 0 :(得分:2)

如果您想使用非旋转坐标系统并旋转某些东西,只需将旋转的项目放在不旋转的容器中,然后移动容器即可。 E.g。

var draw = SVG('drawing').size(300,300)
var img = 'https://pbs.twimg.com/profile_images/378800000674268962/06ce58cab26c3a0daf80cf57e5acb29b_400x400.jpeg'

var group = draw.group();
var picture = group.image(img, 100, 100)
picture.rotate(30)
var i = 20

group.click(function() {    
    this.move(i,0)
    i += 20
})
<div id="drawing"></div>
<script src="https://s3-eu-west-1.amazonaws.com/svgjs/svg.js" type="text/javascript" charset="utf-8"></script>