1

我在编程作业时遇到了麻烦,它是一个笔绘图仪,这里已经有很多关于它的问题了。

这是一个摘要:

纸张被理解为布置在网格上,x 轴和 y 轴从 0 到无穷大(理论上)。所有图纸都完全包含在此象限中,并且可以假定适合页面。总可以假设行不包含在其他行中。笔总是从原点 (0, 0) 开始,但可以在任何地方结束。线由它们在网格上的端点的 (x, y) 坐标(整数)指定。笔可以在任意两点之间画一条线,也可以在任意两点之间沿直线移动(不画任何东西)。应该很明显,可以在任一方向上画一条线。由于我们希望最小化绘制图形的总时间,假设笔以恒定速度移动,因此最佳绘图是最小化笔在不绘图时移动的总距离的绘图。

所有输入都将在一个文件中,其中包含以下形式的行序列:

x1 y2 和 x2 y2 之间的线

我用这个作为我的输入: Line between 0 0 and 2 2

4 1 和 4 4 之间的线

4 4 和 4 7 之间的线

2 6 和 4 4 之间的线

4 4 和 6 2 之间的线

6 6 和 4 4 之间的线

2 2 和 4 4 之间的线

并且边被存储到数组列表中。我不确定它为什么返回 NullPointerException

我差不多完成了,除了下面的 for 循环返回一个异常,我不知道为什么。它旨在获取图中所有连接边的列表

异常说: Nodes.getConnectedEdges(Nodes.java:55) 处的线程“main”java.lang.NullPointerException 中的异常,这是 for 循环行“for (Edges a :lines”

public ArrayList<Edges> getConnectedEdges(ArrayList<Edges> lines) {
    ArrayList<Edges> returnData = new ArrayList<Edges>();
    for (Edges a : lines) {
        if(a.getFromNode() == this ){ // if this node is the from node of that edge
        returnData.add(a);

        }
        // if this node is the to node of that edge
        if(a.getToNode() == this){
            returnData.add(a);
        }
    }   
    return returnData;
}

流动的问题是如何从原点(0,0)到未连接的点(2,2)?

提前致谢

4

0 回答 0