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

📄 vtk.cpp

📁 VTK入门样例(种类齐全)
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//		lineMapper[i]->SetInput(line[i]->GetOutput());
//
//		lineActor[i] = vtkActor::New();
//		lineActor[i]->SetMapper(lineMapper[i]); 
//		lineActor[i]->GetProperty()->SetDiffuseColor(
//			(float)rand()/(float)RAND_MAX,
//			(float)rand()/(float)RAND_MAX,
//			(float)rand()/(float)RAND_MAX);
//		ren1->AddActor(lineActor[i]);
//	}
//
//	ren1->SetBackground(0, 0, 0);
//	renWindow->SetSize(500, 500);
//
//	renWindow->Render();
//	iren->Start();
//
//	// Clean up
//	ren1->Delete();
//	renWindow->Delete();
//	return 1;
//}
//
//#include "vtkRenderer.h"
//#include "vtkRenderWindow.h"
//#include "vtkRenderWindowInteractor.h"
//#include "vtkPlaneSource.h"
//#include "vtkTransform.h"
//#include "vtkTransformPolyDataFilter.h"
//#include "vtkPoints.h"
//#include "vtkDoubleArray.h"
//#include "vtkWarpScalar.h"
//#include "vtkDataSetMapper.h"
//#include "vtkPolyData.h"
//#include "vtkActor.h"
//#include "vtkPointData.h"
//
////#include "SaveImage.h"
//
//void main( int argc, char *argv[] )
//{
//	int i, numPts;
//	double x[3];
//	double r, deriv;
//
//	vtkRenderer *ren = vtkRenderer::New();
//	vtkRenderWindow *renWin = vtkRenderWindow::New();
//	renWin->AddRenderer(ren);
//	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
//	iren->SetRenderWindow(renWin);
//
//	// create plane to warp
//	vtkPlaneSource *plane = vtkPlaneSource::New();
//	plane->SetResolution (300,300);
//	//定义一个平面
//
//	vtkTransform *transform = vtkTransform::New();
//	transform->Scale(10.0,10.0,1.0);
//
//	vtkTransformPolyDataFilter *transF = vtkTransformPolyDataFilter::New();
//	transF->SetInput(plane->GetOutput());
//	transF->SetTransform(transform);
//	transF->Update();
//
//	// compute Bessel function and derivatives. This portion could be 
//	// encapsulated into source or filter object.
//	//
//
//	//vtkPolyData *input = plane->GetOutput();
//	vtkPolyData *input = transF->GetOutput();
//	numPts = input->GetNumberOfPoints();
//	vtkPoints *newPts = vtkPoints::New();
//	newPts->SetNumberOfPoints(numPts);
//	vtkDoubleArray *derivs = vtkDoubleArray::New();
//	derivs->SetNumberOfTuples(numPts);
//	vtkPolyData *bessel = vtkPolyData::New();
//	bessel->CopyStructure(input);
//	bessel->SetPoints(newPts);
//	bessel->GetPointData()->SetScalars(derivs);
//
//	for (i=0; i<numPts; i++)
//	{
//		input->GetPoint(i,x);
//		r = sqrt(double(x[0]*x[0]) + double(x[1]*x[1]));
//		x[2] = exp(-r) * cos (10.0L*r);
//		newPts->SetPoint(i,x);
//		deriv = -exp(-r) * (cos(10.0L*r) + 10.0L*sin(10.0L*r));
//		derivs->SetTuple(i,&deriv);
//	}
//	newPts->Delete(); //reference counting - it's ok
//	derivs->Delete();
//
//	// warp plane
//	vtkWarpScalar *warp = vtkWarpScalar::New();
//	warp->SetInput(bessel);
//	warp->XYPlaneOn();
//	warp->SetScaleFactor(0.5);
//
//	// mapper and actor
//	vtkDataSetMapper *mapper = vtkDataSetMapper::New();
//	mapper->SetInput(warp->GetOutput());
//	mapper->SetScalarRange(bessel->GetScalarRange());
//
//	vtkActor *carpet = vtkActor::New();
//	carpet->SetMapper(mapper);
//
//	// assign our actor to the renderer
//	ren->AddActor(carpet);
//	ren->SetBackground(1,1,1);
//	renWin->SetSize(300,300);
//
//	// draw the resulting scene
//	renWin->Render();
//
//	//  SAVEIMAGE( renWin );
//
//	// Begin mouse interaction
//	iren->Start();
//}

