数据是三维矩阵保存其值,坐标表示位置
以下是实现代码(头文件和main函数没有贴上去)
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeType,vtkRenderingOpenGL2)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL2)
#include <vtkAutoInit.h>
#include "test_qt.h"
#include <vtkSmartPointer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkProperty.h>
#include <QVBoxLayout>
#include <QGridLayout>
#include <QFileDialog>
#include <vtkSmartPointer.h>
#include <vtkImageData.h>
#include <vtkStructuredPoints.h>
#include <vtkStructuredPointsReader.h>
#include <vtkVolumeRayCastCompositeFunction.h>
#include <vtkGPUVolumeRayCastMapper.h>
#include <vtkVolumeRayCastMapper.h>
#include <vtkColorTransferFunction.h>
#include <vtkPiecewiseFunction.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkVolumeProperty.h>
#include <vtkAxesActor.h>
#include <vtkImageShiftScale.h>
#include <vtkImageCast.h>
#include <vtkFixedPointVolumeRayCastMapper.h>
#include <vtkInformation.h>
#include <vtkInteractorStyleTrackballActor.h>
#include <fstream>
#include <cmath>
test_qt::test_qt(QWidget *parent)
: QMainWindow(parent)
{
//ui.setupUi(this);
setWindowTitle(tr("vtk show 3D"));
setCentralWidget(&widget);
//renderer = vtkSmartPointer<vtkRenderer>::New();
//renderer->AddActor(cylinderActor);
//renderer->SetBackground(1.0, 1.0, 1.0);
resize(1200, 800);
rightWidget = new QDockWidget("Navigation", this);
rightWidget->setFeatures(QDockWidget::DockWidgetMovable);
rightWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
//leftWidget->setWindowFlags(Qt::FramelessWindowHint);
addDockWidget(Qt::RightDockWidgetArea, rightWidget);
minLabel = new QLabel(tr("min:"));
minLineEdit = new QLineEdit(tr("4"));
QGridLayout * minLabelLayout = new QGridLayout;
minLabelLayout->addWidget(minLabel, 0, 0);
minLabelLayout->addWidget(minLineEdit, 0, 1);
minScrollBar = new QScrollBar(Qt::Horizontal);
minScrollBar->setRange(0, 255);
minScrollBar->setSingleStep(1);
minScrollBar->setValue(4);
connect(minScrollBar, SIGNAL(valueChanged(int)), this, SLOT(minChanged(int)));
maxLabel = new QLabel(tr("max:"));
maxLineEdit = new QLineEdit