Plot Jzy3d 3d插值图未渲染

Plot Jzy3d 3d插值图未渲染,plot,graph,interpolation,jzy3d,Plot,Graph,Interpolation,Jzy3d,我试图在给定一组坐标的情况下绘制一条3d路径。从jzy3d的演示应用程序中,我发现这可以通过它们的Bernsteinterpolator和linestripeinterpolated类实现 在他们源代码的帮助下,我尝试复制如下: public static void main(String[] args) { BernsteinInterpolator interp = new BernsteinInterpolator(); List<Coord3d> cont

我试图在给定一组坐标的情况下绘制一条3d路径。从jzy3d的演示应用程序中,我发现这可以通过它们的
Bernsteinterpolator
linestripeinterpolated
类实现

在他们源代码的帮助下,我尝试复制如下:

public static void main(String[] args) {

    BernsteinInterpolator interp = new BernsteinInterpolator();

    List<Coord3d> controlCoords = new ArrayList<>();
    controlCoords.add(new Coord3d(0.0, 0.0, 0.0));        
    controlCoords.add(new Coord3d(1.0, 0.0, 1.0));
    controlCoords.add(new Coord3d(1.0, 0.0, 2.0));
    controlCoords.add(new Coord3d(1.0, 1.0, 2.0));
    controlCoords.add(new Coord3d(0.0, 1.0, 2.0));
    controlCoords.add(new Coord3d(3.0, 2.0, -1.0));

    LineStripInterpolated line = new LineStripInterpolated(interp, controlCoords, 30);

    Chart chart = new AWTChart(Quality.Intermediate);
    chart.add(line);
    chart.open("chart test", 600, 600);
}
public static void main(String[] args) {

    List<Coord3d> controlCoords = new ArrayList<>();
    controlCoords.add(new Coord3d(0.0F, 0.0F, 0.0F));
    controlCoords.add(new Coord3d(1.0F, 0.0F, 1.0F));
    controlCoords.add(new Coord3d(1.0F, 0.0F, 2.0F));
    controlCoords.add(new Coord3d(1.0F, 1.0F, 2.0F));
    controlCoords.add(new Coord3d(0.0F, 1.0F, 2.0F));
    controlCoords.add(new Coord3d(3.0F, 2.0F, -1.0F));

    BernsteinInterpolator interp = new BernsteinInterpolator();
    List<Coord3d> interpolatedCoords = interp.interpolate(controlCoords, 30);

    List<Point> controlPoints = new ArrayList<>();
    for (Coord3d coord : controlCoords) {
        controlPoints.add(new Point(coord, Color.RED, 5.0));
    }

    List<Point> interpPoints = new ArrayList<>();
    for (Coord3d coord : interpolatedCoords) {
        interpPoints.add(new Point(coord, Color.BLUE, 3.0));
    }

    LineStrip line = new LineStrip(interpolatedCoords);
    line.setWireframeColor(Color.BLACK);

    Chart chart = new AWTChart(Quality.Intermediate);
    chart.add(line);
    chart.add(controlPoints);
    chart.add(interpPoints);
    chart.open("chart test", 600, 600);
}
publicstaticvoidmain(字符串[]args){
Bernsteinterpolator interp=新的Bernsteinterpolator();
List controlCoords=new ArrayList();
添加(新的Coord3d(0.0,0.0,0.0));
添加(新的Coord3d(1.0,0.0,1.0));
添加(新的Coord3d(1.0,0.0,2.0));
添加(新的Coord3d(1.0,1.0,2.0));
添加(新的Coord3d(0.0,1.0,2.0));
添加(新的Coord3d(3.0,2.0,-1.0));
LineStripInterpolated line=新的LineStripInterpolated(interp,controlCoords,30);
图表=新的AWTChart(质量中间型);
图表.添加(行);
打开(“图表测试”,600600);
}
根据演示应用程序->


不幸的是,上面只呈现一个没有错误或异常的空白窗口。有人知道出了什么问题吗?非常感谢你的帮助

因此,我深入研究了源代码,发现有一种方法可以绕过
linestripeinterpolated
类,如下所示:

public static void main(String[] args) {

    BernsteinInterpolator interp = new BernsteinInterpolator();

    List<Coord3d> controlCoords = new ArrayList<>();
    controlCoords.add(new Coord3d(0.0, 0.0, 0.0));        
    controlCoords.add(new Coord3d(1.0, 0.0, 1.0));
    controlCoords.add(new Coord3d(1.0, 0.0, 2.0));
    controlCoords.add(new Coord3d(1.0, 1.0, 2.0));
    controlCoords.add(new Coord3d(0.0, 1.0, 2.0));
    controlCoords.add(new Coord3d(3.0, 2.0, -1.0));

    LineStripInterpolated line = new LineStripInterpolated(interp, controlCoords, 30);

    Chart chart = new AWTChart(Quality.Intermediate);
    chart.add(line);
    chart.open("chart test", 600, 600);
}
public static void main(String[] args) {

    List<Coord3d> controlCoords = new ArrayList<>();
    controlCoords.add(new Coord3d(0.0F, 0.0F, 0.0F));
    controlCoords.add(new Coord3d(1.0F, 0.0F, 1.0F));
    controlCoords.add(new Coord3d(1.0F, 0.0F, 2.0F));
    controlCoords.add(new Coord3d(1.0F, 1.0F, 2.0F));
    controlCoords.add(new Coord3d(0.0F, 1.0F, 2.0F));
    controlCoords.add(new Coord3d(3.0F, 2.0F, -1.0F));

    BernsteinInterpolator interp = new BernsteinInterpolator();
    List<Coord3d> interpolatedCoords = interp.interpolate(controlCoords, 30);

    List<Point> controlPoints = new ArrayList<>();
    for (Coord3d coord : controlCoords) {
        controlPoints.add(new Point(coord, Color.RED, 5.0));
    }

    List<Point> interpPoints = new ArrayList<>();
    for (Coord3d coord : interpolatedCoords) {
        interpPoints.add(new Point(coord, Color.BLUE, 3.0));
    }

    LineStrip line = new LineStrip(interpolatedCoords);
    line.setWireframeColor(Color.BLACK);

    Chart chart = new AWTChart(Quality.Intermediate);
    chart.add(line);
    chart.add(controlPoints);
    chart.add(interpPoints);
    chart.open("chart test", 600, 600);
}
publicstaticvoidmain(字符串[]args){
List controlCoords=new ArrayList();
添加(新的Coord3d(0.0F,0.0F,0.0F));
添加(新的Coord3d(1.0F,0.0F,1.0F));
添加(新的Coord3d(1.0F,0.0F,2.0F));
添加(新的Coord3d(1.0F,1.0F,2.0F));
添加(新的Coord3d(0.0F,1.0F,2.0F));
添加(新的Coord3d(3.0F,2.0F,-1.0F));
Bernsteinterpolator interp=新的Bernsteinterpolator();
列出插值坐标=插值(controlCoords,30);
列表控制点=新的ArrayList();
用于(Coord3d coord:controlCoords){
控制点。添加(新点(坐标,颜色。红色,5.0));
}
List interpPoints=new ArrayList();
对于(坐标3D坐标:插值坐标){
添加(新点(coord,Color.BLUE,3.0));
}
线条带线=新线条带(插值坐标);
line.setWireframeColor(颜色:黑色);
图表=新的AWTChart(质量中间型);
图表.添加(行);
图表。添加(控制点);
图表。添加(点间);
打开(“图表测试”,600600);
}
希望这能帮助其他有同样问题的人。我仍然很好奇为什么我以前的方法不起作用(