#curve #string-format #serialization #deserialize #point #intersection #postgis

beziercurve-wkt

将贝塞尔曲线序列化/反序列化为/从类似于WKT的字符串 + 执行裁剪操作

4 个版本

0.1.3 2021年10月24日
0.1.2 2020年4月29日
0.1.1 2020年4月24日
0.1.0 2020年4月16日

#1047 in 解析器实现

每月 22 次下载

MIT 许可证

79KB
1.5K SLoC

beziercurve-wkt

beziercurve-wkt

关于

这个库的存在是因为PostGis(当前版本12.0)不支持贝塞尔曲线。然而,在表中保持数据仍然非常有用。有时还需要具有贝塞尔曲线的易读格式。因此,而不是将数据保存在二进制格式中,数据以字符串格式保存,并且此库为此提供了序列化/反序列化器。

贝塞尔曲线的字符串格式看起来像这样

BEZIERCURVE((0.0 1.0, 2.0 1.0), (2.0 1.0, 46.0 20.0, 0.0 0.0), (0.0 0.0, 40.0, 47.0, 50.0 30.0, 2.0 1.0))

解析器查看点并根据其长度确定点的类型

(x1 y1, x2 y2) -> Line from p1 to p2
(x1 y1, x2 y2, x3 y3) -> Quadratic bezier curve from p1 to p3 with control point p2
(x1 y1, x2 y2, x3 y3, x4 y4) -> Cubic bezier curve from p1 to p4 with control points p2 and p3

在每个"项目" / 部分“上重复点的目的是在必要时并行构造BezierCurve。

除了序列化/反序列化之外,此库还包含以下工具

  • 计算曲线的边界框(对于使用四叉树计算曲线交集是必要的)
  • 计算曲线-曲线和曲线-线之间的交点
  • 计算交点的角度(例如,用于在曲线上放置文本)
  • 裁剪曲线

许可证

MIT

许可证:MIT

依赖关系

~34–475KB