簡體   English   中英

C#/ WPF中的VTK旋轉

[英]VTK rotation in C#/WPF

我正在使用WPF和C#開發項目。 我試圖使3D對象分別繞x,y和z軸旋轉。

在我看來,這樣的事情應該工作:

#include <vtkConeSource.h>
#include <vtkPolyData.h>
#include <vtkTransformPolyDataFilter.h>
#include <vtkTransform.h>
#include <vtkSmartPointer.h>
#include <vtkXMLPolyDataWriter.h>

int main(int, char *[])
{
  //Create a cone
  vtkSmartPointer<vtkConeSource> coneSource = 
    vtkSmartPointer<vtkConeSource>::New();

  {
  vtkSmartPointer<vtkXMLPolyDataWriter> writer = 
      vtkSmartPointer<vtkXMLPolyDataWriter>::New();
  writer->SetInputConnection(coneSource->GetOutputPort());
  writer->SetFileName("original.vtp");
  writer->Write();
  }

  vtkSmartPointer<vtkTransform> transform = vtkSmartPointer<vtkTransform>::New();
  //transform->RotateWXYZ(double angle, double x, double y, double z);
  transform->RotateWXYZ(10, 0, 1, 0);

  vtkSmartPointer<vtkTransformPolyDataFilter> transformFilter = 
      vtkSmartPointer<vtkTransformPolyDataFilter>::New();

  transformFilter->SetTransform(transform);
  transformFilter->SetInputConnection(coneSource->GetOutputPort());
  transformFilter->Update();

  {
    vtkSmartPointer<vtkXMLPolyDataWriter> writer = 
        vtkSmartPointer<vtkXMLPolyDataWriter>::New();
    writer->SetInputConnection(transformFilter->GetOutputPort());
    writer->SetFileName("transformed.vtp");
    writer->Write();
  }

  return EXIT_SUCCESS;
}

盡管它在C ++中。

但是,vtkSmartPointer C#中似乎沒有,所以如何在C#中使用vtkTransform使對象旋轉? 還是應該采用其他方式?

非常感謝。 這是我使用VTK的第一天,所以請您慢慢解釋一下:)

您無需在C#中使用vtk smartpointers,因為C#負責內存管理本身。

對於轉換線,您可以使用:

vtkTransform transform = vtkTransform.New()

如果要查看格式,可以在http://www.vtk.org/Wiki/VTK/Examples/CSharp中找到許多VTK的C#示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM