简短的问题但是有一种功能/方法可以轻松改变VTK C ++中的箭头大小吗?
我想这样做是因为我试图在特定位置显示一组箭头,这些箭头彼此非常接近,但因为我无法改变箭头大小,所以输出看起来非常混乱。
目前我正在使用箭头源对象,将它们添加到唯一的actor,然后迭代地将它们添加到渲染器。
答案 0 :(得分:1)
您可以尝试使用myActor.SetScale(0.5)之类的内容scale the vtkActor。如果一切顺利,这应该缩放你的箭头大小而不改变其他任何东西。
答案 1 :(得分:0)
为了设置vtkArrowSource的 length ,你应该设置actor的x-scale维度。
添加vtkArrowSource时:
vtkSmartPointer<vtkArrowSource> arrowSource = vtkSmartPointer<vtkArrowSource>::New();
arrowSource->SetShaftRadius(0.05);
arrowSource->SetTipRadius(0.1);
arrowSource->SetTipLength(0.3);
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(arrowSource->GetOutputPort());
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
神奇:
double scale[3] = { 10, 1, 1 }; // Set x-scale to 10, y and z unchanged (1)
actor->SetScale(scale);
注意:这也会延伸箭头! 我通过设置
来解决这个问题arrowSource->SetTipLength(0.3 / 10); // Scales arrow tip down by factor 10
用变量替换10次出现的10次以对其进行参数化。