【问题标题】:jzy3d builder cannot be resolved error on eclipsejzy3d builder无法解决eclipse上的错误
【发布时间】:2022-02-03 00:39:39
【问题描述】:

所以,我最近(通过 Maven)下载了 jzy3d 库,这样我就可以将我现有的程序从 JS 转换和改进为 Java,并且为了掌握新库,我正在尝试一些可用的示例library site 但是,正如标题所示,我不断收到“无法解析生成器”错误。 我尝试添加 org.jzy3d.plot3d.builder.Builder 导入但也没有成功,因为它返回未使用的导入警报。

这是我的代码:

package randomProjects;

import org.jzy3d.chart.Chart;
import org.jzy3d.chart.ChartLauncher;
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.Mapper;
import org.jzy3d.plot3d.builder.concrete.OrthonormalGrid;
import org.jzy3d.plot3d.primitives.Shape;
import org.jzy3d.plot3d.rendering.canvas.Quality;

public class SurfPlotTest_JZY3D {

    public static void main(String[] args){
        
        // 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 a surface drawing that function;
        Shape surface = 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.setFaceDisplayed(true);
        surface.setWireframeDisplayed(false);
        surface.setWireframeColor(Color.BLACK);

        // Create a chart and add the surface
        Chart chart = new Chart(Quality.Advanced);
        chart.getScene().getGraph().add(surface);
        ChartLauncher.openChart(chart);
        
    }
    
}

这是错误信息:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Builder cannot be resolved
    The field Quality.Advanced is not visible

    at randomProjects.SurfPlotTest_JZY3D.main(SurfPlotTest_JZY3D.java:30)

我还发现在第 37 行的程序中还有另一个错误很重要,我尝试通过 Quality.Advanced() 修复交换 Quality.Advanced em>,但又一次,没有任何成功。

稍作更新,希望得到答案

如果我使用手动导入的项目文件,也可以在库站点中找到,我不会收到生成器错误,而是在编译时返回以下错误。

The project: org.jzy3d-0.9 which is referenced by the classpath, does not exist.

这是项目中的示例代码

package org.jzy3d.demos.surface;

import org.jzy3d.chart.Chart;
import org.jzy3d.chart.controllers.keyboard.camera.CameraKeyController;
import org.jzy3d.colors.Color;
import org.jzy3d.colors.ColorMapper;
import org.jzy3d.colors.colormaps.ColorMapRainbow;
import org.jzy3d.demos.AbstractDemo;
import org.jzy3d.demos.DemoLauncher;
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;
import org.jzy3d.plot3d.rendering.canvas.Quality;

public class ColorWaveDemo extends AbstractDemo {
    public static void main(String[] args) throws Exception {
        DemoLauncher.openDemo(new ColorWaveDemo());
    }

    public ColorWaveDemo() {
    }

    @Override
    public void init() {
        // Define a function to plot
        Mapper mapper = new Mapper() {
            public double f(double x, double y) {
                return x * Math.sin(x * y);
            }
        };

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

        // Create the object to represent the function over the given range.
        final Shape surface = 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.setFaceDisplayed(true);
        surface.setWireframeDisplayed(false);

        // Create a chart
        chart = new Chart(Quality.Advanced, getCanvasType());
        chart.getScene().getGraph().add(surface);
        chart.addController(new CameraKeyController());
    }
}

认为我是一个通过 Maven 或其他方式导入库的完全菜鸟,我这样做是为了掌握并学习如何操作,所以我希望能得到详细的回答。如果需要,我还可以包含我的 .pom 文件。

【问题讨论】:

    标签: java eclipse jzy3d


    【解决方案1】:

    网站上的教程页面已经过时了。您可能会发现tutorials that are embedded in the library 更容易使用,例如this surface example.

    readme of this module 也应该有所帮助。

    【讨论】:

    • 很抱歉这么久才回复,过去的几个小事对我来说简直是人间地狱,刚才我有时间检查你的答案,这导致我修复了 .pom 文件错误我有,但不幸的是 Quality.Advanced 错误保持不变,即使我更改了整个代码,而不是更改分号,由您提供的代码。
    • 您必须用 Quality.Advanced() 方法调用替换 Quality.Advanced 字段。看到这条线github.com/jzy3d/jzy3d-api/blob/master/jzy3d-tutorials/src/main/…
    • so... 问题是我已经在 Git Hub 上复制了您的示例,ipsis litteris 仍然给我Builder cannot be resolved The field Quality.Advanced is not visible 错误,这次是在第35行评论// Define a function to plot,你还能帮我吗?
    • 由于在演示中没有将 Quality.Advanced 作为字段引用,而仅将 Quality.Advanced() 作为方法引用,我认为您的项目依赖项中有问题。我建议您根据我提供的示例重新启动一个新项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2012-10-27
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多