當前位置:首頁 » 編程軟體 » 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中。

熱點內容
appleid為什麼連接伺服器出現問題 發布:2025-05-13 18:17:37 瀏覽:970
書翁怎麼配置 發布:2025-05-13 18:17:36 瀏覽:911
雲資料庫mongodb 發布:2025-05-13 18:16:12 瀏覽:773
A7編程 發布:2025-05-13 18:15:26 瀏覽:741
python視圖 發布:2025-05-13 18:14:01 瀏覽:758
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
sqlserver介紹 發布:2025-05-13 17:58:00 瀏覽:4
雲閃付安卓版哪個版本好用 發布:2025-05-13 17:57:16 瀏覽:187