按照此处的代码,可以获取粒度 vtkPolyData 以在 python 中传递给 k3d。但是,我目前正在像这样为 k3d 分配颜色;
def rgb2hex(r,g,b):
return eval("0x{:02x}{:02x}{:02x}".format(r,g,b))
#using the actors from [referenced code][1] to get the granular actors from .OBJ
col = actor.GetProperty().GetDiffuseColor()
rgb2hex(int(col[0]*255),int(col[1]*255),int(col[2]*255))
这是丑陋和低效的。vtkPolyDataMapper 应该已经在处理颜色了,所以必须有一种更直接的方式来做这件事。如何使用 vtkPolyDataMapper 获取要通过管道传输到 k3d.vtk_poly_data() 颜色参数的颜色列表?
mapper = actor.GetMapper()
mapper.SetInputData(vtkPolyData)