1. #ifndef INITIAL_OPENGL
  1. #define INITIAL_OPENGL
  1. #include <vtkAutoInit.h>
  1. VTK_MODULE_INIT(vtkRenderingOpenGL)
  1. VTK_MODULE_INIT(vtkInteractionStyle)
  1. #endif
  1.  
  1. #include <iostream>
  1. using namespace std;
  1. #include "vtkPolyDataMapper.h"
  1. #include "vtkWin32OpenGLRenderWindow.h"
  1. #include "vtkRenderWindow.h"
  1. #include "vtkRenderWindowInteractor.h"
  1. #include "vtkRenderer.h"
  1. #include "vtkPoints.h"
  1. #include "vtkWin32RenderWindowInteractor.h"
  1. #include "vtkProperty.h"
  1. #include "vtkFloatArray.h"
  1. #include "vtkPolyData.h"
  1. #include "vtkDataSetMapper.h"
  1. #include "vtkActor2D.h"
  1. #include "vtkContourFilter.h"
  1. #include "vtkContourValues.h"
  1. #include "vtkUnstructuredGrid.h"
  1. #include "vtkPointData.h"
  1. #include "vtkPolyVertex.h"
  1. #include <vtkInteractorStyleTrackballCamera.h>
  1. #include <vtkCellArray.h>
  1. void myShow(vtkPolyData* aGrid)
  1. {
  1. vtkSmartPointer<vtkPolyDataMapper> aMapper=vtkSmartPointer<vtkPolyDataMapper>::New();
  1. aMapper->SetInputData(aGrid);
  1. aMapper->ScalarVisibilityOn();
  1.  
  1. vtkSmartPointer<vtkActor> anActor=vtkSmartPointer<vtkActor>::New();
  1. anActor->SetMapper(aMapper);
  1. anActor->GetProperty()->SetRepresentationToWireframe();
  1. anActor->GetProperty()->SetDiffuseColor(1,1,1);
  1. anActor->GetProperty()->SetLineWidth(10);
  1. anActor->GetProperty()->SetPointSize(30);
  1.  
  1. vtkSmartPointer<vtkRenderer> ren1=vtkSmartPointer<vtkRenderer>::New();
  1. vtkSmartPointer<vtkRenderWindow> renWin=vtkSmartPointer<vtkRenderWindow>::New();
  1. ren1->AddActor(anActor);
  1. ren1->ResetCamera();
  1. renWin->AddRenderer(ren1);
  1. renWin->SetSize(512,512);
  1.  
  1.  
  1. vtkSmartPointer<vtkRenderWindowInteractor> iren=vtkSmartPointer<vtkRenderWindowInteractor>::New();
  1. vtkSmartPointer<vtkInteractorStyleTrackballCamera> style=vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
  1. iren->SetRenderWindow(renWin);
  1. iren->SetInteractorStyle(style);
  1. iren->Start();
  1. }
  1. int main()
  1. {
  1. //几何数据
  1. vtkSmartPointer<vtkPoints> points=vtkSmartPointer<vtkPoints>::New();
  1. points->SetNumberOfPoints(5);
  1. points->InsertPoint(0,0,0,0);
  1. points->InsertPoint(1,0.5,0.5,0);
  1. points->InsertPoint(2,-0.3,-0.2,0);
  1. points->InsertPoint(3,0.8,-0.5,0);
  1. points->InsertPoint(4,1,0.5,0.3);
  1. //拓扑结构数据
  1. vtkSmartPointer<vtkPolyVertex> polyVertex=vtkSmartPointer<vtkPolyVertex>::New();
  1. polyVertex->GetPointIds()->SetNumberOfIds(5);//必须设置Id个数,否则可以编译,不能运行
  1. polyVertex->GetPointIds()->SetId(0,0);//第一个参数是几何point的ID号,第2个参数是拓扑中的Id号
  1. polyVertex->GetPointIds()->SetId(1,1);
  1. polyVertex->GetPointIds()->SetId(2,2);
  1. polyVertex->GetPointIds()->SetId(3,3);
  1. polyVertex->GetPointIds()->SetId(4,4);
  1.  
  1. //以上数据形成单元数组
  1. vtkSmartPointer<vtkCellArray> vertexCells=vtkSmartPointer<vtkCellArray>::New();
  1. vertexCells->InsertNextCell(polyVertex);
  1. //点的属性数据
  1. vtkSmartPointer<vtkFloatArray> pointsScalars=vtkSmartPointer<vtkFloatArray>::New();
  1. pointsScalars->SetNumberOfTuples(5);
  1. pointsScalars->SetValue(0,0);
  1. pointsScalars->SetValue(1,1);
  1. pointsScalars->SetValue(2,0);
  1. pointsScalars->SetValue(3,0);
  1. pointsScalars->SetValue(4,0);
  1. //以上数据组装成PolyData
  1. vtkSmartPointer<vtkPolyData> polydata=vtkSmartPointer<vtkPolyData>::New();
  1. polydata->SetPoints(points);
  1. polydata->SetVerts(vertexCells);
  1. polydata->GetPointData()->SetScalars(pointsScalars);
  1. //在窗口中显示
  1. myShow(polydata);
  1. return 0;
  1. }

  1.  
  1.  
  1.  

