Dies ist eine abgespeckte Frage von this question. Im Grunde frage ich nur nach der Nummer 1 in der Frage.Schnelle boolesche Operation zwischen zwei Mesh-Gruppen
Lassen Sie uns sagen, ich habe zwei Gruppen von meshes, Die Definition der Mesh-Klasse ist wie folgt (C# Syntax):
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;
}
Gibt es eine effiziente Art und Weise/Umsetzung der resultierenden von Boolesche Operationen zu finden (in mein Fall würde ich gerne die polygonalen Schnittpunkt) zwischen zwei Mesh
s finden?
Die naive Weise eine Schleife durch alle Element
s innerhalb des Mesh
Objekt sein würde, gilt das andere in einem anderen Element
Mesh
Objekt, und die Ergebnisse zu erhalten.
Aber ich glaube, es gibt effizientere Algorithmus, dies zu tun - utilizing plane sweeping algorithm.
Es wäre größer, wenn ein solcher Algorithmus bereits anderweitig implementiert wurde, entweder in .Net, C++ oder Matlab.
Suchen Sie nach einer Schnittmenge (dh alle Punkte in Mesh A und Mesh B) oder einer polygonalen Schnittmenge (alle Punkte, die geometrisch in beiden Meshes liegen)? –
@Zac, ich bin auf der Suche nach einer polygonalen Kreuzung. – Graviton