, поэтому я пытаюсь создать программу, которая может возвращать расстояние между двумя координатами.
но я получаю координаты в строковом формате, например: 23 60 600.
23 - это ось X, 60 - это ось Y, а 600 - это Z.
чтобы вычислить разницу между этими координатами, я использую эту формулу:
Расстояние = √[ (xA − xB)2 + (yA − yB)2 + (zA − zB)2 ]
Обратите внимание, что координаты могут быть отрицательными
так что в конце я пытаюсь сделать это
(input) coordinate a: 20 10 500
(input) coordinate b: -20 200 21
(output) distance between a and b
Это то, что я пытался, но через некоторое время я пришел к выводу, что это не сработает.
String[] parts1 = cord1.split(" ");
String[] parts2 = cord2.split(" ");
// space x y z
// [0] [1] [2] [3]
int v1 = Integer.parseInt(parts1[1]) - Integer.parseInt(parts2[1]) * 2;
int v2 = Integer.parseInt(parts1[2]) - Integer.parseInt(parts2[2]) * 2;
int v3 = Integer.parseInt(parts1[3]) - Integer.parseInt(parts2[3]) * 2;
double conversion = v1 + v2 + v3;
String a = String.valueOf(conversion);
String b = a.replace("-","");
double c = Integer.parseInt(b);
System.out.println(c);
double dist = Math.sqrt(c);
выдал эту ошибку:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at codes.Main.main(Main.java:36)
(строка 36: double c = Integer.parseInt (b);)