原创 JavaFX 3D 可視化編程一

 JavaFx 提供了類似QT的界面設計方法,JavaFX 3D是JavaFX 與Java3D的結合,對三維可視化更方便。 下圖是JavaFX 3D中的座標系, X從左到右,Y從上到下,Z從近到遠。 JavaFX 3D 提供了四種基本類

原创 OPM軟件結構

  Module descriptions The current set of modules are: opm-common Contains the OPM build system (CMake modules and scr

原创 JavaFX 3D 可視化編程六

JavaFX 3D有兩種光源,漫反射光源AmbientLight和點光源SpotLight,之前例子看到的都是漫反射光源,使用簡單。設置點光源稍微複雜一點,但可以是物體的立體效果更強。 下面例子展示的長方體在紅色點光源的照射下的效果,而且

原创 JavaFX 3D 可視化編程五

這篇介紹物體的顏色,通過貼圖的方式,可以指定顏色,可以指定一張圖片。 主要是新建了個方法prepaseBox(),它指定了新建盒子的顏色或貼圖。 下面是代碼 package chapt6; import javafx.applicat

原创 JavaFX 3D 可視化編程三

上一篇介紹了基於鍵盤交互的物體旋轉,這篇介紹基於鼠標的物體旋轉。 主要是寫了相應鼠標拖動的方法。   整體代碼如下: package chapt4; import javafx.application.Application; imp

原创 JavaFX 3D 可視化編程二

上一篇介紹了基於JavaFX 3D的物體縮放,分別是通過鍵盤的操作事件,前後移動物體和前後移動相機。這一篇介紹物體的旋轉。 主要是在Group的基礎上新建了個SmartGroup類,給他添加了可以進行旋轉的函數。新建類代碼如下 clas

原创 JavaFX 3D 可視化編程六

這篇是關於多個光源同時存在的情況,一個漫反射的白色光,一個自動移動的紅色點光源。   package chapt8; import javafx.animation.AnimationTimer; import javafx.appl

原创 JavaFX 3D 可視化編程四

前面的例子介紹過縮放,但是採用的鍵盤交互的方式,不太方便,這裏介紹基於鼠標中鍵的物體縮放顯示。 主要是添加了鼠標縮放的事件。 代碼如下: package chapt5; import javafx.application.Applic

原创 GsTL介紹

1、爲什麼要有GsTL 簡單來講GsTL(Geostatistal Template Library)就是大名鼎鼎的GSLIB的C++版本,由於GSLIB是fortran編寫的,越來越不適應當代變成的需要,因此斯坦福大學的SCRF小組就開

原创 Coin3D三維可視化教程7

使用燈光和照相機 在前面的章節中,我們介紹了組、屬性、和形體等節點,並且演示瞭如何使用這些節點來創建場景。現在,我們將要學習可以影響到 3D 圖形場景外觀的兩個節點類:燈光和照相機。在 Inventor 中,如同在現實世界裏那樣,燈光提供

原创 Coin3D三維可視化教程6

路徑(Paths ) 路徑用於區分場景中某個特定對象。假設,我們想使用機器人的左腳。在圖 3-10 (上一節,機器人)中那個節點能代表左腳呢?我們不能簡單地認爲是 foot 節點,因爲這個節點(foot)是被左腿和右腿同時使用的。答案是使

原创 Coin3D三維可視化教程5

組 組節點是一個用於收集子節點對象的容器。組節點可以將屬性、形體、和其它組節點收集到場景中。圖 3-4 展示了部分組節點類的類樹圖。Inventor 中有多種不同類型的組節點,每種組節點都有其特定的“分組”(grouping)特性。 當創

原创 Coin3D三維可視化教程3

命名約定   在Inventor中基本數據類型的名字都是以字母Sb開始的,例如: SbColor SbViewVolume 除了上面的基本數據以外,在Inventor中所有其他的類都是以字母So作爲前綴(場景對象)。例如: SoCone

原创 Coin3D三維可視化教程4

場景數據庫 Inventor場景數據庫是由代表一個或多個 3D場景的數據信息所組成的。如圖 3-1 所示,數據庫SoDB可以包含多個圖形場景。每個場景都是由一組相關的 3D對象和屬性構成的。例如,在圖 3-1 中,場景可以表示爲一輛汽車、

原创 Coin3D三維可視化教程2

這個是在Coin3D三維可視化教程1基礎上的繼續。 上次介紹了SoRotationXYZ 與時間SoElapsedTime綁定實現動態旋轉,這次實現手動旋轉的方式。方法是在圓錐的外面添加一個操作器(軌跡球)SoTrackballManip