⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slice3.cpp

📁 VTK入门样例(种类齐全)
💻 CPP
字号:



#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkSampleFunction.h"
#include "vtkDataSetMapper.h"
#include "vtkActor.h"
#include "vtkCamera.h"
#include "vtkPoints.h"
#include "vtkImplicitSum.h"
#include "vtkProperty.h"
#include "vtkPolyData.h"
#include "vtkPerlinNoise.h"
#include "vtkPlane.h"
#include "vtkContourFilter.h"
#include "vtkPolyDataNormals.h"
#include "vtkPolyDataMapper.h"

void main()
{
  vtkRenderer *ren1 = vtkRenderer::New();
  vtkRenderWindow *renWin = vtkRenderWindow::New();
    renWin->AddRenderer(ren1);
  vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
    iren->SetRenderWindow(renWin);

vtkPlane *plane=vtkPlane::New();

vtkPerlinNoise *p1=vtkPerlinNoise::New();
p1-> SetFrequency (1 ,1 ,0);

vtkPerlinNoise *p2=vtkPerlinNoise::New();
p2-> SetFrequency (3 ,5 ,0);
p2-> SetPhase (0.5 ,0.5 ,0);

vtkPerlinNoise *p3=vtkPerlinNoise::New();
p3-> SetFrequency (16 ,16 ,0);

vtkImplicitSum *sum=vtkImplicitSum::New();
sum-> SetNormalizeByWeight (1);
sum-> AddFunction (plane);
sum-> AddFunction (p1 ,0.2);
sum-> AddFunction (p2 ,0.1);
sum-> AddFunction( p3 ,0.02);

vtkSampleFunction *sample=vtkSampleFunction::New();
    sample-> SetImplicitFunction (sum);
    sample-> SetSampleDimensions (65 ,65 ,20);
    sample-> SetModelBounds (-1 ,1 ,-1 ,1 ,-0.5 ,0.5);
    sample-> ComputeNormalsOff();

vtkContourFilter *surface=vtkContourFilter::New();
    surface-> SetInputConnection (sample-> GetOutputPort());
    surface-> SetValue (0 ,0.0);

vtkPolyDataNormals *smooth=vtkPolyDataNormals::New();
    smooth-> SetInputConnection (surface-> GetOutputPort());
    smooth-> SetFeatureAngle (90);

vtkPolyDataMapper *mapper=vtkPolyDataMapper::New();
    mapper-> SetInputConnection (smooth-> GetOutputPort());
    mapper-> ScalarVisibilityOff();

  vtkActor *triangulation=vtkActor::New();
	triangulation-> SetMapper (mapper);
	triangulation-> GetProperty()-> SetColor (0.4 ,0.2 ,0.1);

  ren1-> AddActor (triangulation);
  ren1-> SetBackground (1, 1, 1);
  renWin-> SetSize (600,500);

  ren1-> ResetCamera();
  ren1-> GetActiveCamera()->Zoom( 1.4);

  renWin->Render();
  iren->Start();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -