Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas 将画布数据拟合到paperjs中的另一个画布_Canvas_Paperjs - Fatal编程技术网

Canvas 将画布数据拟合到paperjs中的另一个画布

Canvas 将画布数据拟合到paperjs中的另一个画布,canvas,paperjs,Canvas,Paperjs,我正在尝试将一张paperjs画布放入另一张画布。我正在使用importJSON将画布导入当前paperjs画布对象。但是,两张画布的大小不同,因此,并非所有内容都可见。我试图设置paperjs项目的视图,但没有成功。这就是我所尝试的: canvasObj.project.importJSON(tabData.dataUrl); canvasObj.project.view.viewSize = new paper.Size(window.innerWidth - this.canvasWidt

我正在尝试将一张
paperjs
画布放入另一张画布。我正在使用
importJSON
将画布导入当前paperjs画布对象。但是,两张画布的大小不同,因此,并非所有内容都可见。我试图设置paperjs项目的视图,但没有成功。这就是我所尝试的:

canvasObj.project.importJSON(tabData.dataUrl);
canvasObj.project.view.viewSize = new paper.Size(window.innerWidth - this.canvasWidthSubtract, window.innerHeight - this.canvasHeightSubtract);

在这里,我首先使用
importJSON
加载画布并设置视图。但是,并非所有内容都可见。如何将importJSON的内容适应画布。

您只需调整导入层的大小,以适应第二个画布的边界即可

您可以使用如下所示的方法轻松完成此操作

const imported = project.importJSON(`[["Layer",{"applyMatrix":true,"selected":true,"children":[["Path",{"applyMatrix":true,"selected":true,"segments":[[351.69873,371.5],[395,296.5],[438.30127,371.5]],"closed":true,"fillColor":[0.91373,0.91373,1]}],["Path",{"applyMatrix":true,"selected":true,"segments":[[479.54915,481.55283],[454.54915,463.38926],[445,434],[454.54915,404.61074],[479.54915,386.44717],[510.45085,386.44717],[535.45085,404.61074],[545,434],[535.45085,463.38926],[510.45085,481.55283]],"closed":true,"fillColor":[0.91373,0.91373,1]}]]}]]`)
const layer = imported.pop()

layer.fitBounds(view.bounds)

上面的示例导入通过导出的JSON,然后调整其大小,使其始终符合导入的视图边界/大小。

我在importJSON的返回类型中没有看到
pop
方法
importJSON
返回一个类型
Item
,它似乎没有
pop
定义,但感谢您建议
fitboods
,它对我的作用如下:
canvasObj.backgroundLayer.fitboods(canvasObj.project.view.bounds)
,我已经将不同的层存储在一个
canvasObj
@Noober中,这取决于您导入的内容,在我的例子中,我导入了一个
数组
,因此得到了一个数组,该数组将
作为第一项,我必须首先弹出
数组。