当前位置:首页 » 编程软件 » vtk怎么迁移编译库

vtk怎么迁移编译库

发布时间: 2022-09-08 12:00:58

❶ 怎么把vtk的window转到qt中的qgraphicsview

qt

可以通过QGLWidget运行opengl。QGLWidget继承QWidget,能够直接在里面调用opengl的接口。这个在qt文档里有具体说
明,也有相关例子,所以不赘述了。但是无法在正式软件里面执行,为什么?因为正式软件是用QGraphicsScene这个场景类操作和操作一切
item,而用QGraphicsView将其显示出来,而每一个item都是QGraphicsItem的子类。QGLWidget并不是QGraphicsItem类,我曾经尝试用普通的QWidget类那样,通过proxy来加进QGraphicsItem,但是没有成功。或许有方法,但是没有找到。

于是我放弃了用QGLWidget来操作opengl的打算,寻找直接在QGraphicsItem中操作opengl的方法。通过查看文档和示例代码,找到了这个方法:

1 往qt工程文件里添加opengl以及对应的lib。
2
对QGraphicsView进行一个三维对话框的指定,代码如下:

QGLWidget *widget = new
QGLWidget(QGLFormat(QGL::SampleBuffers));

widget->makeCurrent();

QGraphicsView
view;

view.setViewport(widget);

上述代码告诉了 QGraphicsView 类当前绘制的对象是支持opengl的。于是所有的场景中的item都将绘制到widget 上。
3
写一个QGraphicsItem的继承类,特别要重写paint函数。代码如下:

void XXX::paint(QPainter
*painter, const QStyleOptionGraphicsItem *option, QWidget
*widget)

{

painter->beginNativePainting();

glColor3f(0.5,1.0,0.2);

glBegin(GL_TRIANGLES);

glVertex3f(100.0,100.0,-100.0);

glVertex3f(150.0, 100.0,
-100.0);

glVertex3f(100.0, 150.0,
-100.0);

glEnd();

painter->endNativePainting();

}
上面这个函数主要是用opengl接口绘制了一个三角形。记住,在opengl绘制之前一定要执行painter->beginNativePainting()以及painter->endNativePainting()这两个语句。
QGraphicsScene、
QGraphicsView和QGraphicsItem的关系可以查阅相关文档,也不赘述了。

不过我按照这个方式画的三角形,怎么也在窗口上显示不出来,找了半天才发现问题在这个函数上QGraphicsItem::boundingRect()。这个函数是
干什么用的呢?主要用来返回该item的初始化大小,这个大小不会轻易改变,后续的改变都可以通过矩阵来完成,但是初始大小是不变的。QGraphicsView通过这个矩形来判断当前item是不是需要重绘,如果在重绘区外,则不调用重绘函数了。同时碰撞检测之类,也可以用这个矩形来判断。原来,item本身的矩阵外包框不对,所以才导致了重回不出来,改过来就正确了。

上面说的很潦草,具体怎么改的步骤就不说了。要想正确的绘制,必须得弄清楚坐标系的关系,QGraphicsScene、QGraphicsView以及QGraphicsItem这三个坐标系到底是什么关系。我看了文档,也自己进行了测试,但是感觉文档和测试的结果有些出入。具体出入不说了。说一下自己得心的吧。

先说明:涉及到一切大小和长度,都是像素大小,至少我测试的结果是这样的。
在建立QGraphicsScene
对象的时候,有一个构造函数是矩形,这个矩形是什么含义呢?经过测试,发现这个矩形并没有指定弹出窗口的位置,比如,我把矩形的左上角点指定为
-1000,-1000,显示的位置和1000,1000是一样的,而长度则正确指定了(当然,可能会有滚动条)。所以,这个矩形的左上角点并不是显示的
窗口的位置,而是它在逻辑上的左上角点。我们显示一切item,都是以这个逻辑上的坐标系为准来绘制的。比如,左上角点是-1000,-1000,而
item的位置在-500,-500,则这个-500,-500相当于在显示窗口的左上角往下各加500个像素的坐标的位置。

那么 QGraphicsItem的boundingRect是什么意思呢?返回的是什么大小?是以什么坐标系显示的大小?首先,这个大小肯定是以像素为单位的,其次,这个矩形的坐标是以QGraphicsScene的逻辑坐标为准的。当然这个大小是没有任何矩阵叠加的大小。有了矩阵叠加后,实际的矩形可能会发生变化。假如在boundingRect中指定矩形的左上角为100,100,那么最终体现的位置则是QGraphicsScene逻辑坐标100,100的位置,如果QGraphicsScene的左上角点已经指定为-1000,-1000,那么这个位置实际上就是离窗口左上角点1100,1100的位置(由于有滚动条,所以也不一定是这个长度。)

那么在QGraphicsItem的paint函数中进行了opengl绘制用的是什么坐标呢?其实用的也是QGraphicsScene
的逻辑坐标。如上面的例子,绘制的直角三角形直角顶点是0,0,那么显示的位置就是距离显示窗口左上角点1000,1000的位置。不过opengl的所
有绘制都是没有矩阵叠加的基础上,如果用矩阵叠加,则显示的位置肯定和指定的有区别了。比如,我用setPos强制指定一个位置,这个位置将和opengl绘图坐标相叠加,最后显示到窗口上。我推测setPos其实是改变了矩阵,是一个平移矩阵。

❷ vtk for python该怎样用

直接下载安装vtkpython-7.1.1-Windows-64bit.exe就可以了

