我在编程任务方面遇到了麻烦,它是一个笔式绘图仪,已经有很多关于它的问题。
以下是摘要:
纸张被理解为布置在网格上,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)?
提前致谢