paperjs 旋转问题

issue with paperjs rotate

如果我旋转 p.view.rotate(update.deg); 使用 paperjs 它工作正常没有问题。

如果我刷新页面并调用上面的函数p.view.rotate(update.deg); onload 那么视图就会不同。它正在显示轻微的缩放。

默认图像旋转

重新加载页面后,我正在 p.view 旋转之前的值。然后显示为

这是我的js文件

https://github.com/muralibobby35/annotateJs/blob/master/opentok-whiteboardnew.js

我无法 运行 你的代码,但我建议,为了更容易保存项目状态,你可以通过图层而不是通过视图使用转换(缩放、旋转等)。
这将使您可以轻松 export/import 您的项目,而无需通过调用 view.rotate() 方法手动恢复状态 window 重新加载。

这里是 fiddle 演示解决方案。
它模拟 window 通过 exporting/importing 项目从一个 canvas 重新加载到另一个空项目。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Debug Paper.js</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.11.5/paper-full.min.js"></script>
    <style>
        html,
        body {
            margin   : 0;
            overflow : hidden;
            height   : 100%;
        }

        main {
            display : flex;
            height  : 100vh;
        }

        canvas {
            flex   : 1;
            border : 1px solid;
        }
    </style>
</head>
<body>
<main>
    <canvas id="canvas1" resize></canvas>
    <canvas id="canvas2" resize></canvas>
</main>
<script type="text/paperscript" canvas="canvas1">
    // draw a square
    var rectangle = new Path.Rectangle({
        from: view.center - 50,
        to: view.center + 50,
        fillColor: 'orange'
    });

    // rotate layer rather than view so transformations are persisted when exporting
    project.activeLayer.rotate(30);

    // export datas and store them in global variable just for the demo, to simulate a page reload
    window.exportedDatas = project.exportJSON();
</script>
<script type="text/paperscript" canvas="canvas2">
    // import the exported datas
    project.importJSON(window.exportedDatas);

    // see that rotation is preserved
</script>
</body>
</html>