如何从很多条线中找到里面的矩形
问题描述:
遇到一个问题:有很多线段,里面有若干个矩形以及其他一些形状(这里的其他形状比如:三角形、线段等)。现在怎么去把里面的矩形提取出来?
更详细点说:
//有一个线段的集合
std::vector<line> vecLines;
//这个集合中的元素组成了很多图案,有矩形、三角形、平行四边形、线段等
//请问怎么把其中的矩形找出来?
//比如放到一个矩形的容器里,每个矩形元素包含四条线段
struct juxing{
line line1;
line line2;
line line3;
line line4;
}
//矩形放到容器里
std::vector<juxing> vecJuxing;
请问解决这个问题的思路是啥?如果数据量很大该怎么去判断?
谢谢!
答
线段长度恰好构成矩形的4个边还是说线段相交的区域构成矩形(线段本身长度超过矩形)
前者可以通过定点遍历搜索,后者可以先找到一条线,然后找斜率相等或者相垂直的线再判断
答
补充下:
1、线段的两个端点坐标是知道的。
2、矩形的四条边是平行于x或y轴的。
答
这个要判断线的各个点坐标的