盘管总体需求包括多边形分割和区域盘管(包括生成过路管)。
如图,给定一个多边形 (可以是凸或凹多边形,但不自相交),多边形内有一个点P(一般在边上)
a.从P点出发用多段线(也称管道)覆盖多边形的部分区域后回到P点,称为一个回路
b.从P出发和回到P的多个回路的相邻管道称为过路管

算法输入&输出
输入: 一组二维(x, y)点定义多边形和P点(x0, y0),以及其它参数
输出: 一组对象。单个对象包括的数据有:子区域多边形边界点(x,y)的数组,多段线/管道的控制点(x,y)数组。
要求:
1.管道必须不交叉
2.尽量横平竖直或与边平行,美观度高
3.管道之间的距离尽量满足指定值(interval)
4.管道长度尽量相同,不超过指定值范围(minLength,maxLength)
5.过路管之间距离可以小于interval
6.管道不超过离边距离
7.拐弯尽量少
(本算法有预算,等你来承接)
期望到达手动盘管的结果,如下图(多个房间连接成了一个多边形,如果需要房间信息,我们可提供,可以改算法参数)
