![](https://i-blog.csdnimg.cn/blog_migrate/6b25110bd597afc71c47fb0cde15c4bc.png)
#pragma once
#include <VtkJoeInterface.h>
#include <vtkAxesActor.h>
#include <vtkCamera.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkOrientationMarkerWidget.h>
#include <vtkPolyData.h>
#include <vtkPolyDataMapper.h>
#include <vtkPropAssembly.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkProperty.h>
class F730DisplayCoordinateAxes :public VtkJoeInterface
{
public:
void renderInit() override;
void renderLoop() override;
private:
vtkNew<vtkActor> actor;
};
inline void F730DisplayCoordinateAxes::renderInit()
{
vtkNew<vtkSphereSource> sphereSource;
sphereSource->SetCenter(0.0, 0.0, 0.0);
sphereSource->SetRadius(1.0);
sphereSource->Update();
vtkPolyData* polydata = sphereSource->GetOutput();
// Create a mapper
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputData(polydata);
// Create an actor
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
actor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());
// A renderer and render window
vtkNew<vtkRenderer> renderer;
vtkNew<vtkRenderWindow> renderWindow;
renderWindow->SetWindowName("DisplayCoordinateAxes");
renderWindow->AddRenderer(renderer);
// An interactor
vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
renderWindowInteractor->SetRenderWindow(renderWindow);
// Add the actors to the scene
renderer->AddActor(actor);
renderer->SetBackground(colors->GetColor3d("SlateGray").GetData());
vtkNew<vtkAxesActor> axes;
vtkNew<vtkOrientationMarkerWidget> widget;
double rgba[4]{ 0.0, 0.0, 0.0, 0.0 };
colors->GetColor("Carrot", rgba);
widget->SetOutlineColor(rgba[0], rgba[1], rgba[2]);
widget->SetOrientationMarker(axes);
widget->SetInteractor(renderWindowInteractor);
widget->SetViewport(0.0, 0.0, 0.4, 0.4);
widget->SetEnabled(1);
widget->InteractiveOn();
renderer->GetActiveCamera()->Azimuth(50);
renderer->GetActiveCamera()->Elevation(-30);
renderer->ResetCamera();
renderWindow->Render();
// Begin mouse interaction
renderWindowInteractor->Start();
}
inline void F730DisplayCoordinateAxes::renderLoop()
{
}