如何从mayavi中的切割平面检索线?
我已经能够检索点,但我没有关于锥度的信息。
cutplane.cutter.outputs[0].points.to_array()
答案 0 :(得分:1)
您找到了点坐标:
PtsCoord = cutplane.cutter.outputs[0].points.to_array()
您还可以找到名为polys.to_array()的内容。也许在这里:
PolyAndTriIDs = cutplane.cutter.outputs[0].polys.to_array()
此变量包含形成三角形和多边形的点的索引,然后您可以使用以下行提取所有坐标:
jj=0
while (jj < PolyAndTriIDs.shape[0]):
if PolyAndTriIDs[jj] == 3: # triangles
x1,y1,z1 = PtsCoord[PolyAndTriIDs[jj+1],:]
x2,y2,z2 = PtsCoord[PolyAndTriIDs[jj+2],:]
x3,y3,z3 = PtsCoord[PolyAndTriIDs[jj+3],:]
jj=jj+4
else: # quadrilateral
x1,y1,z1 = PtsCoord[PolyAndTriIDs[jj+1],:]
x2,y2,z2 = PtsCoord[PolyAndTriIDs[jj+2],:]
x3,y3,z3 = PtsCoord[PolyAndTriIDs[jj+3],:]
x4,y4,z4 = PtsCoord[PolyAndTriIDs[jj+4],:]
jj=jj+5
HTH