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();
	 
}
  
相关推荐
狮子也疯狂9 小时前
基于Python的气象数据分析及可视化研究
python·信息可视化·数据分析
一起搞IT吧10 小时前
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
android·图像处理·数码相机
杨超越luckly11 小时前
“详规一张图”——新加坡土地利用数据
前端·数据库·arcgis·信息可视化·数据分析
HarrietLH11 小时前
Matlab实现任意伪彩色图像可视化显示
图像处理·计算机视觉·matlab
大白爱琴12 小时前
使用python进行图像处理—图像变换(6)
图像处理·人工智能·python
大白爱琴18 小时前
使用python进行图像处理—像素级操作与图像算术(4)
开发语言·图像处理·python
Leo.yuan19 小时前
数据湖是什么?数据湖和数据仓库的区别是什么?
大数据·运维·数据仓库·人工智能·信息可视化
vvilkim20 小时前
Pandas 可视化集成:数据科学家的高效绘图指南
信息可视化·pandas
时间之里1 天前
【图像处理3D】:焦距的像素单位标定
图像处理·数码相机·3d
老胖闲聊1 天前
Python Rio 【图像处理】库简介
开发语言·图像处理·python