如何从很多条线中找到里面的矩形

如何从很多条线中找到里面的矩形

问题描述:

遇到一个问题:有很多线段,里面有若干个矩形以及其他一些形状(这里的其他形状比如:三角形、线段等)。现在怎么去把里面的矩形提取出来?

更详细点说:

 //有一个线段的集合 
std::vector<line> vecLines;
//这个集合中的元素组成了很多图案,有矩形、三角形、平行四边形、线段等
//请问怎么把其中的矩形找出来?
//比如放到一个矩形的容器里,每个矩形元素包含四条线段
struct juxing{
    line line1;
    line line2;
    line line3;
    line line4;
    }
//矩形放到容器里
std::vector<juxing> vecJuxing;

请问解决这个问题的思路是啥?如果数据量很大该怎么去判断?
谢谢!

线段长度恰好构成矩形的4个边还是说线段相交的区域构成矩形(线段本身长度超过矩形)
前者可以通过定点遍历搜索,后者可以先找到一条线,然后找斜率相等或者相垂直的线再判断

补充下:
1、线段的两个端点坐标是知道的。
2、矩形的四条边是平行于x或y轴的。

这个要判断线的各个点坐标的