[英]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.