これは、this questionというトリミングされた質問です。基本的に私は質問の第1位について尋ねています。メッシュの2つのグループ間の高速ブール演算
(C#構文)を次のようにメッシュクラスの定義がある、のは、私がmeshesの2つのグループを持っているとしましょう:
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;
}
は、ブール演算の結果として得を見つけるための任意の効率的な方法/実装があります(中私の場合ポリゴンスタイルの交差点)が2つのMesh
の間にありますか?
素朴な方法は、Mesh
オブジェクト内のすべてのElement
Sをループにすることが別のMesh
目的で他のElement
に対してチェックし、その結果を得ることができます。
しかし、これを行うためのより効率的なアルゴリズムがあると思います。utilizing plane sweeping algorithm。
このようなアルゴリズムが.Net、C++、またはmatlabのいずれかで既に実装されている場合は、もっと大きくなります。
セットスタイルの交差点(つまり、メッシュAとメッシュBの両方に存在するすべての点)またはポリゴンスタイルの交差点(両方のメッシュ内の幾何学的にすべての点)を探していますか? –
@Zac、多角形の交差点を探しています。 – Graviton