这是这个问题的简化版。基本上我只是在问问题中的第一部分。
假设我有两组网格,网格类的定义如下(C#语法):
假设我有两组网格,网格类的定义如下(C#语法):
public class Mesh
{
public List<Element> elements;
public List<Point> points;
}
public class Element
{
public List<int> PointIndex;
}
public class Point
{
public double X;
public double Y;
}
有没有一种高效的方法/实现方式可以找到两个Mesh
之间布尔运算结果(在我的情况下,我想找到多边形式的交集)?
朴素的方法是循环遍历Mesh
对象中的所有Element
,检查另一个Mesh
对象中的其他Element
,并获得结果。
但我相信有更有效的算法可以做到这一点-- 利用平面扫描算法。
如果已经在.Net、C++或matlab中实现了这样的算法,那就更好了。