我有一组“块”(用红线和绿线表示)放在“容器”(用蓝线表示)中。
块的所有交点(绿点和红点)和容器的所有相关信息(角度、坡度、起点、终点等)都是已知的。
我想在块被放置(用绿线和点表示)之后提取结果图形的“最上面”轮廓。
我尝试使用凸面外壳(下图中用紫色线表示)等方法,但它没有给出确切的线。
我的问题是,有人能给我指一个解决方案或某种算法,我可以用来解决这些类型的问题吗?
最佳答案
用所有点填充列表(数组)。(在T节点中重复点,如图片上的第二个绿色点)
按Y坐标对列表排序
扫描列表(从顶点开始)类似于扫描线算法。
在每个阶段,你都会得到一组具有相同y坐标(一对或更多)的点。
从左侧和右侧移除间隔点(见下文)。
从这些点对开始(按x坐标)间隔。
在间隔(段)树中添加这些间隔。
加入邻居间隔。
重复,直到一个间隔覆盖所有顶部。
关于c# - 找到一组要点的具体轮廓,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35717128/