私は 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 を使用する最初の日です。