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

📄 三角化.cpp

📁 VTK入门样例(种类齐全)
💻 CPP
字号:
#include "vtkPolyDataMapper.h"
#include "vtkPolyDataReader.h"
#include "vtkRenderer.h"
#include "vtkWin32OpenGLRenderWindow.h"
#include "vtkWin32RenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkTexture.h"
#include "vtkTextureMapToCylinder.h"
#include "vtkPointSource.h"
#include "vtkTransformTextureCoords.h"
#include "vtkDelaunay3D.h"
#include "vtkPolyData.h"
#include "vtkDataSetMapper.h"
#include "vtkBMPReader.h"
#include "vtkHull.h"
#include "vtkBYUReader.h"
#include "vtkPolyDataNormals.h"
#include "vtkTriangleFilter.h"
#include "vtkFeatureEdges.h"
#include "vtkPolyDataMapper.h"

void main()
{
//Compute normals, in case they are not provided with the model.
	vtkRenderer *ren=vtkRenderer::New();
	vtkWin32OpenGLRenderWindow *renWin=vtkWin32OpenGLRenderWindow::New();
  	  renWin->AddRenderer(ren);
	vtkWin32RenderWindowInteractor *iren=vtkWin32RenderWindowInteractor::New();
	  iren->SetRenderWindow(renWin);	

	vtkBYUReader *byuReader=vtkBYUReader::New();
	  byuReader->SetGeometryFileName("teapot.g");
	
	vtkPolyDataMapper  *byuMapper=vtkPolyDataMapper::New();
      byuMapper-> SetInputConnection (byuReader-> GetOutputPort());

	double diagonal;
	  
////////////////////0
    vtkActor *byuActor0=vtkActor::New();
      byuActor0-> SetMapper (byuMapper);
    ren-> AddActor (byuActor0);

    vtkHull *hull0=vtkHull::New();
    hull0-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper0=vtkPolyDataMapper::New();
    hullMapper0-> SetInputConnection (hull0-> GetOutputPort());
    
    vtkActor *hullActor0=vtkActor::New();
    hullActor0-> SetMapper (hullMapper0);
    hullActor0-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor0-> GetProperty()-> SetAmbient (0.2);
    hullActor0-> GetProperty()-> SetDiffuse (0.8);
    hullActor0-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor0);


	diagonal =byuActor0-> GetLength();


	byuActor0->AddPosition ( -diagonal,-diagonal, 0);
	hullActor0->AddPosition( -diagonal,-diagonal, 0);

	  
////////////////////1
    vtkActor *byuActor1=vtkActor::New();
      byuActor1-> SetMapper (byuMapper);
    ren-> AddActor (byuActor1);

    vtkHull *hull1=vtkHull::New();
    hull1-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper1=vtkPolyDataMapper::New();
    hullMapper1-> SetInputConnection (hull1-> GetOutputPort());
    
    vtkActor *hullActor1=vtkActor::New();
    hullActor1-> SetMapper (hullMapper1);
    hullActor1-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor1-> GetProperty()-> SetAmbient (0.2);
    hullActor1-> GetProperty()-> SetDiffuse (0.8);
    hullActor1-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor1);


	diagonal =byuActor1-> GetLength();


	byuActor1->AddPosition ( - diagonal,  0, 0);
	hullActor1->AddPosition( - diagonal,  0, 0);

	  
////////////////////2
    vtkActor *byuActor2=vtkActor::New();
      byuActor2-> SetMapper (byuMapper);
    ren-> AddActor (byuActor2);

    vtkHull *hull2=vtkHull::New();
    hull2-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper2=vtkPolyDataMapper::New();
    hullMapper2-> SetInputConnection (hull2-> GetOutputPort());
    
    vtkActor *hullActor2=vtkActor::New();
    hullActor2-> SetMapper (hullMapper2);
    hullActor2-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor2-> GetProperty()-> SetAmbient (0.2);
    hullActor2-> GetProperty()-> SetDiffuse (0.8);
    hullActor2-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor2);

	diagonal =byuActor2-> GetLength();


	byuActor2->AddPosition (-diagonal, diagonal, 0);
	hullActor2->AddPosition(-diagonal, diagonal, 0);

	  
////////////////////3
    vtkActor *byuActor3=vtkActor::New();
      byuActor3-> SetMapper (byuMapper);
    ren-> AddActor (byuActor3);

    vtkHull *hull3=vtkHull::New();
    hull3-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper3=vtkPolyDataMapper::New();
    hullMapper3-> SetInputConnection (hull3-> GetOutputPort());
    
    vtkActor *hullActor3=vtkActor::New();
    hullActor3-> SetMapper (hullMapper3);
    hullActor3-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor3-> GetProperty()-> SetAmbient (0.2);
    hullActor3-> GetProperty()-> SetDiffuse (0.8);
    hullActor3-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor3);


	diagonal =byuActor3-> GetLength();


	byuActor3->AddPosition ( 0, -diagonal, 0);
	hullActor3->AddPosition( 0, - diagonal, 0);

	  
