随笔 - 70, 文章 - 0, 评论 - 9, 引用 - 0
数据加载中……

vtk -- 入门

vtk
    视觉化工具函式库(VTK,Visualization Toolkit)是一个开放源码,跨平台、支援平行处理(VTK曾用于处理大小近乎1个Petabyte的资料,其平台为美国Los Alamos国家实验室所有的具1024个处理器之大型系统)的图形应用函式库。2005年实曾被美国陆军研究实验室用于即时模拟俄罗斯制反导弹战车ZSU23-4受到平面波攻击的情形,其计算节点高达2.5兆个之多。

介绍及使用:  http://www.cnblogs.com/buffer/archive/2009/03/13/1410235.html


结合Qt使用,部分代码示例(线图):(\vtk-5.6.1\GUISupport\Qt\Testing\CxxTestLineSeries.cxx)

    /* 曲线 */
    vtkQtChartWidget 
*chart = new vtkQtChartWidget;
    vtkQtChartArea 
*area = chart->getChartArea();
    vtkQtLineChart 
*line = new vtkQtLineChart;

    area
->addLayer(line);

    vtkQtChartLegend 
*legend = new vtkQtChartLegend();
    vtkQtChartLegendManager 
*manager = new vtkQtChartLegendManager(legend);
    manager
->setChartLegend(legend);
    manager
->setChartArea(area);
    chart
->setLegend(legend);

    vtkQtChartMouseSelection 
*selector = vtkQtChartInteractorSetup::createDefault(area);
    vtkQtChartSeriesSelectionHandler 
*handler = new vtkQtChartSeriesSelectionHandler(selector);
    handler
->setModeNames("Line Chart - Series""Line Chart - Points");
    handler
->setMousePressModifiers(Qt::ControlModifier, Qt::ControlModifier);
    handler
->setLayer(line);
    selector
->addHandler(handler);
    selector
->setSelectionMode("Line Chart - Points");
    vtkQtChartInteractorSetup::setupDefaultKeys(area
->getInteractor());

    QStandardItemModel 
*model = new QStandardItemModel(32);  model->setItemPrototype(new QStandardItem());
    model
->setVerticalHeaderItem(0new QStandardItem());
    model
->setVerticalHeaderItem(1new QStandardItem());
    model
->setVerticalHeaderItem(2new QStandardItem());
    model
->verticalHeaderItem(0)->setData(0.0, Qt::DisplayRole);
    model
->verticalHeaderItem(1)->setData(1.0, Qt::DisplayRole);
    model
->verticalHeaderItem(2)->setData(2.0, Qt::DisplayRole);

    model
->setHorizontalHeaderItem(0new QStandardItem("series 1"));
    model
->setHorizontalHeaderItem(1new QStandardItem("series 2"));

    model
->setItem(00new QStandardItem());
    model
->setItem(10new QStandardItem());
    model
->setItem(20new QStandardItem());
    model
->item(00)->setData(0.5, Qt::DisplayRole);
    model
->item(10)->setData(0.4, Qt::DisplayRole);
    model
->item(20)->setData(0.6, Qt::DisplayRole);

    model
->setItem(01new QStandardItem());
    model
->setItem(11new QStandardItem());
    model
->setItem(21new QStandardItem());
    model
->item(01)->setData(0.4, Qt::DisplayRole);
    model
->item(11)->setData(0.5, Qt::DisplayRole);
    model
->item(21)->setData(0.4, Qt::DisplayRole);

    vtkQtChartTableSeriesModel 
*tableModel = new vtkQtChartTableSeriesModel(model, line);
    line
->setModel(tableModel);

    chart
->show();

posted on 2011-03-16 16:46 seahouse 阅读(903) 评论(0)  编辑 收藏 引用 所属分类: 开源


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理