创建从 PaperScope 分离的 paperjs 对象

Create paperjs objects detached from PaperScope

我希望可以创建一个 Paper.Path 对象,该对象 未附加到范围 。我需要这样做的原因是因为我有几个解析器 类,他们的工作是从 gerber 文件生成几何图形,他们不应该对 PaperScopecanvas.一个简单的关注点分离。

例如:(此代码无效)

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
})