medimage 发表于 2015-12-5 17:45:42

VTK例子12-extrudeCopyCD(字符立体化)

extrudeCopyCD(字符立体化)#include "stdafx.h"#include "vtkRenderer.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#include "vtkDataSetMapper.h"#include "vtkActor.h"#include "vtkVectorText.h"#include "vtkTransform.h"#include "vtkTransformFilter.h"#include "vtkCamera.h"#include "vtkProperty.h"#include "vtkStripper.h"#include "vtkPolyDataMapper.h"#include "vtkAppendPolyData.h"#include "vtkLinearExtrusionFilter.h"#include "vtkMath.h"#include "vtkUnsignedCharArray.h"#include "vtkArrowSource.h"#include "vtkCellData.h" int main( int argc, char *argv() ){    vtkRenderer *renderer = vtkRenderer::New();    vtkRenderWindow *renWin = vtkRenderWindow::New();      renWin->AddRenderer(renderer);    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();      iren->SetRenderWindow(renWin); vtkVectorText *disk=vtkVectorText::New();disk-> SetText ("Q"); vtkTransform *t=vtkTransform::New();t-> Translate( 1.1, 0, 0);vtkTransformFilter *tf=vtkTransformFilter::New();tf-> SetTransform( t);tf-> SetInputConnection( disk-> GetOutputPort());vtkStripper *strips=vtkStripper::New();strips-> SetInputConnection (tf-> GetOutputPort()); vtkAppendPolyData *app=vtkAppendPolyData::New();app-> AddInput ( disk ->GetOutput());app-> AddInput ( strips-> GetOutput());app-> Update(); int numcell=app-> GetOutput()->GetNumberOfCells(); vtkLinearExtrusionFilter *extrude=vtkLinearExtrusionFilter::New();extrude-> SetInput (app-> GetOutput()); vtkPolyDataMapper *mapper=vtkPolyDataMapper::New();   mapper-> SetInputConnection (extrude-> GetOutputPort()); vtkActor *actor=vtkActor::New();    actor-> SetMapper (mapper); // create random cell scalars for the model before extrusion. vtkMath *rn=vtkMath::New();rn-> RandomSeed (1230);vtkUnsignedCharArray *cellColors=vtkUnsignedCharArray::New();cellColors-> SetNumberOfComponents (3);cellColors-> SetNumberOfTuples (numcell);for(int i=0;i<numcell;i++){    cellColors-> InsertComponent (i ,0 ,rn-> Random( 100 ,255));    cellColors-> InsertComponent (i ,1 ,rn-> Random( 100 ,255));    cellColors-> InsertComponent (i ,2 ,rn-> Random( 100 ,255));} app-> GetOutput()->GetCellData()->SetScalars(cellColors); //Lets test the arrow source instead of creating another test.vtkArrowSource *arrow1=vtkArrowSource::New(); vtkPolyDataMapper *mapper1=vtkPolyDataMapper::New();mapper1-> SetInputConnection (arrow1-> GetOutputPort()); vtkActor *actor1 =vtkActor::New();actor1-> SetMapper (mapper1 );actor1-> SetPosition (0, -0.2, 1); vtkArrowSource *arrow2=vtkArrowSource::New();arrow2-> SetShaftResolution( 2);arrow2-> SetTipResolution( 1); vtkPolyDataMapper *mapper2=vtkPolyDataMapper::New();mapper2-> SetInputConnection (arrow2-> GetOutputPort()); vtkActor *actor2 =vtkActor::New();actor2-> SetMapper (mapper2);actor2-> SetPosition( 1 ,-0.2 ,1);     renderer-> AddActor (actor);    renderer-> AddActor (actor1);    renderer-> AddActor (actor2);    renderer-> SetBackground (1 ,1 ,1);    renWin-> SetSize (600 ,600); // interact with datarenWin->Render(); // SAVEIMAGE( renWin ); iren->Start(); // Clean uprenderer->Delete();renWin->Delete();iren->Delete(); return 0;}

medimagedev 发表于 2016-5-11 15:17:55

zhichizhichi

mri 发表于 2016-5-15 14:36:56

medphysics 发表于 2016-5-18 09:14:11

人生真是寂寞如雪啊。

hosstd 发表于 2016-5-20 03:37:02

谢谢分享

medinfo 发表于 2016-5-24 16:29:18

学习学习一下
页: [1]
查看完整版本: VTK例子12-extrudeCopyCD(字符立体化)