众所周知,VTK文本支持3种字体,分别是VTK_ARIAL,VTK_COURIER和VTK_TIMES。但在这种情况下,我想自定义文本字体。
现在,我所做的一切都是:
vtkTextActor* textActor = vtkTextActor::New();
//...
vtkUnicodeString u = vtkUnicodeString::from_utf16((const vtkTypeUInt16*)txt);
textActor->SetInput(u.utf8_str());
//...
vtkTextProperty* prop = textActor->GetTextProperty();
prop->SetFontFamily(VTK_FONT_FILE);
prop->BoldOff();
prop->ItalicOff();
prop->ShadowOff();
prop->SetLineSpacing(1.2);
//...
prop->SetFontSize(iFontSize);
prop->SetFontFile(font_file_full_path);
我的系统上安装了很多字体(真实字体),上面的代码只适用于某些指定字体大小的字体。比如,它支持 ' Calibric'文件大小为8,14,16的字体,但如果将iFontSize设置为12,则vtk无法显示该字符串。
所以我的问题是vtk 6.1不支持我系统上安装的各种真实字体吗?如果是这种情况,是否有任何功能我可以用来检查是否支持一种字体/字体大小?
先谢谢你的帮助。