医站点医维基

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1702|回复: 5

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

[复制链接]

336

主题

410

回帖

2806

积分

管理员

积分
2806

热心会员推广达人优秀版主荣誉管理论坛元老

发表于 2015-12-5 17:45:42 | 显示全部楼层 |阅读模式
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 data
  renWin->Render();
// SAVEIMAGE( renWin );
  iren->Start();
  // Clean up
  renderer->Delete();
  renWin->Delete();
  iren->Delete();
  return 0;
}
12.png
回复

使用道具 举报

13

主题

398

回帖

1051

积分

版主

积分
1051

热心会员推广达人优秀版主荣誉管理论坛元老

发表于 2016-5-11 15:17:55 | 显示全部楼层
zhichizhichi
回复

使用道具 举报

4

主题

415

回帖

1084

积分

版主

积分
1084

热心会员推广达人优秀版主荣誉管理论坛元老

发表于 2016-5-15 14:36:56 | 显示全部楼层
回复

使用道具 举报

37

主题

407

回帖

1137

积分

版主

积分
1137

热心会员推广达人优秀版主荣誉管理论坛元老

发表于 2016-5-18 09:14:11 | 显示全部楼层
人生真是寂寞如雪啊。
回复

使用道具 举报

161

主题

409

回帖

1519

积分

版主

积分
1519

热心会员推广达人优秀版主荣誉管理论坛元老

发表于 2016-5-20 03:37:02 | 显示全部楼层
谢谢分享
回复

使用道具 举报

47

主题

416

回帖

1214

积分

版主

积分
1214

热心会员推广达人优秀版主荣誉管理论坛元老

发表于 2016-5-24 16:29:18 | 显示全部楼层
学习学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于我们|医维基|网站地图|Archiver|手机版|医疗之家 ( 沪ICP备2023001278号-1 )  

GMT+8, 2024-5-2 13:21 , Processed in 0.180126 second(s), 31 queries .

Designed by Medical BBS

快速回复 返回顶部 返回列表