VTK初学一,b_PolyVertex_CellArray多个点的绘制的更多相关文章

  1. VTK初学一,c_Line_CellArray线段的CellArray绘制

    VTK窗口默认坐标方向: #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE ...

  2. VTK初学一,a_Vertex图形点的绘制

    系统:Win8.1 QT版本:2.4.2,Mingw VTK版本:6.3 2. main.cpp #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #incl ...

  3. VTK初学一,比较常见的错误2

    我的开发环境: 系统:win8.1 QT:5.4.2MinGW版 VTK:6.3 按照教程生成一个球体显示在,Qt的QVTKWidget控件中,出现如下ERROR: ERROR: In D:\VTK6 ...

  4. VTK初学一,动画加AVI录制终于做出来了

      #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRe ...

  5. VTK初学一,vtkDelaunay2D创建球冠曲面

    #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...

  6. VTK初学一,比较常见的错误1

      错误原因: 通常是在文件头部没有初始化 #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> V ...

  7. VTK初学一,a Mesh from vtkImageData—球冠

    #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...

  8. VTK初学一,a Mesh from vtkImageData

    #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend ...

  9. VTK初学一,Pro文件的配置

    1. pro文件的配置 TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG += qt QT += core gui greate ...

随机推荐

  1. hdu5187 奇怪题

    本来很水的,答案就是(2^n)-2,但是写坑了QAQ 因为原题要求答案要mod P,一开始我是这么干的: LL ans=pow_mod(,N,P); ans=(ans-)%P; ) ans=%P; p ...

  2. zabbix监控系列(3)之zabbix触发器格式配置

    前言 今天公司线上环境新添一个监控项,监控 一些日志的是否出现错误,有错误就及时报警,那么问题来了 ,报警必须告诉我们哪个日志有错误,这样才能够快速定位到哪个日志有问题. 配置 zabbix-agen ...

  3. w3m常用快捷键

    H    显示帮助 q    退出,会有提示的 j,k,l,h  移动光标 J/K   向下/向上滚屏 T     打开一个新标签页 Esc-t 打开所有标签页,供你选择,使用jk来上下移动 U    ...

  4. java编程思想-复用类总结

    今天继续读<java 编程思想>,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...

  5. c中三大区的解析

    1.栈,堆和静态存储区是 堆和静态存储区是C语言程序常涉及的三个基本内语言程序常涉及的三个基本内存区2.栈区主要用于函数调用的使用3.堆区主要是用于内存的动态申请和归还4.静态存储区用于保存全局变量和 ...

  6. xfce4 dev tools的一些说明

    xfce4 dev tools实际上基本是封装了一些autoconf的宏函数 比如XDT_I18N: AC_DEFUN([XDT_I18N], [ dnl Substitute GETTEXT_PAC ...

  7. AspectJ基础学习之一简介(转载)

    AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...

  8. 9月26日JavaScript表单验证、正则表达

    一.非空验证 trim:去空格(去掉前后的空格),任何字符串都可以用这个方法.写法为:if(v.trim().length==0),表示如果去掉空格后的字符串的长度为0. <body> & ...

  9. notification的使用

    示例: NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); No ...

  10. FCC上的初级算法题

    核心提示:FCC的算法题一共16道.跟之前简单到令人发指的基础题目相比,难度是上了一个台阶.主要涉及初步的字符串,数组等运算.仍然属于基础的基础,官方网站给出的建议完成时间为50小时,超出了之前所有非 ...