代码之家  ›  专栏  ›  技术社区  ›  Kevros

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

  •  2
  • Kevros  · 技术社区  · 10 年前

    使用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 回复  |  直到 10 年前
        1
  •  2
  •   Robert Longson    10 年前

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

    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>