zoukankan      html  css  js  c++  java
  • vtk renderer / rendering 绘制

    1.在绘制窗口中绘制出物体(静态的)
    vtkRenderWindow * w=vtkRenderWindow::New();  
    w->AddRenderer(r);        
    for(int i=0;i<65535;i++)       
         w->Render();

    2.在绘制窗口里面直接绘制出物体(演员),并通过自动旋转照相机来旋转物体
    vtkRenderWindow *w = vtkRenderWindow::New();
    w->AddRenderer( r );
    for (i = 0; i < 360; ++i)
    {
         w->Render();
         r->GetActiveCamera()->Azimuth( 1 ); 
    }

    3.对绘制窗口添加一个观察者,没有交互
    class vtkMyCallback : public vtkCommand
    {
    public:
    static vtkMyCallback *New() 
        { return new vtkMyCallback; }
    virtual void Execute(vtkObject *caller, unsigned long, void*)
        {
          vtkRenderer *renderer = reinterpret_cast<vtkRenderer*>(caller);
          cout << renderer->GetActiveCamera()->GetPosition()[0] << " "
               << renderer->GetActiveCamera()->GetPosition()[1] << " "
               << renderer->GetActiveCamera()->GetPosition()[2] << " ";
        }
    };

    vtkRenderWindow *renWin = vtkRenderWindow::New();
    renWin->AddRenderer( ren1 );
    vtkMyCallback *Observer = vtkMyCallback::New();
    ren1->AddObserver(vtkCommand::StartEvent,Observer);
    for (int i = 0; i < 360; ++i)
    {
       renWin->Render();
       ren1->GetActiveCamera()->Azimuth( 1 );
    }
    4.对绘制窗添加一个交互器,实现对物体(演员)的控制
    vtkRenderWindow *w = vtkRenderWindow::New();
    w->AddRenderer( r );
    vtkRenderWindowInteractor *i=vtkRenderWindowInteractor::New();
    i->SetRenderWindow(w);
    i->Initialize();
    i->Start();
    i->Delete();

    vtkInteractorObserver *p=(vtkInteractorObserver *)vtkInteractorObserver::New();
    p->EnabledOff ();

    5.将观察者注册到交互器上
    vtkRenderWindow *w = vtkRenderWindow::New();
    w->AddRenderer( r );
    vtkRenderWindowInteractor *i=vtkRenderWindowInteractor::New();
    i->SetRenderWindow(w);
    vtkPointWidget * c=vtkPointWidget::New(); //vtkInteractorObserver的子类
    c->SetInteractor(i); 
    i->Initialize();
    i->Start();

  • 相关阅读:
    P2890 [USACO07OPEN]Cheapest Palindrome G 题解
    「NOIP2021模拟赛 By JXC C」位运算 题解
    AT5759 ThREE 题解
    P7532 [USACO21OPEN] Balanced Subsets P 题解
    linux下的pdf分割合并软件
    Python小练习 SDUT 2521 出现次数
    小问题备查持续更新
    Python小练习自动登录人人发送消息并返回好友列表
    Debian系使用小红点
    linux权限问题学习总结
  • 原文地址:https://www.cnblogs.com/burellow/p/3641743.html
Copyright © 2011-2022 走看看