(这几天在使用vtkAxesActor的时候发现一些问题和解决办法,特此记录一下)
注:
1.VTK版本是8.2.0;
2.主要是设置xyz标注(label)时碰到的问题;
3.如果有其他更好的方式,欢迎在评论区留言.
正文
创建一个坐标轴actor并渲染:
vtkSmartPointer<vtkAxesActor> axesActor = vtkSmartPointer<vtkAxesActor>::New();
axesActor->SetAxisLabels( 1 ); // 设置显示label
1.设置标注(vtkCaptionActor2D)字体颜色
在使用的过程中,发现下面方式不起作用:
vtkCaptionActor2D* xAxisCaptionActor = axesActor->GetXAxisCaptionActor2D();
xAxisCaptionActor->GetProperty()->SetColor( 1, 0, 0 );//修改X字体颜色为红色
效果:
然后经过我研究,下面这种方式是可以实现的:
vtkTextProperty* captionTextProperty = xAxisCaptionActor->GetCaptionTextProperty();
captionTextProperty->SetColor( 1, 0, 0 );
效果:
2.设置标注(vtkCaptionActor2D)字体大小
// 方式一和方式二原理一样
// 方式一:
//xAxisCaptionActor->SetPosition2( 0.5, 0.2 );
// 方式二:
xAxisCaptionActor->SetWidth( 0.5 );
xAxisCaptionActor->SetHeight( 0.2 );
// 方式三:
xAxisCaptionActor->GetTextActor()->SetTextScaleModeToNone();
// 默认是SetTextScaleModeToProp,导致设置字体大小不起作用
// SetTextScaleModeToViewport也能起作用
xAxisCaptionActor->GetCaptionTextProperty()->SetFontSize( 70 ); // 字体大小设置为70
效果:
参考文章:
1. VTK中改变默认的vtkAxesActor坐标轴上X,Y,Z的字体颜色,从白色改为其他颜色_HW140701的博客-优快云博客