带有非线性标签的vtkScalarBar

vtkScalarBar with non linear labels

本文关键字:vtkScalarBar 标签 非线性      更新时间:2023-10-16

有没有办法让标量条不自动将标签设置为线性值?

我想访问标签表并更改自己的值,使其遵循我自己的公式。

// scalar bar
_hueLut = vtkLookupTable::New();
_hueLut->SetNumberOfTableValues(100);
_hueLut->SetTableRange(0, 100);
_hueLut->SetTableValue(0, 0, 0, 1);
_hueLut->SetTableValue(1, 0, 1, 0);
//etc...
_hueLut->Build();

_scalarBar = vtkScalarBarActor::New();
_scalarBar->SetLookupTable(_hueLut);
_scalarBar->SetTitle("logarithm scalar bar");
_scalarBar->SetNumberOfLabels(5);
_scalarBar->SetLabelFormat("%5.4g");

问题是,我的标量条形标签似乎显示了值0、25、50、75和100。我希望能够更改标签值。例如:0、10、25、50、100。

谢谢。

不支持直接指定自己的函数,只有线性和对数刻度在vtkLookupTable中实现,CCD_1是标量条值颜色映射的类。但是,您可以很容易地从vtkLookupTable派生并覆盖Build()方法来实现任意映射。参见vtkWindowLevelLookupTable以获得一个好的示例。

如果您只需要日志转换,那么在lut。并确保范围是正的。

渐变功能有3个选项,可以调整颜色的变化方式,也可以说是颜色的"敏感度"。S曲线(默认值(,在范围、线性和sqrt的末端提供更渐变的效果。有关更多详细信息,请参阅文档。

HTH,

Miro