FXyz установил цвет лиц в зависимости от их роста

У меня есть массив высот местности anxn, который имеет значения от, где 0 — уровень моря. Я сгенерировал этот массив с использованием симплексного шума и хочу отобразить его с помощьюна Яве. С помощью следующего кода я могу правильно отобразить массив, но понятия не имею, как настроить разные цвета в соответствии с их высотой в моем коде. Кто-нибудь знает, как я могу реализовать эту функцию?

Также мне кажется, что в моем коде есть небольшая ошибка, из-за которой местность отображается перевернутой.

          @Override public void start(Stage primaryStage) {

        Group group = new Group();
        Tile[][] tiles = new GenerateSimplexTiles(SIZE, SIZE, 8, .5).getTiles();

        TriangleMesh terrainMesh = new TriangleMesh();
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE; j++) {
                float x = (float) (i * SCALE);+
                float y = (float) (tiles[i][j].value * SCALE * 5);
                float z = (float) (j * SCALE);
                terrainMesh.getPoints().addAll(x, y, z);
                terrainMesh.getTexCoords().addAll(0, 150,255);
            }
        }

        for (int i = 0; i < SIZE - 1; i++) {
            for (int j = 0; j < SIZE - 1; j++) {
                int p0 = i * SIZE + j;
                int p1 = i * SIZE + j + 1;
                int p2 = (i + 1) * SIZE + j + 1;
                int p3 = (i + 1) * SIZE + j;

                terrainMesh.getFaces().addAll(p0, 0, p3, 0, p1, 0);
                terrainMesh.getFaces().addAll(p1, 0, p3, 0, p2, 0);
            }
        }

        MeshView terrain = new MeshView(terrainMesh);
        terrain.setCullFace(CullFace.BACK);
        terrain.setDrawMode(DrawMode.FILL);

        group.getChildren().add(terrain);
        Scene scene = new Scene(group, WIDTH, HEIGHT, true);
        primaryStage.setScene(scene);
        primaryStage.setTitle("3D Visualize");
        primaryStage.show();
    }

0 ответов

Другие вопросы по тегам