我在 VTK 中創建了一個簡單的非結構化正方形:x = [0,10,0,10]y = [0, 0, 10, 10]z = [0,0,0,0]data = np.asarray([x,y,z]).Tfor i in range(0, len(x)): points.InsertPoint(i, data[i])quad = [2,3,1,0]ugrid.InsertNextCell(vtk.VTK_QUAD, 4, quad)ugrid.SetPoints(points)假設我想創建一個正方形溫度的顏色圖。我知道角落的溫度: temp = [0,20,40,60]知道這些值如何為整個正方形著色?VTK 在他們的教程(ColoredElevationMap 教程)中提供了一個創建顏色圖的示例,但是,我并不完全理解它,我相信還有另一種更簡單的方法可以在我不知道的 VTK 中創建顏色圖。
2 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
您應該添加數據數組并將其設置為標量(= 在 VTK 中使用的默認數組,特別是用于著色)
temperature = vtk.vtkIntArray()
temperature.SetName("Temp")
temp = [00,20,40,60]
for t in temp:
temperature.InsertNextValue(t)
ugrid.GetPointData().SetScalars(temperature)
然后在渲染部分,默認使用這個數組進行著色。您仍然需要更新顏色范圍:
mapper.SetScalarRange(ugrid.GetScalarRange())
你可以看看這個例子(編輯:更新鏈接感謝@paulo-carvalho)

繁華開滿天機
TA貢獻1816條經驗 獲得超4個贊
添加到 Nico Vuaille 的答案??梢允褂貌檎冶砀牡貓D的顏色,例如:
lut = vtk.vtkLookupTable()
lut.SetHueRange(0, 0)
lut.SetSaturationRange(0, 0)
lut.SetValueRange(0.2, 1.0)
lut.Build()
和
Mapper.SetLookupTable(lut)
添加回答
舉報
0/150
提交
取消