才60M不到

不用像C++一样还要编译VTK,python大法好

具体步骤如下:

1)安装Python,(此处省略)

2)安装VTK,从网站http://www.vtk.org/VTK/resources/software.html下载最新版本,此文安装的是:vtkpython-7.1.1-Windows-64bit.exe

3)配置VTK环境变量:

A:把VTK中的bin文件加入系统变量中:如:PATH:C:Program FilesVTK 6.1.0in

B:设置python路径,在系统变量中创建PYTHONPATH :如:PYTHONPATH :

D:ProgramVTK_Pythonin; D:ProgramVTK_PythoninLibsite-packages

4)测试,打开python IDEL界面,输入:import vtk

>>> import vtk

没提示错误就是对的

❸ vtk vs2013编译 可以再vs2015中使用吗

解压下载的vtk源文件于文件夹D:\VTK\VTK-6.1.0下,新建文件夹D:\VTK\VTKBuild用于放置编译文件,在解压源文件的同时解压下载的数据文件vtkdata,解压路径选择在D:\VTK\VTK-6.1.0下,会自动解压到D:\VTK\VTK-6.1.0下的.ExternalData文件夹内。

❹ unity怎么用vtk

VTK是开放源码的,可以自由地从VTK网站上免费获取到VTK的源代码。
Unity是一款由UnityTechnologies研发的跨平台2D/3D游戏引擎。它以交互的图型化开发环境为首要方式,编译器运行在Windows和MacOSX下,可发布游戏至Windows、Wii、OSX、iOS或HTML5等众多平台。

❺ vtkguisupportqt 库怎么安装

1、下载
VTk官方下载页面:http://www.vtk.org/VTK/resources/software.html#latest
我下载的是vtk-6.0.0.zip(源码)、vtkdata-6.0.0.zip(数据)、vtkDocHtml-6.0.0.tar.gz.(帮助文档)。
既然下载了源码, 就不需要下载win32的安装exe程序了,我们自己手动编译。
2、编译
2.1下载cmake-2.8.11.2-win32-x86.exe,并安装。用它来完成VTK的编译。
2.2解压vtk-6.0.0.zip至D:\VTK6.0\vtk,
解压vtkdata-6.0.0.zip至D:\VTK6.0\vtkdata
解压vtkDocHtml-6.0.0.tar.gz 至D:\VTK6.0\vtkDocHtml
2.3 运行安装后的,CMake程序。
选择source code目录为 D:\VTK6.0\vtk
选择build后的bin目录为 D:\VTK6.0\bin
点击Configure按钮,会提示你选择编译器,我们选择visual studio 9 2008.然后Cmake会扫描一下它需要的文件,等它停下来后,我们就可以修改CMake的参数选项了。

❻ vtk6.1版本中,vtkImageData这个类怎么用

尝试如下代码,我用的是vtk6.3,vs2013,编译成功。

autoimg=vtkSmartPointer<vtkImageData>::New();
autoinfo=vtkSmartPointer<vtkInformation>::New();
//autoinfo3=img->GetInformation();//此处也可以从img里面获取information,如
//果information为空,则会创建一个新的,相当于调用New之后再SetInformation
img->SetDimensions(10,10,10);
img->SetScalarType(VTK_UNSIGNED_CHAR,info);
img->SetNumberOfScalarComponents(1,info);
img->AllocateScalars(info);

❼ 如何编译vtk,itk源代码,形成静态链接库

做thesis,想用VTK,ITK做医学图像三维重建,就是读取DICOM格式的CT扫描件,然后用ITK获取某一区域,处理后再用VTK显示出来,能用鼠标拖着看三维图像,大概就是这么个思路。结果在软件安装的过程中就出错。。实在是郁闷。。以下是具体情况,各位大侠看后发表下

❽ 怎么样将vtk转化为别的格式(见图),最好有软件可以实现,谢谢!

paraview和visit支持vtk的格式,你只需关心这些软件支持哪些输出既可。

如果一个软件转不了,转成一种更能用的中间格式

❾ 如何使用已经编译安装好的vtk

1.下载VTK6,可以上官网自行下载
2.解压到当前目录
3.进入目录创建build文件夹,存放编译文件。
4.进入build文件夹进行配置,进行配置ccmake .. (注意ccmake与..之间有空格,".."代表上一级目录)
5.运行步骤4进行安装就可以的

❿ 如何安装VTK6.2.0

1、首先从VTK官网上下载vtk6.2.0和CMake3.2.3.

http://www.vtk.org/download/

http://www.cmake.org/download/

默认已经装好了vs2010啦,

最后是环境配置,请在系统path中添加.../vtk;,然后把vtk/bin中的dll文件拷进system32中。

热点内容
同样的配置为什么跑分不同 发布:2025-05-13 18:39:06 浏览:278
获取linuxcpu序列号 发布:2025-05-13 18:36:35 浏览:738
appleid为什么连接服务器出现问题 发布:2025-05-13 18:17:37 浏览:971
书翁怎么配置 发布:2025-05-13 18:17:36 浏览:911
云数据库mongodb 发布:2025-05-13 18:16:12 浏览:774
A7编程 发布:2025-05-13 18:15:26 浏览:742
python视图 发布:2025-05-13 18:14:01 浏览:759
win为什么干不过安卓 发布:2025-05-13 18:12:27 浏览:586
文件夹只读win8 发布:2025-05-13 18:11:41 浏览:272
xp安装php 发布:2025-05-13 18:04:30 浏览:183