【问题标题】:How to use Jzy3d java 3d chart library?如何使用Jzy3d java 3d图表库?
【发布时间】:2011-12-24 06:49:11
【问题描述】:

谁能给我一些额外的基本示例,说明应该如何使用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;
    }
}

但是当我尝试运行它时,我得到了那个异常:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 jogl

谁能帮忙?

【问题讨论】:

    标签: java charts jzy3d


    【解决方案1】:

    您应该将jogl.jar 添加到类路径并将jogl.dll 添加到路径。
    更多信息请查看herehere

    您可以阅读jogl 安装说明 here

    【讨论】:

    【解决方案2】:

    您应该在 JOGL 本地库所在的位置运行您的程序或演示,即 ./bin/{platform}。如果您正在使用 Eclipse,请右键单击项目,选择 Propeties,Java Build Path,然后选择 Libraries 选项卡。在“jogl.jar - ...”项下,选择“Native library location: (None)”并单击 Edit 按钮。按 Workspace... 按钮并选择 ./bin/{platform} 文件夹。

    【讨论】:

    • 我遵循此链接的第一个提示,但现在我收到另一个错误 :: 线程“main”中的异常 java.lang.UnsatisfiedLinkError: """C:\Users\UserName\workspace\Test\ bin2\win32\jogl.dll: 无法在 AMD 64 位平台上加载 IA 32 位 .dll """
    • 您可能没有使用适当的二进制文件。尝试加载 AMD 二进制文件。
    • 因为您尝试在 64 位 JVM 上运行 32 位演示。 paltform @Martin 所指的应该是 amd64win64 或任何包含 jogl.dll 的 64 位路径。或者,您可以使用 32 位 JVM 来运行它(在“运行配置”中选择)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多