我試圖計算給定一組點(queenx,queeny和索引號)的斜率,以確定兩個點是水平的,垂直的還是對角線的其他。以下是代碼:檢查給定座標的水平,垂直和對角線對
請注意,checkSlope方法只計算斜率。我不明白這種方法有什麼問題,給出以下幾點: [0,0] [6,1] [4,2] [7,3] [1,4] [3,5] [5, 6] [2,7],但它仍然表明有匹配,但實際上沒有。
for(int i = 0; i < 8; i++) {
int x1 = queenx.get(i);
int y1 = queeny.get(i);
for(int j = 0; j < 8; j++) {
int x2 = queenx.get(j);
int y2 = queeny.get(j);
if(i != j) {
double slope = Math.abs(checkSlope(x1, y1, x2, y2));
try {
if ((slope == 1) || (slope == 0)) {
correct = false;
System.out.println("x1 = " + x1 + " y1 = " + y1 + " x2 = " + x2 + " y2 = " + y2);
break;
}
} catch(Exception e) {
correct = false;
break;
}
}
}
}
public static double checkSlope(int x1, int y1, int x2, int y2) {
return (double)((y2 - y1)/(x2 - x1));
}
你能解釋一下checkSlope是什麼以及你如何定義「斜率」 –
請向我們展示checkSlope函數。 「slope == 1」和「slope == 0」是什麼意思?什麼情況是「正確的」? –
@ModusTollens在代碼中添加了該功能 –