【问题标题】:How to do object repositioning/moving within a canvas?如何在画布内重新定位/移动对象?
【发布时间】:2010-07-19 02:34:46
【问题描述】:

如何在 HTML5 画布中重新定位/移动对象(及其内容)?流程可能是: a) 选择一个区域(使用三角形,如 MS 绘图功能图标?) b) 将对象移动到内容不变的新位置(重新定位)。

非常感谢您的帮助。

【问题讨论】:

    标签: html canvas


    【解决方案1】:

    你的意思是这样的:

    imagedata = ctx.getImageData(sx, sy, sw, sh);
    ctx.putImageData(imagedata, dx, dy);
    

    画布已经绘制/渲染。所以它只是像素,三角形在绘制后不再是三角形。如果您希望能够移动三角形等对象,您可以使用 svg.

    【讨论】:

    • 好的,这对我开始这项任务很有帮助。现在让我们忘记三角形吧。进一步的问题,我们如何设置起始坐标(sx,sy),然后指定它们的宽度和高度(sw,sh)。它必须与 mousedown、mouseup、mousemove 和 mousestop 相关(对于 dx、dy、目标坐标)?甚至不确定是否有这样一个名为 mousestop 的事件触发器......愿意投入一些演示代码吗?我非常感激。不要
    • blog.fpmurphy.com/2010/02/… 举了一个例子。
    • 谢谢,SiggyF,演示(试用)链接无效。源代码对我来说看起来很有用,很快就会挖掘它并报告发现。唐
    • 抱歉,我打嗝了,无法进行测试。也就是说,之前的流程还没有理顺……或者意外地陷入困境(请参阅即将发​​布的新帖子)谢谢。
    • SiggyF,我用 fillText 填充画布。你的样本太强大了。我尝试保留代码的顶部并删除 DEMO 前缀并在 doInvertImage 函数处停止。但是,它对我不起作用,老实说,我对所有这些 iData 及其同事的全部内容都没有很好的理解……任何教程之类的?非常感谢。
    猜你喜欢
    • 2014-11-12
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多