如何使用Jzy3d java 3d图表库?

如何使用Jzy3d java 3d图表库?,java,charts,jzy3d,Java,Charts,Jzy3d,有人能给我一些额外的基本示例,说明如何使用jzy3d (源站点的示例不适合我) 我尝试了以下代码: import org.jzy3d.chart.Chart; import org.jzy3d.colors.Color; import org.jzy3d.colors.ColorMapper; import org.jzy3d.colors.colormaps.ColorMapRainbow; import org.jzy3d.maths.Range; import org.jzy3d.plot

有人能给我一些额外的基本示例,说明如何使用
jzy3d
(源站点的示例不适合我)

我尝试了以下代码:

import org.jzy3d.chart.Chart;
import org.jzy3d.colors.Color;
import org.jzy3d.colors.ColorMapper;
import org.jzy3d.colors.colormaps.ColorMapRainbow;
import org.jzy3d.maths.Range;
import org.jzy3d.plot3d.builder.Builder;
import org.jzy3d.plot3d.builder.Mapper;
import org.jzy3d.plot3d.builder.concrete.OrthonormalGrid;
import org.jzy3d.plot3d.primitives.Shape;

public class Test {

    public static void main(String[] args) {

        JFrame frame = new JFrame();
        Chart chart = getChart();

        frame.add((javax.swing.JComponent) chart.getCanvas());

        frame.setSize(800, 800);
        frame.setLocationRelativeTo(null);
        frame.setTitle("test");
        frame.setVisible(true);
    }

    public static Chart getChart() {
        // Define a function to plot
        Mapper mapper = new Mapper() {
            public double f(double x, double y) {
                return 10 * Math.sin(x / 10) * Math.cos(y / 20) * x;
            }
        };

        // Define range and precision for the function to plot
        Range range = new Range(-150, 150);
        int steps = 50;

        // Create the object to represent the function over the given range.
        org.jzy3d.plot3d.primitives.Shape surface = (Shape) Builder.buildOrthonormal(new OrthonormalGrid(range, steps, range, steps), mapper);
        surface.setColorMapper(new ColorMapper(new ColorMapRainbow(), surface.getBounds().getZmin(), surface.getBounds().getZmax(), new Color(1, 1, 1, .5f)));
        surface.setWireframeDisplayed(true);
        surface.setWireframeColor(Color.BLACK);
        //surface.setFace(new ColorbarFace(surface));
        surface.setFaceDisplayed(true);
        //surface.setFace2dDisplayed(true); // opens a colorbar on the right part of the display

        // Create a chart
        Chart chart = new Chart();
        chart.getScene().getGraph().add(surface);
        return chart;
    }
}
但是,当我尝试运行它时,会出现以下异常:

线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有jogl


有人能帮忙吗?

您应该将
jogl.jar
添加到类路径,并将
jogl.dll
添加到路径
有关更多信息,请查看和


您可以阅读
jogl
安装说明

您应该在JOGL本机库所在的位置运行程序或演示,即../bin/{platform}。如果您正在使用Eclipse,右键单击项目,选择Properties、Java构建路径,然后选择Libraries选项卡。在“jogl.jar-…”项下选择“本机库位置:(无)”并单击编辑按钮。按工作区。。。按钮并选择./bin/{platform}文件夹。

我遵循此链接的第一个提示:()。但是现在我在线程“main”java.lang.unsatifiedlinkerror:C:\Users\UserName\workspace\Test\bin2\win32\jogl.dll:无法在AMD 64位平台上加载IA 32位.dll阅读本文:和本文:&这些链接帮助我找到了一个64位版本,可以在我的项目中使用。现在我可以走得更远了。现在的问题与我的界面中的集成有关。事实上,我遵照指示::()。对于Swing::“线程中的异常”main“java.lang.ClassCastException:org.jzy3d.plot3d.rendering.canvas.CanvasAWT无法转换为javax.Swing.JComponent”。对于AWT::“线程中的异常”AWT-EventQueue-0“java.lang.unsatifiedLinkError:com.sun.opengl.impl.JAWTFactory.JAWT_GetAWT0(Ljava/nio/ByteBuffer;)Z“阅读本文:我遵循此链接的第一个提示,但现在我得到另一个错误::线程“main”java.lang.unsatifiedLinkError中的异常:“C:\Users\UserName\workspace\Test\bin2\win32\jogl.dll:无法在AMD 64位平台上加载IA 32位.dll”“”您可能没有使用适当的二进制文件。尝试加载AMD二进制文件。因为您正在尝试在64位JVM上运行32位演示。马丁所指的
paltform
@应该是
amd64
win64
或包含64位jogl.dll的任何路径。或者,您可以使用32位JVM来运行它(在“运行配置”中选择)。