Я нарисовал линию, а затем точку, и затем я хочу проверить, находится ли точка на линии или нет. Я взял координату строки в массиве (так как было более одной строки). Я хочу проверить текущую точку в последней строке или нет?
if (positionX1 == positionX2 && positionY1 == positionY2) {
float m = line.getSlope(
drawLines[currentLines - 1][2], drawLines[currentLines - 1][3],
drawLines[currentLines - 1][0], drawLines[currentLines - 1][1]);
m = Float.parseFloat(df.format(m));
float c = line.getIntercept(
drawLines[currentLines - 1][2], drawLines[currentLines - 1][3],
drawLines[currentLines - 1][0], drawLines[currentLines - 1][1]);
c = Math.round(c);
m1 = line.getSlope(positionX2, positionY2,
drawLines[currentLines - 1][0], drawLines[currentLines - 1][1]);
m1 = Float.parseFloat(df.format(m1));
System.out.println(m + " " + m1);
c1 = line.getIntercept(positionX2, positionY2,
drawLines[currentLines - 1][0], drawLines[currentLines - 1][1]);
c1 = Math.round(c1);
if (m == m1 && ((c == c1) || (c == c1 - 1) || (c == c1 + 1))) {
System.out.println("Point is on Line");
}
}
Проблема в том, что точка находится рядом с начальной точкой линии или когда линия соответствует вертикальным значениям m1 и c1 изменяется с большой разницей. Таким образом, существует проблема с определением точки на линии или нет. Как я могу проверить эту ситуацию?