通过property设置的颜色和实际颜色有出入,采用标量方式可以设置对应的颜色
public void SetPolyRealColor(vtkActor actor, Color color)
{
var poly1 = (vtkPolyData)actor.GetMapper().GetInput();
var pNum = actor.GetMapper().GetInput().GetNumberOfPoints();
vtkUnsignedCharArray colorArray = vtkUnsignedCharArray.New();
colorArray.SetNumberOfComponents(3);
colorArray.SetNumberOfValues(3 * pNum);
var r = color.R; var g = color.G; var b = color.B;
colorArray.FillComponent(0, r);
colorArray.FillComponent(1, g);
colorArray.FillComponent(2, b);
colorArray.Modified();
poly1.GetPointData().SetScalars(colorArray);
actor.GetMapper().SetColorModeToDefault();
}