网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月08日漏签0天
vtk吧 关注:1,236贴子:10,456
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 17回复贴,共1页
<<返回vtk吧
>0< 加载中...

4.多Actor组装体,鼠标响应问题

  • 只看楼主
  • 收藏

  • 回复
  • 你不是真的痛苦
  • 六年级
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
描述:
物体通常由多个部分按一定的几何关系组装而成,如核电站中的压力容器有顶盖、筒体管嘴及法兰段还有下部组件。我们希望将这些部分组装起来,同时也希望具备对组装部分单独操作交互能力。
——————————————————————————————————————
方法一:
直接向vtkRenderer中添加Actor
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor( actorSTL1);
renderer->AddActor( actorSTL2 );
renderer->AddActor( actorSTL3 );

方法二:
使用assembly类函数
vtkSmartPointer<vtkAssembly> assembly =
vtkSmartPointer<vtkAssembly>::New();
assembly->AddPart(actorSTL1);
assembly->AddPart(actorSTL2);
assembly->AddPart(actorSTL3);
renderer->AddActor( assembly );
输出结果同上


  • 你不是真的痛苦
  • 六年级
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

将输入法切换到英文,按“a”,按鼠标中键仍然是所有小球作为整体移动。


2025-06-08 11:03:56
广告
  • 你不是真的痛苦
  • 六年级
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
http://tieba.baidu.com/p/3714632261
在吧主留下的痕迹中,找到了解决问题的方法
各个组件移动后,如果有个一键还原就好了


  • 你不是真的痛苦
  • 六年级
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
**********************************************************************************************
// Handle mouse events
class PropPickerInteractorStyle : public vtkInteractorStyleTrackballCamera
{
public:
static PropPickerInteractorStyle* New();
vtkTypeMacro(PropPickerInteractorStyle, vtkInteractorStyleTrackballCamera);
PropPickerInteractorStyle()
{
LastPickedActor = NULL;
LastPickedProperty = vtkProperty::New();
}
virtual ~PropPickerInteractorStyle()
{
LastPickedProperty->Delete();
}
virtual void OnLeftButtonDown()
{
int* clickPos = this->GetInteractor()->GetEventPosition();
// Pick from this location.
vtkSmartPointer<vtkPropPicker> picker =
vtkSmartPointer<vtkPropPicker>::New();
picker->Pick(clickPos[0], clickPos[1], 0, this->GetDefaultRenderer());
double* pos = picker->GetPickPosition();
// If we picked something before, reset its property
if (this->LastPickedActor)
{
this->LastPickedActor->GetProperty()->DeepCopy(this->LastPickedProperty);
}
this->LastPickedActor = picker->GetActor();
if (this->LastPickedActor)
{
// Save the property of the picked actor so that we can restore it next time
this->LastPickedProperty->DeepCopy(this->LastPickedActor->GetProperty());
// Highlight the picked actor by changing its properties
this->LastPickedActor->GetProperty()->SetColor(1.0, 0.0, 0.0);
this->LastPickedActor->GetProperty()->SetDiffuse(1.0);
this->LastPickedActor->GetProperty()->SetSpecular(0.0);
}
// Forward events
vtkInteractorStyleTrackballCamera::OnLeftButtonDown();
}
private:
vtkActor *LastPickedActor;
vtkProperty *LastPickedProperty;
};
vtkStandardNewMacro(PropPickerInteractorStyle);
*****************************************************************************************************
上面代码功能:当用户单机渲染场景中的某个对象时,所拾取的对象进行红色高亮显示。
不知道为啥,我带入后无效。。。


  • 文刀问道666
  • 学前班
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请教楼主,如何将多个stl模型一次导入到vtk中


  • scumiangege
  • 一年级
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请问多个actor之间的位置关系是怎么确定的?不会输入4个actor就组成一个具体的模型了把


  • wxy梦醒
  • 托儿所
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
小吧主,你是做什么的?用的是核电站的模型?我是学核的,但是我想做这种三维建模的方向


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 17回复贴,共1页
<<返回vtk吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示