2016-05-22 6 views
0

Was ist der Hauptunterschied zwischen einem Eckpunkt und einem Punkt in VTK?Unterschied zwischen Ecke und Punkt in Vtk

Nun wurde die Zuweisung ich einige berechneten Punkte zu einem vtkPolyData Ausgang:

vtkPolyData* oput = vtkPolyData::SafeDownCast(out_info->Get(vtkDataObject::DATA_OBJECT())); 

und ich fragte mich, ob SetVerts(vtkCellArray *v) die Methode zu verwenden oder die Methode SetPoints(vtkPoints *).

Antwort

0

Ich denke, das hängt davon ab, was die Punkte sein sollen. Punkte sind nur Punkte, die z.B. als Teil einer Punktwolke, während Verts Teile von Dreiecken sind, die eine Oberfläche oder ein Volumen darstellen können.

Ohne irgendwelche Details über Ihre Absicht Ich denke, wir können Ihnen nicht wirklich sagen, welche zu verwenden.

0

Vielleicht ist der erste Teil dieses Beispiels ist ähnlich dem, was Sie brauchen: http://www.vtk.org/Wiki/VTK/Examples/Cxx/Picking/AreaPicking

Normalerweise legen Sie die Punkte und dann müssen Sie auch den Scheitelpunkt zuweisen (oder eine andere Art von Zellen), um etwas zu haben, visualisieren (Sie können sie manuell wie im Beispiel zuweisen oder verwenden Sie den vtkVertexGlyphFilter)

1

In VTK-Datasets (dh Klassen, die vtkDataSet erben, das ist die einfachste Art von Daten, die eine Vorstellung von Punkten bietet), sind Punkte einfach Orte in Raum. Daten können an Orten im Raum oder an Zellen (z. B. Dreiecken oder Tetraedern) gespeichert werden, die einen Ort von Punkten darstellen. Werte, die in Zellen gespeichert sind, nehmen an jedem Punkt im Zellen-Locus den gleichen Wert an.

Zellen werden durch ihre Eckpunkte definiert. In vtkPolyData wird jede Zelle durch eine Liste von Ganzzahl-Offsets in die Punktkoordinaten in einer vtkPoints-Instanz definiert.

Ein Vertex in VTK ist eine Zelle, deren Punktlokus ein einzelner Punkt ist.

Es ist möglich, Punkte in einem VTK-Dataset explizit anzugeben, die keine Referenz für eine Zelle sind (z. B. können Sie Punktkoordinaten in einem vtkPoints-Objekt angeben, die nicht als Eckpunkte für Tetraeder, Dreieck oder Scheitelpunkt verwendet werden) Zelle). Diese Punkte können nur Punktdaten enthalten (die von Arrays in einer vtkPointData-Instanz gespeichert werden, die von vtkDataSet gehalten wird) und nicht von Zellendaten (die von Arrays in einer vtkCellData-Instanz gespeichert werden, die von vtkDataSet gehalten wird).

So können Sie mit SetPoints() Punktkoordinaten angeben, auf die sich vtkCellArray-Instanzen dann beziehen, um Punktloci verschiedener Formen zu definieren. Eine Kategorie von Formen ist Vertices (daher SetVerts()), während andere Linien und Polylinien (SetLines()) und Dreiecke/Quads (SetPolys()) enthalten.