ペンプロッターのプログラミングの課題で困っています。これについてはすでにかなりの数の質問があります。
要約は次のとおりです。
用紙は、x 軸と y 軸の両方が 0 から無限大 (概念上) までのグリッド上に配置されていると理解されます。すべての図面はこの象限に完全に含まれており、ページに収まると見なすことができます。行は常に、他の行に含まれていないと見なすことができます。ペンは常に原点 (0, 0) から始まりますが、どこでも終了できます。線は、グリッド上の終点の (x, y) 座標 (整数) によって指定されます。ペンは、任意の 2 点間に線を引くか、(何も描画せずに) 任意の 2 点間を直線で移動できます。明らかなように、線はどちらの方向にも引くことができます。図形を描画するための合計時間を最小限に抑えたいので、ペンが一定の速度で移動すると仮定して、最適な描画とは、描画していないときにペンが移動した合計距離を最小限に抑えるものです。
すべての入力は、次の形式の一連の行を含むファイルになります。
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 の間の線
エッジはarraylistに格納されています。NullPointerException を返す理由がわかりません
次のforループが例外を返していることを除いて、私はほとんど完了しており、その理由はわかりません。グラフ内のすべての接続されたエッジのリストを取得することを目的としています
例外は次のように述べています: Exception in thread "main" java.lang.NullPointerException at Nodes.getConnectedEdges(Nodes.java:55) for loop line "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) に到達する方法です。
前もって感謝します