vtk 动画入门 1 代码

实现效果如图:

cpp 复制代码
#include <vtkAutoInit.h>
//VTK_MODULE_INIT(vtkRenderingOpenGL2);
//VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
//VTK_MODULE_INIT(vtkRenderingFreeType);
#include <iostream>
#include <windows.h>
#include "vtkSmartPointer.h"
#include "vtkMultiBlockDataSet.h"
#include "vtkTecplotReader.h"
#include "vtkPointData.h"
#include "vtkCellData.h"
#include "vtkDataSetMapper.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkRenderWindow.h"
#include "vtkRenderer.h"
#include "vtkCellDataToPointData.h"
#include "vtkAppendFilter.h" 
#include "vtkPolyData.h"
#include "vtkUnstructuredGrid.h" 
#include "vtkLookupTable.h"
#include "vtkScalarBarActor.h"
#include "vtkRenderWindowInteractor.h"
#include <string>
#include "vtkCellArray.h"
#include "vtkIdList.h" 
#include "vtkSphereSource.h" 
#include "vtkPolyDataMapper.h" 
#include "vtkAnimationCue.h" 
#include "vtkAnimationScene.h" 
#include "vtkNew.h" 


class  vtkCustomAnimationCue : public vtkAnimationCue
{
public:
	static vtkCustomAnimationCue* New();
	//vtkTypeRevisionMacro(vtkCustomAnimationCue,vtkAnimationCue);
	 vtkRenderWindow *  RenWin ;
	 vtkSphereSource *  Sphere  ;

protected:
	vtkCustomAnimationCue() {

	}
	virtual void TickInternal(double currenttime, double deltatime,double clocktime) {
		double new_st = currenttime * 180;
		this->Sphere->SetStartTheta(new_st);
		this->RenWin->Render();
	}

private:

};

vtkStandardNewMacro(vtkCustomAnimationCue);
 

void main() {

	/**/
	vtkNew<vtkRenderer> renderer ;
	vtkNew<vtkRenderWindow> renWin  ;
	renWin->SetMultiSamples(0);
	//renWin->SetSize(2000,2000);
	renWin->AddRenderer(renderer);

	vtkNew<vtkSphereSource> sphere ;

	vtkNew<vtkPolyDataMapper> mapper  ;
	mapper->SetInputConnection(sphere->GetOutputPort());
	vtkNew<vtkActor> actor ;
	actor->SetMapper(mapper);
	renderer->AddActor(actor);
	renWin->Render();

	/** /
	vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
	renderWindowInteractor->SetRenderWindow(renWin);
	renderWindowInteractor->Start();
	**/

	vtkNew<vtkAnimationScene> scene  ;
	//scene->SetModeToRealTime();
	scene->SetModeToSequence();
	scene->SetFrameRate(30);
	scene->SetStartTime(0);
	scene->SetEndTime(60);

	vtkNew<vtkCustomAnimationCue> cue;
	cue->Sphere = sphere;
	cue->RenWin = renWin;
	cue->SetTimeModeToNormalized();
	cue->SetStartTime(.0);
	cue->SetEndTime(1.0);

	scene->AddCue(cue);
	scene->Play();
	scene->Stop();
	 
}
  
相关推荐
LCG元9 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
youcans_9 天前
【AI辅助编程】ROP 图像预处理
图像处理·人工智能·ai编程·辅助编程
TDengine (老段)9 天前
TDengine IDMP 数据可视化——散点图
大数据·数据库·物联网·信息可视化·时序数据库·tdengine·涛思数据
发哥来了9 天前
主流GEO优化系统技术对比评测
人工智能·信息可视化
sali-tec9 天前
C# 基于OpenCv的视觉工作流-章27-图像分割
图像处理·人工智能·opencv·算法·计算机视觉
unicrom_深圳市由你创科技9 天前
医疗设备专用图像处理板卡定制
图像处理·人工智能·fpga开发
Youngchatgpt9 天前
数据科学家如何使用 ChatGPT?
人工智能·信息可视化·chatgpt
guygg889 天前
图像匹配技术:相关匹配、Hausdorff距离匹配与基于距离变换的Hausdorff距离匹配
图像处理·opencv·计算机视觉
weixin_440401699 天前
Python数据分析-数据可视化(柱状图bar【双轴柱状图、动态柱状图】)
python·信息可视化·数据分析
2501_944934739 天前
高职数据可视化技术专业,怎么找远程的数据可视化兼职?
信息可视化