我有一个txt文件,其中包含一组3维数据点,我想基于这些点创建一个vtkPolyData。
在文件中,我在第一行有点数,在我的例子中它们是6 x 6.然后是每个点的实际坐标。文件的内容是这样的。
6 6
1 1 3
2 1 3.4
3 1 3.6
4 1 3.6
5 1 3.4
6 1 3
1 2 3
2 2 3.8
3 2 4.2
4 2 4.2
5 2 3.8
6 2 3
1 3 3
2 3 3
3 3 3
4 3 3
5 3 3
6 3 3
1 4 3
2 4 3
3 4 3
4 4 3
5 4 3
6 4 3
1 5 3
2 5 3.8
3 5 4.2
4 5 4.2
5 5 3.8
6 5 3
1 6 3
2 6 3.4
3 6 3.6
4 6 3.6
5 6 3.4
6 6 3
如何使用包含此数据的txt文件构建vtkPolyData结构?
答案 0 :(得分:3)
在我看来,你有一系列定期网格,对吧?如果是这样,vtkImageData可能是更好的选择。如果您真的需要,可以随后使用几何过滤器转换为polydata。
如果是在C ++中,
如果是另一种语言(TCL / Python / Java),请在图像数据上调用SetScalarComponentFromFloat,并使用参数(x,y,0,0,value)。第一个0是第三个维度,第二个是第一个组件。
这将为您提供一个网格,它将比聚数据更有效。
如果要仅显示点,请使用vtkDataSetMapper,并使用SetRepresentationToPoints()设置actor的属性,并设置适当的磅值。这将做一个简单的可视化工作。
答案 1 :(得分:0)
these examples有用吗?特别是,this生成点和多边形,因此应该可以适应。核心似乎是( lot 遗漏):
# ...
vtkPolyData shell
vtkFloatPoints points
vtkCellArray strips
# Generate points...
loop {
...
points InsertPoint $k $x0 $x1 $x2
}
shell SetPoints points
points Delete
# Generate triangles/polygons...
loop {
strips InsertNextCell $NP2
# ...
strips InsertCellPoint [expr $kb +$ke ]
# ...
strips InsertCellPoint [expr $kb +$ke ]
}
shell SetStrips strips
strips Delete
# ...