VTK图形处理之vtkTriangleFilter
来源:互联网 发布:dx9.0c修复软件 编辑:程序博客网 时间:2024/06/09 16:40
本文介绍vtkTriangleFilter。
vtkTriangleFilter可以实现多边形网格数据向三角形网格数据的转换。为了方便直观看出转换前后的变化,我们用网格方式显示数据模型。
示例说明
CMakeLists.txt文件代码如下:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)PROJECT( vtkTriangleFilter ) FIND_PACKAGE(VTK REQUIRED)INCLUDE(${VTK_USE_FILE})ADD_EXECUTABLE(vtkTriangleFilter vtkTriangleFilter.cpp)TARGET_LINK_LIBRARIES(vtkTriangleFilter ${VTK_LIBRARIES})
vtkTriangleFilter.cpp文件代码如下:
#include <vtkSmartPointer.h>#include <vtkPolygon.h>#include <vtkTriangle.h>#include <vtkCellArray.h>#include <vtkPolyData.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vtkRenderWindowInteractor.h>#include <vtkProperty.h>#include "vtkTriangleFilter.h"#include <iostream>int main(int argc, char *argv[]){ vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); points->InsertNextPoint(0.0, 0.0, 0.0); points->InsertNextPoint(1.0, 0.0, 0.0); points->InsertNextPoint(1.0, 1.0, 0.0); points->InsertNextPoint(0.0, 1.0, 0.0); points->InsertNextPoint(2.0, 0.0, 0.0); vtkSmartPointer<vtkPolygon> polygon = vtkSmartPointer<vtkPolygon>::New(); polygon->GetPointIds()->SetNumberOfIds(4); polygon->GetPointIds()->SetId(0, 0); polygon->GetPointIds()->SetId(1, 1); polygon->GetPointIds()->SetId(2, 2); polygon->GetPointIds()->SetId(3, 3); vtkSmartPointer<vtkTriangle> trianle = vtkSmartPointer<vtkTriangle>::New(); trianle->GetPointIds()->SetId(0, 1); trianle->GetPointIds()->SetId(1, 2); trianle->GetPointIds()->SetId(2, 4); vtkSmartPointer<vtkCellArray> cells = vtkSmartPointer<vtkCellArray>::New(); cells->InsertNextCell(polygon); cells->InsertNextCell(trianle); vtkSmartPointer<vtkPolyData> polygonPolyData = vtkSmartPointer<vtkPolyData>::New(); polygonPolyData->SetPoints(points); polygonPolyData->SetPolys(cells); vtkSmartPointer<vtkTriangleFilter> filter = vtkSmartPointer<vtkTriangleFilter>::New(); filter->SetInputData(polygonPolyData); filter->Update(); vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); mapper->SetInputData(filter->GetOutput()); vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(mapper); actor->GetProperty()->SetRepresentationToWireframe(); vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); renderer->AddActor(actor); renderer->SetBackground(0.5, 0.5, 0.5); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); renderWindow->SetSize( 640, 480 ); renderWindow->Render(); renderWindow->SetWindowName("vtkTriangleFilter"); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); renderWindow->Render(); renderWindowInteractor->Start(); return EXIT_SUCCESS;}
运行结果:
0 0
- VTK图形处理之vtkTriangleFilter
- VTK图形处理之剪切
- VTK图形处理之剪裁
- VTK图形处理之封闭性检测
- VTK图形处理之抽取轮廓
- VTK图形处理之颜色映射
- VTK图形处理之自定义纹理映射Filter
- VTK图像处理之vtkImageMapToColors
- VTK图像处理之vtkImageReslice
- VTK图像处理之图像数据结构
- VTK修炼之道45:图形进阶_vtkPolyData属性数据
- 图形处理之 OpenGL
- VTK修炼之道14:图像处理_创建
- VTK图像处理之访问图像像素值
- Android图像处理之图形特效处理
- VTK修炼之道43:图形进阶_vtkPolyData数据生成与显示
- VTK修炼之道44:图形进阶_vtkPolyData数据源讨论与数据创建
- VTK修炼之道47:图形基本操作进阶_法向量计算
- Unity3D优化技巧系列八
- 逃生
- GreeoDao的学习使用
- js基础03特效简单响应式页面布局client()函数封装
- 浅谈JavaScript模块化规范AMD与CMD
- VTK图形处理之vtkTriangleFilter
- 05字符串格式化
- 单例模式学习笔记
- 面试题:随机数生成、蓄水池抽样、海量数据、设计秒杀系统
- webpack2.x基础属性讲解(一)
- "尚学堂杯"哈尔滨理工大学第七届程序设计竞赛 G.Great Atm(二进制,位运算)
- 61. Rotate List
- linux/android进程的模块信息获取
- servlet的运行过程