【问题标题】:Positioning drawn shape in HTML Canvas在 HTML Canvas 中定位绘制的形状
【发布时间】:2016-11-02 11:44:01
【问题描述】:

我有一个从 SVG 文件生成的复杂形状,我们将图像剪辑到画布中。

但是,所有贝塞尔曲线坐标均基于 0,0。我们的形状的大小取决于画布的大小(根据用户的屏幕宽度进行缩放)。

有没有办法获取已经绘制好的形状,然后将其移动到画布上的某个位置?很像 ctx.scale(#, #) 会缩放绘制的形状吗?

谢谢!

【问题讨论】:

    标签: html canvas svg


    【解决方案1】:

    使用ctx.translate() 更改画布上项目的位置。

    见:https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Transformations#Translating

    使用 translate 将改变随后在画布上绘制的所有内容的位置。如果你只想移动一件东西,你可以这样做:

    ctx.translate(x,y);
    // draw something
    ctx.translate(-x,-y);
    

    或者你可以这样做:

    ctx.save();
    ctx.translate(x,y);
    // draw something
    ctx.restore();
    

    【讨论】:

    • 完美!谢谢!这就像一个魅力(全新的画布,你能说出来吗?)
    猜你喜欢
    • 2014-06-23
    • 2017-10-05
    • 2016-02-24
    • 2014-10-03
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2013-07-31
    • 2012-03-13
    相关资源
    最近更新 更多