如何在满足一组条件的同时在一组点之间划一条线?

问题描述

我有一个封闭的多边形(起始顶点结束)和一个简单的多边形(内部无孔),我试图考虑一种算法,该算法可以在顶点之间绘制线,从而满足以下条件:

  1. 线的两端应该有平衡数量的顶点(一侧最多可以再有1个顶点)
  2. 线彼此连接时,它们必须成90度或135度的角度。

这是一个示例图像,您可以看到画出的蓝线满足上述条件:

Sample

解决方法

提示:

如果将顶点垂直投影在一条线上,则形状的“侧面”的顶点与投影方向对齐的顶点将形成簇,如果选择这些簇之一,则投影到该顶点上的线群集的中位数将满足您的平衡条件。

因此,可能的攻击途径是考虑几个初始方向,并以90°和135°的适当倍数旋转,然后研究如此获得的星团。

不用说,没什么简单的。 (但是您的问题不是。)