从两个未连接的节点移动的星形搜索笔绘图仪

时间:2011-10-01 21:21:39

标签: java a-star pen

我在编程任务方面遇到了麻烦,它是一个笔式绘图仪,已经有很多关于它的问题。

以下是摘要:

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

所有输入都将在包含以下格式的行序列的文件中:

x1 y2和x2 y2之间的线

我正在使用它作为我的输入: 0 0和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之间的线

并且边缘存储在arraylist中。我不确定为什么它会返回一个NullPointerException

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

例外说: 线程“main”java.lang.NullPointerException中的异常     在Nodes.getConnectedEdges(Nodes.java:55)  这是for循环线“for(边缘a:行”

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)?

提前致谢

0 个答案:

没有答案