📄 vtk.cpp
字号:
// 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 + -