我需要的只是3D中的功能图,表面上有一些点。我怎样才能实现它?
起初我尝试了 jzy3d ,但事实证明这对于这样一个基本任务来说太费力了(特别是因为jzy3d缺少代码示例和JOGL的依赖性可能很麻烦)。所以我尝试了 Java Surface Plot ,对于功能表面部分 - 它是完美的。但是可以添加(x,y,z)点吗?我猜不会。在这种情况下,我可以使用其他库吗?
我知道这个问题可能会让人感到偏离主题,但是这样一个简单的绘图是一个基本的功能,this答案已经有2年了,所以..也许现在有更好的东西了?
答案 0 :(得分:3)
Orson Charts是一个新的(专有)库,它将绘制没有JOGL依赖关系的表面图表(它包含一个基于Java2D的软件渲染器,因此除标准Java运行时之外没有依赖关系)。表面渲染器从函数y = f(x,z)中获取样本,因此您的需求可能存在问题:
但是可以添加(x,y,z)点吗?
但是,调整代码以使用这些数据并不困难,因此如果Orson Charts看起来像您可以使用的那样,请与我联系。
答案 1 :(得分:2)
我对stackoverflow很新,所以也许我会带来一些新的(可能是旧的)视图。
您可以将3D点转换为2D点,我会以一种方式向其提交代码片段(但有很多)
//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
对所有点进行此操作,您将看到绘制的图表。
答案 2 :(得分:1)
有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。