VTK初学一,线段的绘制c_Line

#ifndef INITIAL_OPENGL
#define INITIAL_OPENGL
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkInteractionStyle)
#endif

#include <iostream>
using namespace std;
#include "vtkPolyDataMapper.h"
#include "vtkWin32OpenGLRenderWindow.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkPoints.h"
#include "vtkWin32RenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkFloatArray.h"
#include "vtkPolyData.h"
#include "vtkDataSetMapper.h"
#include "vtkActor2D.h"
#include "vtkContourFilter.h"
#include "vtkContourValues.h"
#include "vtkUnstructuredGrid.h"
#include "vtkPointData.h"
#include "vtkLine.h"
#include <vtkInteractorStyleTrackballCamera.h>

void myShow(vtkSmartPointer<vtkUnstructuredGrid> aGrid)
{
    //设置映射器
    vtkSmartPointer<vtkDataSetMapper> aMapper=vtkSmartPointer<vtkDataSetMapper>::New();
    aMapper->SetInputData(aGrid);
    aMapper->ScalarVisibilityOff();

    vtkSmartPointer<vtkActor> anActor=vtkSmartPointer<vtkActor>::New();
    anActor->SetMapper(aMapper);
//    anActor->GetProperty()->SetRepresentationToPoints();
    anActor->GetProperty()->SetRepresentationToWireframe();

    anActor->GetProperty()->SetDiffuseColor(0,0,1);
    anActor->GetProperty()->SetLineWidth(5);
    anActor->GetProperty()->SetEdgeColor(1,1,1);
    anActor->GetProperty()->SetPointSize(10);
 //创建显示窗口
    vtkSmartPointer<vtkRenderer> ren1=vtkSmartPointer<vtkRenderer>::New();
    vtkSmartPointer<vtkRenderWindow> renWin=vtkSmartPointer<vtkRenderWindow>::New();
    ren1->AddActor(anActor);
    renWin->AddRenderer(ren1);

    vtkSmartPointer<vtkRenderWindowInteractor> iren=vtkSmartPointer<vtkRenderWindowInteractor>::New();
    vtkSmartPointer<vtkInteractorStyleTrackballCamera> style=vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
    iren->SetInteractorStyle(style);
    iren->SetRenderWindow(renWin);

    renWin->SetSize(700,700);
    ren1->ResetCamera();
    renWin->Render();
    iren->Start();
}


int main()
{
    //几何数据
    float pts[][3]={{0,0,0},{1,1,0}};
    vtkSmartPointer<vtkPoints> linePointes=vtkSmartPointer<vtkPoints>::New();
    linePointes->SetNumberOfPoints(2);
    linePointes->InsertPoint(0,pts[0]);
    linePointes->InsertPoint(1,pts[1]);
    //属性数据
    vtkSmartPointer<vtkFloatArray> lineScalars=vtkSmartPointer<vtkFloatArray>::New();
    lineScalars->SetNumberOfTuples(2);
    lineScalars->InsertValue(0,0);
    lineScalars->InsertValue(1,0);
    //拓扑结构
    vtkSmartPointer<vtkLine> aLine=vtkSmartPointer<vtkLine>::New();
    aLine->GetPointIds()->SetId(0,0);
    aLine->GetPointIds()->SetId(1,1);
    //将以上三部分数据组合成Grid
    vtkSmartPointer<vtkUnstructuredGrid> aLineGrid=vtkSmartPointer<vtkUnstructuredGrid>::New();
    aLineGrid->SetPoints(linePointes);
   aLineGrid->GetPointData()->SetScalars(lineScalars);
    aLineGrid->InsertNextCell(aLine->GetCellType(),aLine->GetPointIds());
/**********在窗口中显示该结构元****************************************、
    myShow(aLineGrid);
    return 0;
}

				
时间: 2024-08-04 14:47:08

VTK初学一,线段的绘制c_Line的相关文章

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

VTK窗口默认坐标方向: #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL) VTK_MODULE_INIT(vtkInteractionStyle) #endif #include <iostream> using namespace std; #include "vtkPolyDataMapper.h&quo

HTML5 Canvas ( 线段的绘制 ) beginPath, moveTo, strokeStyle, stroke

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>canvas</title> <script type="text/javascript" src="../js/jQuery.js"></script> <style type="text/css">

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

我的开发环境: 系统:win8.1 QT:5.4.2MinGW版 VTK:6.3 按照教程生成一个球体显示在,Qt的QVTKWidget控件中,出现如下ERROR: ERROR: In D:\VTK6.3\VTK-src\Rendering\Core\vtkTextActor.cxx, line 110vtkTextActor (0509BA90): Failed getting the TextRenderer instance! 解决办法: 在头文件中加入VTK_MODULE_INIT(vt

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

#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL) VTK_MODULE_INIT(vtkInteractionStyle) #endif #include <iostream> using namespace std; #include <vtkVersion.h> #include <vtkPolyD

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

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

VTK初学一,a Mesh from vtkImageData

#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL) VTK_MODULE_INIT(vtkInteractionStyle) #endif #include <iostream> using namespace std; #include <vtkVersion.h> #include <vtkPolyD

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

#ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL) VTK_MODULE_INIT(vtkInteractionStyle) #endif #include <iostream> using namespace std; #include "vtkPolyDataMapper.h" #include &

WebGL入门教程(二)-webgl绘制三角形

前面已经介绍过了webgl,WebGL入门教程(一)-初识webgl(http://www.cnblogs.com/bsman/p/6128447.html),也知道了如何绘制一个点,接下来就用webgl画出一个三角形. 效果图: 在WebGL入门教程(一)-初识webgl中,知道如何绘制一个点 //绘制一个点 gl.drawArrays(gl.POINTS, 0, 1); 但是图形是有多个点组成,那么就应该考虑如何绘制多个点,WebGL提供了一种很方便的机制,缓冲区对象(buffer obje

几何画板给word绘制图形的方法

几何画板是一款专门用来绘图的工具,它里面有很多的绘图工具和功能菜单,都是专门为画图而设计的,比如一些理科的期刊杂志论文出版的时候,里面所涉及到的图形很多都是用几何画板画出来的.下面就根据几何画板教程来一起来学习几何画板的绘图技巧. 一.用几何画板画凸透镜 在理科论文中,如果要论证凸透镜成像规律,可以借助几何画板来画图,具体步骤如下: 1.构造线段.选择“线段工具”绘制线段AB.选择“点工具”画出点C.点D,并构造出线段CD. 2.构造圆.选中线段AB和点C,选择“构造”-“以圆心和半径绘圆”命令