新手求教:如何获取新建交互类中的数据?
vtk吧
全部回复
仅看楼主
level 3
举个例子
class MouseInteractorStyle2 : public vtkInteractorStyleTrackballCamera
{
public:
static MouseInteractorStyle2* New();
vtkTypeMacro(MouseInteractorStyle2, vtkInteractorStyleTrackballCamera);
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();
std::cout << "Pick position (world coordinates) is: "
<< pos[0] << " " << pos[1]
<< " " << pos[2] << std::endl;
std::cout << "Picked actor: " << picker->GetActor() << std::endl;
//Create a sphere
vtkSmartPointer<vtkSphereSource> sphereSource =
vtkSmartPointer<vtkSphereSource>::New();
sphereSource->SetCenter(pos[0], pos[1], pos[2]);
sphereSource->SetRadius(1);
//Create a mapper and actor
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(sphereSource->GetOutputPort());
vtkSmartPointer<vtkActor> actor =
vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
actor->GetProperty()->SetColor(1, 0, 0);
//this->GetInteractor()->GetRenderWindow()->GetRenderers()->GetDefaultRenderer()->AddActor(actor);
this->GetDefaultRenderer()->AddActor(actor);
// Forward events
vtkInteractorStyleTrackballCamera::OnLeftButtonDown();
}
private:
};
vtkStandardNewMacro(MouseInteractorStyle2);
将其中的坐标信息提取出来使用,求大神指导[呵呵]
2017年06月14日 01点06分 1
level 7
设置一个double 类型指针成员变量 来存你获得的坐标 然后写一个返回值为double* 的公有函数 返回这个成员指针变量就可以了;
2017年06月14日 02点06分 2
定义了 double* get_point() { return pos; } private: double* pos; 在主程序cout<<"坐标点为:"<<style->get_point();获取pos值为0,跟踪POS值显示未定义,求大神指点[泪]
2017年06月15日 01点06分
@文刀问道666 需要new
2017年06月15日 03点06分
@随便一玩啊 看了一下new的用法,试验了一下还是不对,大神可以指点一下吗
2017年06月16日 07点06分
@文刀问道666 这问题属于C++语言的范畴了啊 m_Postion = new double[3]; double* micvtkStyleImage::GetClickedPostion() { return m_Postion; }
2017年06月17日 08点06分
level 1
兄弟 你这个问题解决了么 我也遇到相同的问题了
2017年12月15日 03点12分 3
1