#polygon #geometry #multipolygon #geo #graphics #ocg

geo-normalized

根据 OGC 风格规则生成归一化多边形/多重多边形的特质

2 个版本

0.1.1 2020 年 4 月 15 日
0.1.0 2020 年 4 月 15 日

#722图形 API


用于 geo-svg-io

MIT 许可证

11KB
226

rust-geo-normalized

创建一个遵循 OGC 风格规则的新 rust geo/geo-types 多边形/多重多边形实例。

rust geo 和 geo-types 包不如 OGC 指引严格,允许任意顺序的内部和外部环的多边形。此特质返回一个多边形/多重多边形,其中所有外部环均为顺时针,所有内部环均为逆时针。

示例

// Anti-clockwise winding order for outer ring
let bad = polygon![
        (x: 1.0, y: 1.0),
        (x: 4.0, y: 1.0),
        (x: 4.0, y: 4.0),
        (x: 1.0, y: 4.0),
        (x: 1.0, y: 1.0),
        ];

// Clockwise winding order for outer ring
let good = polygon![
        (x: 1.0, y: 1.0),
        (x: 1.0, y: 4.0),
        (x: 4.0, y: 4.0),
        (x: 4.0, y: 1.0),
        (x: 1.0, y: 1.0),
        ];

let norm = bad.normalized();
// norm should have the same points and shape as `bad` but in the valid winding order
assert_eq!(norm, good);

依赖

~2MB
~38K SLoC