p5.j​​s旋转后如何沿轴平移

时间:2015-07-14 09:36:33

标签: javascript canvas rotation translate-animation p5.js

旋转坐标系后,它沿着新轴平移。是否有可能在旋转之前沿轴转换它?

想法是用户上传图像然后他可以旋转它,缩放它并在视口中间移动它。不知何故,我无法完成所有这些功能。

有什么建议吗?

修改

即。有一块帆布。我在那里画了一个图像。然后我将它旋转90°,我想在X轴上进行平移。它向下移动到屏幕上。因为轴转了。

修改

这是我用于转换的代码段。图像始终在其(0,0)点旋转。这就是为什么我以它在中间点旋转的方式翻译它。然后我在偏移点绘制图像。

    p.push();
        p.translate(canvasWidth/2, canvasHeight/2);
        p.rotate(angle * p.TWO_PI/360);

        var x = -loadedImage.width/2  - offsetX;
        var y = -loadedImage.height/2 - offsetY;

        p.image(loadedImage, x, y);
    p.pop();

修改

我决定首先翻译,然后旋转。它使翻译正确,但它绕错误的枢轴点旋转。我猜不出一切。

1 个答案:

答案 0 :(得分:0)

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.save();
ctx.fillStyle="red";
ctx.translate(100,0);
ctx.rotate(20 * Math.PI / 180);
ctx.fillRect(0, 0, 100, 50);
ctx.restore();
ctx.fillRect(100,0,50,50);

尝试此代码:在代码中使用drawImage而不是fillRect