我们如何在Paper.js中获得路径的基本几何图形?

时间:2018-10-22 19:27:10

标签: paperjs

我们可以通过多种方式绘制矩形,其中一种方法是首先定义Rectangle,然后使用Path.Rectangle绘制矩形:

var rect = new Rectangle({
    from: [80, 50],
    to: [100, 200]
})

var rpath = new Path.Rectangle(rect)
rpath.strokeColor = 'red'

在这一点之后,如果我们松开rect(如果我们不保留指针或导出/导入项目),我们将不知道rpathRectangle还是不。

我们如何确定PathCircle还是Rectangle还是PolygonPolyline

1 个答案:

答案 0 :(得分:2)

Path.RectanglePath.Circle等只是factory functions that return a Path,它们看上去就像一个矩形。它们不是子类/类型。

因此,没有直接的方法可以推断类型。

作为一种解决方法,您可以在type中存储一个item.data道具,该道具在序列化/重新导入后仍然有效。

var rect = new Rectangle({
    from: [80, 50],
    to: [100, 200]
})

var rpath = new Path.Rectangle(rect)
rpath.strokeColor = 'red'
rpath.data = { type: 'rectangle' }

var serialized = rpath.exportJSON()
var reimported = paper.project.importJSON(serialized)

console.log(reimported.data.type)

这是Sketch

您可以尝试其他解决方案:

  • Path子类化为您自己的Rectangle类型。子类不受官方支持,但仍可以通过paper.Path.extend()来实现。
  • 添加方法Path.isRectangle(),该方法在运行时检查线段并通过数学方法确定其是否为矩形。