创建从 PaperScope 分离的 paperjs 对象
Create paperjs objects detached from PaperScope
我希望可以创建一个 Paper.Path
对象,该对象 未附加到范围 。我需要这样做的原因是因为我有几个解析器 类,他们的工作是从 gerber 文件生成几何图形,他们不应该对 PaperScope
的 canvas
.一个简单的关注点分离。
例如:(此代码无效)
import paper, {Path, Point} from 'paperjs';
let path = new Path([new Point(100, 100), new Point(200, -50)]);
paper.addPath(path); <- this doesn't exist but you get the point.
没有明显的方法来解决这个问题,paperjs 文档似乎将此 "clever scoping" 吹捧为一项功能,但使用起来真的很痛苦...
您可以设置Paper.js,使其默认不插入新创建的场景。您必须在初始化应用程序时设置 paper.settings.insertItems = false
(请参阅 documentation)。
如果您希望某些项目成为场景的一部分而其他项目则不是,您可以通过将 insert: true/false
参数传递给构造函数来更好地控制是否插入它们。
这是演示此行为的草图。
// Switch this to true to see the difference.
const INSERT = false;
const circle = new Path.Circle({
center: view.center,
radius: 50,
fillColor: 'orange',
insert: INSERT
})
我希望可以创建一个 Paper.Path
对象,该对象 未附加到范围 。我需要这样做的原因是因为我有几个解析器 类,他们的工作是从 gerber 文件生成几何图形,他们不应该对 PaperScope
的 canvas
.一个简单的关注点分离。
例如:(此代码无效)
import paper, {Path, Point} from 'paperjs';
let path = new Path([new Point(100, 100), new Point(200, -50)]);
paper.addPath(path); <- this doesn't exist but you get the point.
没有明显的方法来解决这个问题,paperjs 文档似乎将此 "clever scoping" 吹捧为一项功能,但使用起来真的很痛苦...
您可以设置Paper.js,使其默认不插入新创建的场景。您必须在初始化应用程序时设置 paper.settings.insertItems = false
(请参阅 documentation)。
如果您希望某些项目成为场景的一部分而其他项目则不是,您可以通过将 insert: true/false
参数传递给构造函数来更好地控制是否插入它们。
这是演示此行为的草图。
// Switch this to true to see the difference.
const INSERT = false;
const circle = new Path.Circle({
center: view.center,
radius: 50,
fillColor: 'orange',
insert: INSERT
})