计算多边形内多段线的点

Calculate points for a polyline inside a polygon

我正在尝试绘制多段线以显示多边形内的路线。多段线必须相互平行并且不能超出多边形。

我的解释很糟糕,我想做这样的事情:

任何关于从哪里开始的建议都将不胜感激!

我需要使用 Typescript 在 Angular 2 中为 CesiumJS 创建一些东西,但任何帮助都是有用的。

在您展示的示例中,折线不需要指定任何实际的内部点。您可以按照直线的顺序(从指示的起点开始)仅指定沿矩形周长的点来创建该图像的副本。该算法看起来像这样:

  1. 定义一个感兴趣的矩形。

  2. 定义一条线,描述矩形内路径的对角线斜率。

  3. 生成一组完全覆盖矩形并延伸到其边缘之外的平行线。这是通过在原始线的两个端点重复添加或减去固定的 X 或 Y 偏移来完成的,这样您就有了一组在所有方向上都超出矩形的平行线。

  4. 按顺序迭代直线组(从任意一侧开始到另一侧结束),并寻找直线与矩形相交的点。您可能需要查找 algorithm to find intersection points.

    一个。对于任何不与矩形恰好相交两次的线,丢弃该线。

    b。对于与矩形恰好相交两次的其余线,将两个交点添加到多段线,但 交替 添加它们的顺序。换句话说,如果上一行添加了北交点,然后添加了南交点,那么当前行应该在北交点之前添加它的南交点,反之亦然。

  5. 现在所有交点都已添加到多段线,您可以将该多段线添加到场景并进行渲染。