VTK例子11-SelectionLoop球的碎片
SelectionLoop球的碎片#include "stdafx.h" #include "vtkDataSetMapper.h"#include "vtkPolyDataMapper.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#include "vtkCamera.h"#include "vtkActor.h"#include "vtkRenderer.h"#include "vtkPolyData.h"#include "vtkConnectivityFilter.h"#include "vtkContourFilter.h"#include "vtkPoints.h"#include "stdio.h"#include <time.h>#include <vtkExtractGeometry.h>#include <vtkProperty.h>#include <vtkCellArray.h>#include <vtkImplicitSelectionLoop.h>#include <vtkSphereSource.h> void main(){ srand(time(NULL)) ; //rand()/RAND_MAX;// 0 - RAND_MAXvtkRenderer *ren = vtkRenderer::New();vtkRenderWindow *renWindow = vtkRenderWindow::New(); renWindow->AddRenderer(ren);renWindow->SetSize( 600, 600 ); vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); iren->SetRenderWindow(renWindow); vtkSphereSource *sphere=vtkSphereSource::New(); sphere-> SetRadius(1); sphere-> SetPhiResolution (100); sphere ->SetThetaResolution (100); vtkPoints *selectionPoints=vtkPoints::New(); selectionPoints-> InsertPoint( 0 ,0.07325 ,0.8417, 0.5612); selectionPoints-> InsertPoint(1, 0.07244, 0.6568, 0.7450); selectionPoints ->InsertPoint(2, 0.1727, 0.4597, 0.8850); selectionPoints-> InsertPoint(3, 0.3265, 0.6054, 0.7309); selectionPoints-> InsertPoint(4, 0.5722, 0.5848, 0.5927); selectionPoints-> InsertPoint(5, 0.4305, 0.8138, 0.4189); vtkImplicitSelectionLoop *loop=vtkImplicitSelectionLoop::New(); loop-> SetLoop (selectionPoints); vtkExtractGeometry *extract=vtkExtractGeometry::New(); extract-> SetInputConnection (sphere->GetOutputPort()); extract-> SetImplicitFunction (loop); vtkConnectivityFilter *connect=vtkConnectivityFilter::New(); connect-> SetInputConnection (extract-> GetOutputPort()); connect-> SetExtractionModeToClosestPointRegion(); connect-> SetClosestPoint(selectionPoints->GetPoint (0)); vtkDataSetMapper *clipMapper=vtkDataSetMapper::New(); clipMapper-> SetInputConnection(connect-> GetOutputPort()); vtkProperty *backProp=vtkProperty::New(); backProp->SetDiffuseColor(1,0.7,0); vtkActor *clipActor=vtkActor::New(); clipActor-> SetMapper(clipMapper); clipActor-> GetProperty()->SetColor(0.0,0.3,0.7); clipActor-> SetBackfaceProperty(backProp); //////////////ren->AddActor(clipActor); iren->Initialize();renWindow->Render(); iren->Start();} 好文章,值得学习,顶起来 顶!!!!!!!!! 好贴,顶起 好贴!!! 谢谢分享 看看学习一下! 谢谢你的辛苦劳动了!!!
页:
[1]