Я делаю 3D-объекты из треугольников.Эти треугольники имеют 3 вектора.Теперь у меня есть файл с большим количеством чисел ... Если строка начинается с "v", то строка имеет координаты x, y и z вектора.Если строка начинается с «f», в строке есть строка вектора в файле .txt, которая мне нужна для моего треугольника.Файл начинается со всех «v», а затем продолжается с «f».
Пример: (число в начале - просто строка)
21 v 1.2000 0.20000 -1.0000 -> Вектор1 (1.2, 0.2, -1)
22 v 1.2000 0.20000 1.00000 -> Вектор2 (1.2, 0.2, 1)
23 v -1.200 -0.2000 1.00000 -> Вектор3 (-1.2, -0.2, 1)
...
71 f 21 23 22 -> Треугольник (Vector1, Vector3, Vector2)
И это то, что я пытался, который, очевидно, не работал, так как я новичок в Java: P
public static ArrayList<Triangle> mesh = new ArrayList<>();
public static void loadObject(String fileName) {
try {
Scanner scan = new Scanner(fileName);
ArrayList<Vector> vectors = new ArrayList<>();
while (scan.hasNextLine()) {
if (scan.equals("v")) {
Vector v = new Vector();
int i = 0;
while (scan.hasNextDouble() && i < 3) {
if (i == 0) {
v.setX(scan.nextDouble());
}
if (i == 1) {
v.setY(scan.nextDouble());
}
if (i == 2) {
v.setZ(scan.nextDouble());
}
i++;
}
vectors.add(v);
}
if (scan.equals("f")) {
Triangle t = new Triangle();
int j = 0;
while (scan.hasNextInt() && j < 3) {
if (j == 0) {
t.setVec1(vectors.get(scan.nextInt() - 1));
}
if (j == 1) {
t.setVec2(vectors.get(scan.nextInt() - 1));
}
if (j == 2) {
t.setVec3(vectors.get(scan.nextInt() - 1));
}
j++;
}
mesh.add(t);
}
}
} catch (Exception e) {
}
}
Спасибо за помощь