我已经这样定义了我的vtkLegendScaleActor:
vtkSmartPointer<vtkLegendScaleActor> legendScaleActor = vtkSmartPointer<vtkLegendScaleActor>::New();
legendScaleActor->GetLegendLabelProperty()->SetColor(0,0,0);
legendScaleActor->GetLegendTitleProperty()->SetColor(0,0,0);
legendScaleActor->SetBottomAxisVisibility(0);
legendScaleActor->SetTopAxisVisibility(0);
legendScaleActor->SetRightAxisVisibility(0);
legendScaleActor->SetLeftAxisVisibility(0);
legendScaleActor->GetLegendLabelProperty()->SetFontSize(legendScaleActor->GetLegendLabelProperty()->GetFontSize() * 2);
legendScaleActor->GetLegendTitleProperty()->SetFontSize(legendScaleActor->GetLegendTitleProperty()->GetFontSize() * 2);
我想增加标签和标题中的字体大小,并隐藏所有轴。
在这里我可以看到带有比例尺规则的几何图形,但是它受窗口范围的限制。
我想上移图例,但是我可以找到给定类的正确属性。关于如何做的任何想法?
编辑
我一直在解决这个问题,我要做的是使用
vtkLegendScaleActor 对象的标签和标题添加负偏移量,
legendScaleActor->GetLegendTitleProperty()->SetLineOffset(-25);
legendScaleActor->GetLegendLabelProperty()->SetLineOffset(-25);
尽管如此,我不能移动标尺,也不能将整个标尺放在一起……这就是为什么我认为应该有一个更好的解决方案。
答案 0 :(得分:1)
继承vtkLegendScaleActor。然后重新实现BuildRepresentation方法并修改LabelActor的坐标。这样,您就可以完全控制制图表达,因为所有Actor和Mappers都受到保护,因此可以修改。