////////////////////4
    vtkActor *byuActor4=vtkActor::New();
      byuActor4-> SetMapper (byuMapper);
    ren-> AddActor (byuActor4);

    vtkHull *hull4=vtkHull::New();
    hull4-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper4=vtkPolyDataMapper::New();
    hullMapper4-> SetInputConnection (hull4-> GetOutputPort());
    
    vtkActor *hullActor4=vtkActor::New();
    hullActor4-> SetMapper (hullMapper4);
    hullActor4-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor4-> GetProperty()-> SetAmbient (0.2);
    hullActor4-> GetProperty()-> SetDiffuse (0.8);
    hullActor4-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor4);


	diagonal =byuActor4-> GetLength();


		byuActor4->AddPosition ( 0, 0, 0);
		hullActor4->AddPosition( 0, 0, 0);

////////////////////5
    vtkActor *byuActor5=vtkActor::New();
      byuActor5-> SetMapper (byuMapper);
    ren-> AddActor (byuActor5);

    vtkHull *hull5=vtkHull::New();
    hull5-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper5=vtkPolyDataMapper::New();
    hullMapper5-> SetInputConnection (hull5-> GetOutputPort());
    
    vtkActor *hullActor5=vtkActor::New();
    hullActor5-> SetMapper (hullMapper5);
    hullActor5-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor5-> GetProperty()-> SetAmbient (0.2);
    hullActor5-> GetProperty()-> SetDiffuse (0.8);
    hullActor5-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor5);


	diagonal =byuActor5-> GetLength();

		byuActor5->AddPosition ( 0, diagonal, 0);
		hullActor5->AddPosition( 0, diagonal, 0);

////////////////////6
    vtkActor *byuActor6=vtkActor::New();
      byuActor6-> SetMapper (byuMapper);
    ren-> AddActor (byuActor6);

    vtkHull *hull6=vtkHull::New();
    hull6-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper6=vtkPolyDataMapper::New();
    hullMapper6-> SetInputConnection (hull6-> GetOutputPort());
    
    vtkActor *hullActor6=vtkActor::New();
    hullActor6-> SetMapper (hullMapper6);
    hullActor6-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor6-> GetProperty()-> SetAmbient (0.2);
    hullActor6-> GetProperty()-> SetDiffuse (0.8);
    hullActor6-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor6);


	diagonal =byuActor6-> GetLength();


	byuActor6->AddPosition ( diagonal, -diagonal, 0);
	hullActor6->AddPosition( diagonal, -diagonal, 0);
////////////////////7
    vtkActor *byuActor7=vtkActor::New();
      byuActor7-> SetMapper (byuMapper);
    ren-> AddActor (byuActor7);

    vtkHull *hull7=vtkHull::New();
    hull7-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper7=vtkPolyDataMapper::New();
    hullMapper7-> SetInputConnection (hull7-> GetOutputPort());
    
    vtkActor *hullActor7=vtkActor::New();
    hullActor7-> SetMapper (hullMapper7);
    hullActor7-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor7-> GetProperty()-> SetAmbient (0.2);
    hullActor7-> GetProperty()-> SetDiffuse (0.8);
    hullActor7-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor7);


	diagonal =byuActor7-> GetLength();


		byuActor7->AddPosition (diagonal, 0, 0);
		hullActor7->AddPosition(diagonal, 0, 0);

////////////////////8
    vtkActor *byuActor8=vtkActor::New();
      byuActor8-> SetMapper (byuMapper);
    ren-> AddActor (byuActor8);

    vtkHull *hull8=vtkHull::New();
    hull8-> SetInputConnection (byuReader-> GetOutputPort());

    vtkPolyDataMapper *hullMapper8=vtkPolyDataMapper::New();
    hullMapper8-> SetInputConnection (hull8-> GetOutputPort());
    
    vtkActor *hullActor8=vtkActor::New();
    hullActor8-> SetMapper (hullMapper8);
    hullActor8-> GetProperty()-> SetColor (1 ,0, 0);
    hullActor8-> GetProperty()-> SetAmbient (0.2);
    hullActor8-> GetProperty()-> SetDiffuse (0.8);
    hullActor8-> GetProperty()-> SetRepresentationToWireframe();

    ren->AddActor(hullActor8);


	diagonal =byuActor8-> GetLength();

	byuActor8->AddPosition ( diagonal, diagonal, 0);
	hullActor8->AddPosition( diagonal, diagonal, 0);
	
////////////////////


hull0-> AddCubeFacePlanes();   
hull1-> AddCubeEdgePlanes(); 
hull2-> AddCubeVertexPlanes(); 
hull3-> AddCubeFacePlanes(); 
hull3-> AddCubeEdgePlanes(); 
hull3-> AddCubeVertexPlanes(); 
hull4-> AddRecursiveSpherePlanes (0); 
hull5-> AddRecursiveSpherePlanes (1);
hull6-> AddRecursiveSpherePlanes (2);
hull7-> AddRecursiveSpherePlanes (3);
hull8-> AddRecursiveSpherePlanes (4);
 
	ren->ResetCamera();
	ren->SetBackground(1,1,1);

	renWin->SetSize(300,300);
	renWin->Render();
	iren->Start();

	ren->Delete();
	iren->Delete();
	renWin->Delete();
}






⌨️ 快捷键说明

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