2017-02-26 41 views
0
createImage = (x=0, y=0) => { 
    imgC.save() 

    imgC.beginPath() 
    imgC.moveTo(side/2, center) 
    imgC.lineTo(side, 0) 
    imgC.lineTo(0, 0) 
    imgC.closePath(); 

    imgC.clip() 

    imgC.drawImage(image, x, y) 
    imgC.restore() 
} 

我正在绘制一个像这样的蒙面图像。我想更新drawImage中的x/y坐标而不更改其他任何内容。我怎样才能做到这一点?更改剪辑图像?

+0

我不明白。无论如何,'x'和'y'只能在'drawImage'中使用。改变这些变量有什么问题? –

+0

我想将图像位置映射到其他事件(如移动光标或倾斜手机等) – Himmators

+1

@Himmators是正确的,修改X,Y参数不会影响其余表达式。 – punkbit

回答

0

我不确定你想要做什么,因为在我看来,你能够改变传递的X,Y参数而不影响其余表达式。

但是,有一些假设,这里有一些未经测试的代码,所以假设伪代码来理解我分享的可能性。

createImage = (img, x=0, y=0) => { 
    img.save() 

    img.beginPath() 
    img.moveTo(side/2, center) 
    img.lineTo(side, 0) 
    img.lineTo(0, 0) 
    img.closePath(); 

    img.clip() 

    img.drawImage(image, x, y) 
    img.restore() 
    return img 
} 

然后你可以使用这样的:

var myImage = createImage(imgC, 100, 50) 

3秒钟后你更新X,Y

setTimeout(() => { 
    myImage.x = 150 
    myImage.y = 300 
}, 3000) 

希望帮助!