//
//#include "vtkRenderer.h"
//#include "vtkRenderWindow.h"
//#include "vtkRenderWindowInteractor.h"
//#include "vtkStructuredPoints.h"
//#include "vtkFloatArray.h"
//#include "vtkGeometryFilter.h"
//#include "vtkPolyDataMapper.h"
//#include "vtkDataSetMapper.h"
//#include "vtkActor.h"
//#include "vtkCellData.h"
//
////#include "SaveImage.h"
//
//int main( int argc, char *argv[] )
//{
//	// Create rendering stuff
//	vtkRenderer *ren = vtkRenderer::New();
//	vtkRenderWindow *renWin = vtkRenderWindow::New();
//	renWin->AddRenderer(ren);
//	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
//	iren->SetRenderWindow(renWin);
//
//	// Create structured points data set
//	vtkStructuredPoints *sp = vtkStructuredPoints::New();
//	sp->SetDimensions(3, 3, 1);
//	sp->SetOrigin(0, 0, 0);
//	sp->SetSpacing(1, 1, 1);
//
//	// Create cell scalars
//	vtkFloatArray *scalars = vtkFloatArray::New();
//	for (int i=0; i<4; i++)
//	{
//		scalars->InsertNextValue(i*0.33f);
//	}	
//	sp->GetCellData()->SetScalars(scalars);
//
//	// Render the data set by vtkPolyDataMapper via vtkGeometryFilter
//	// (works in vtk 3.1)
//	vtkGeometryFilter *geom = vtkGeometryFilter::New();
//	geom->SetInput(sp);
//
//	vtkPolyDataMapper *mapper1 = vtkPolyDataMapper::New();
//	mapper1->SetInput(geom->GetOutput());
//	mapper1->SetScalarModeToUseCellData();
//
//	vtkActor *actor1 = vtkActor::New();
//	actor1->SetMapper(mapper1);
//	ren->AddActor(actor1);
//
//	// Render the same data set by vtkDataSetMapper
//	// (doesn't work in vtk 3.1 but works in vtk 2.3, and vtk 4.0)
//	vtkDataSetMapper *mapper2 = vtkDataSetMapper::New();
//	mapper2->SetInput(sp);
//	mapper2->SetScalarModeToUseCellData();
//
//	vtkActor *actor2 = vtkActor::New();
//	actor2->SetMapper(mapper2);
//	actor2->AddPosition(4, 0, 0);
//	ren->AddActor(actor2);
//
//	renWin->Render();
//
////	SAVEIMAGE( renWin );
//
//	iren->Start();
//
//	ren->Delete();
//	renWin->Delete();
//	iren->Delete();
//	sp->Delete();
//	geom->Delete();
//	mapper1->Delete();
//	actor1->Delete();
//	mapper2->Delete();
//	actor2->Delete();
//
//	return (1);
//}
//
//#include "vtkRenderer.h"
//#include "vtkRenderWindow.h"
//#include "vtkRenderWindowInteractor.h"
//#include "vtkQuadric.h"
//#include "vtkSampleFunction.h"
//#include "vtkContourFilter.h"
//#include "vtkPolyDataMapper.h"
//#include "vtkActor.h"
//#include "vtkOutlineFilter.h"
//#include "vtkProperty.h"
//
////#include "SaveImage.h"
//
//void main( int argc, char *argv[] )
//{
//	vtkRenderer *aren = vtkRenderer::New();
//	vtkRenderWindow *renWin = vtkRenderWindow::New();
//	renWin->AddRenderer(aren);
//	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
//	iren->SetRenderWindow(renWin);
//	//
//	// Create surfaces F(x,y,z) = constant
//	//
//	// Sample quadric function
//	vtkQuadric *quadric = vtkQuadric::New();
//	//evaluate implicit quadric function 
//	//评估暗示的二次功能。
//	quadric->SetCoefficients(.5,1,.2,0.6,.1,2.0,0,.2,0,0);
//	//F(x,y,z) = a0*x^2 + a1*y^2 + a2*z^2 + a3*x*y + a4*y*z + a5*x*z + a6*x + a7*y + a8*z + a9
//
//	vtkSampleFunction *sample = vtkSampleFunction::New();
//	//vtkSampleFunction 是在 vtkStructuredPoints 的每点评估一个暗示的功能和常态的一个来源物体。
//	//使用者能叙述空间的样品尺寸和位置运行那抽取样品。 产生关闭表面 (连同 vtkContourFilter), 
//	//胜过能被打开在样品空间的边界上设定特别的价值。  
//	sample->SetSampleDimensions(50,50,50);
//	sample->SetImplicitFunction(quadric);
//  
//	vtkContourFilter *contour = vtkContourFilter::New();
//	//contour->SetInput((vtkDataSet *)sample->GetOutput());
//	contour->GenerateValues(5,0,1.2);
//	vtkPolyDataMapper *contourMapper = vtkPolyDataMapper::New();
//	contourMapper->SetInput(contour->GetOutput());
//	contourMapper->SetScalarRange(0,1.2);
//	vtkActor *contourActor = vtkActor::New();
//	contourActor->SetMapper(contourMapper);
//
//	// Create outline
//	vtkOutlineFilter *outline = vtkOutlineFilter::New();
//	outline->SetInput((vtkDataSet *)sample->GetOutput());
//	//outline->SetInputConnection(0,sample->GetOutputPort());
//	vtkPolyDataMapper *outlineMapper = vtkPolyDataMapper::New();
//	outlineMapper->SetInput(outline->GetOutput());
//	vtkActor *outlineActor = vtkActor::New();
//	outlineActor->SetMapper(outlineMapper);
//	outlineActor->GetProperty()->SetColor(0,0,0);
//	//
//	// Rendering stuff
//	//
//	aren->SetBackground(1,1,1);
//    aren->AddActor(contourActor);
//	aren->AddActor(outlineActor);
//
//	renWin->SetSize(300,300);
//	renWin->Render();
//
//	//  SAVEIMAGE( renWin );
//
//	// interact with data
//	iren->Start();
//
//	// Clean up
//	aren->Delete();
//	renWin->Delete();
//	iren->Delete();
//	quadric->Delete();
//	sample->Delete();
//	contour->Delete();
//	contourMapper->Delete();
//	contourActor->Delete();
//	outline->Delete();
//	outlineMapper->Delete();
//	outlineActor->Delete();
//}
//
//
//
////#include "vtkSphereSource.h"
////#include "vtkPolyDataMapper.h"
////#include "vtkRenderWindow.h"
////#include "vtkRenderWindowInteractor.h"
////#include "vtkCamera.h"
////#include "vtkActor.h"
////#include "vtkRenderer.h"
////#include "vtkPolyData.h"
////#include "vtkBoxWidget.h"
////#include "vtkCardinalSpline.h"
////#include "vtkPoints.h"
////#include "stdio.h"
////#include <time.h>
////#include <vtkGlyph3D.h>
////#include <vtkProperty.h>
////#include <vtkCellArray.h>
////#include <vtkPointDataToCellData.h>
////#include <vtkPolyLine.h>
////
////void main()
////{
////
////	srand(time(NULL)) ;
////
////	//	rand()/RAND_MAX;//	0 - RAND_MAX
////	vtkRenderer *ren = vtkRenderer::New();
////	vtkRenderWindow *renWindow = vtkRenderWindow::New();
////	renWindow->AddRenderer(ren);
////	renWindow->SetSize( 600, 600 );
////
////	vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
////	iren->SetRenderWindow(renWindow);
////
////	int numberOfInputPoints = 30;
////
////	vtkCardinalSpline *aSplineX = vtkCardinalSpline::New();
////	vtkCardinalSpline *aSplineY = vtkCardinalSpline::New();
////	vtkCardinalSpline *aSplineZ = vtkCardinalSpline::New();
////
////	vtkPoints *inputPoints = vtkPoints::New();
////
////	double x,y,z;
////	int i;
////	for(i=0;i<numberOfInputPoints;i++)
////	{
////		x = (float)rand()/(float)RAND_MAX;
////		y = (float)rand()/(float)RAND_MAX;
////		z = (float)rand()/(float)RAND_MAX;
////		printf(" x:%f,y:%f,z:%f\n",x,y,z);
////		aSplineX->AddPoint(i, x);
////		aSplineY->AddPoint(i, y);
////		aSplineZ->AddPoint(i, z);
////		inputPoints->InsertPoint(i, x, y, z);
////	}
////
////
////	vtkPolyData *inputData =vtkPolyData::New();
////	inputData->SetPoints(inputPoints);
////
////	vtkSphereSource *balls =vtkSphereSource::New();
////	balls->SetRadius(.01);
////	balls->SetPhiResolution(10);
////	balls->SetThetaResolution(10);
////
////	vtkGlyph3D *glyphPoints =vtkGlyph3D::New();
////	glyphPoints->SetInput(inputData);
////	glyphPoints->SetSource(balls->GetOutput());
////
////	vtkPolyDataMapper *glyphMapper = vtkPolyDataMapper::New();
////	glyphMapper->SetInputConnection(glyphPoints->GetOutputPort());
////
////	vtkActor *glyph = vtkActor::New();
////	glyph->SetMapper(glyphMapper);
////	glyph->GetProperty()->SetDiffuseColor(1,0,0);
////	glyph->GetProperty()->SetSpecular(.3);
////	glyph->GetProperty()->SetSpecularPower(30);
////
////	///////////////
////	vtkPointDataToCellData *pointDataToCellData = vtkPointDataToCellData::New();
////	pointDataToCellData->SetInputConnection((vtkAlgorithmOutput *)inputPoints);
////	pointDataToCellData->PassPointDataOn();
////
////	vtkPolyDataMapper *plyMapper=vtkPolyDataMapper::New();
////	plyMapper-> SetInputConnection (pointDataToCellData-> GetOutputPort());
////	vtkActor *plyActor=vtkActor::New();
////	plyActor-> SetMapper(plyMapper);
////
////
////
////
////	//////////////
////	//ren->AddActor(glyph);
////	ren->AddActor(plyActor);
////
////	iren->Initialize();
////	renWindow->Render();
////
////	iren->Start();
////}
//

⌨️ 快捷键说明

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