我需要的是一個3D表面上的點的3D功能圖。我怎樣才能實現它?在Java中繪製3D功能和點
一開始我嘗試jzy3d但事實證明,它是這樣一個基本任務(尤其是因爲jzy3d缺少代碼示例和依賴與JOGL可能是麻煩的)太多精力。所以我試了Java Surface Plot和功能表面部分 - 這是完美的。但是有可能添加(x,y,z)點..?我猜不會。在這種情況下,我可以使用哪些其他庫?
我知道這個問題可能會覺得偏離主題,但這種簡單的繪製是基本功能和this答案已經2歲的,所以..也許有更好的東西了嗎?
我需要的是一個3D表面上的點的3D功能圖。我怎樣才能實現它?在Java中繪製3D功能和點
一開始我嘗試jzy3d但事實證明,它是這樣一個基本任務(尤其是因爲jzy3d缺少代碼示例和依賴與JOGL可能是麻煩的)太多精力。所以我試了Java Surface Plot和功能表面部分 - 這是完美的。但是有可能添加(x,y,z)點..?我猜不會。在這種情況下,我可以使用哪些其他庫?
我知道這個問題可能會覺得偏離主題,但這種簡單的繪製是基本功能和this答案已經2歲的,所以..也許有更好的東西了嗎?
我對於stackoverflow很新,所以也許我會引入一些新的(礦石也許是舊的)視圖。
您可以將您的三維點到二維點,我會以某種方式提交一段代碼,它(但也有不少)
//point a (3D)
double ax = 3;
double ay = 4;
double az = 3;
//point b (2D)
double bx = 0;
double by = 0;
//assumtions
double cx = 0; //offset
double cz = 0; //offset
double scalex = 0.5;
double scalez = 0.5;
//trafo 3D -> 2D
bx = scalex * ax + cz;
by = scalez * az + cz;
我指的是http://en.wikipedia.org/wiki/3D_projection
用你所有的觀點來做這件事,你會看到繪製的圖表。
Orson Charts是一個新的專有庫,它將繪製不含JOGL依賴關係的曲面圖(它包含基於Java2D的軟件渲染器,因此除標準Java運行時外沒有依賴關係)。表面渲染器從函數y = f(x,z)獲取樣本,因此可能存在與您的要求相關的問題,您說:
但是是否可以添加(x,y,z)點..?
但是,使代碼適應這些數據並不困難,所以如果Orson Charts看起來像可以使用的東西,請聯繫我。
大衛你好,我想能夠從網格中派生一個表面的x,y,z點,而不是被要求提供連續的功能。然而,我希望能夠做的另一件事(以及我認爲OP正在獲得的)是在同一個3D圖中有兩個「系列」 - 一個包含其他(可能不相關的)x,y,z散射點的表面同時呈現。奧森支持嗎?謝謝! –
有Jzy3d examples on Github顯示如何繪製曲面和散點圖。
你會看到Maven的配置是相當簡單的,你應該簡單地聲明一個依賴於jzy3d(JOGL被及物動詞進口):
<dependencies>
<dependency>
<groupId>org.jzy3d</groupId>
<artifactId>jzy3d-api</artifactId>
<version>0.9.2-SNAPSHOT</version>
</dependency>
</dependencies>
你只需要申報Jzy3d的存儲庫作爲跟隨
<repositories>
<repository>
<id>jzy3d-snapshots</id>
<name>Jzy3d Snapshots</name>
<url>http://maven.jzy3d.org/snapshots</url>
</repository>
<repository>
<id>jzy3d-releases</id>
<name>Jzy3d Releases</name>
<url>http://maven.jzy3d.org/releases</url>
</repository>
如果給出的示例不夠用,您可能還會看看developer guide。
我不想投射3D點。我想完全具有功能表面的三維繪圖,還有一些標記在其上的點。在3D中也是如此。 – alex
我不確定你想如何在二維設備(屏幕)上顯示(繪圖)3D點...但是如果您調整參數cx/cz和scalex/scaley,您可以旋轉,縮放,平移(平移)在你的[預計]陰謀 –
哦,這就是你的意思。投影點是可行的,但實現一個表面圖(http:// goo。gl/CteZjO)可以從頭開始移動/旋轉的方式太多了。我相信有圖書館會照顧它。 – alex