Построение поверхности сетки сетки в Java

У меня есть массив 40x40, заполненный значениями double, которые соответствуют сетке сетки, состоящей из двух матриц в Java. Я хотел бы построить поверхность из этих значений в 3D и нашел библиотеку JZY3D, которая кажется подходящей, но Я не знаю, с чего начать и как кодировать такой сюжет. Кто-нибудь работал с этой библиотекой и может дать дельный совет, с чего начать?


person borgmater    schedule 06.10.2016    source источник


Ответы (1)


Похоже на SurfaceDemo от jzy3D. Вам нужно создать поверхность, а не построить Orthonormal (строка 36 в SurfaceDemo.java).

ответ: https://stackoverflow.com/a/8339474

Алгоритмы: https://www.mathworks.com/help/matlab/ref/surf.html

double[][] Z = new double[40][40];
...
List<Polygon> polygons = new ArrayList<Polygon>();
for(int i = 0; i < zq.length -1; i++){
    for(int j = 0; j < zq[0].length -1; j++){
        Polygon polygon = new Polygon();
        polygon.add(new Point(new Coord3d(i, j, Z[i][j])));
        polygon.add(new Point(new Coord3d(i, j+1, Z[i][j+1])));
        polygon.add(new Point(new Coord3d(i+1, j+1, Z[i+1][j+1])));
        polygon.add(new Point(new Coord3d(i+1, j, Z[i+1][j])));
        polygons.add(polygon);
    }
}
final Shape surface = new Shape(polygons);
surface.setColorMapper(new ColorMapper(new ColorMapRainbow(), surface.getBounds().getZmin(), surface.getBounds().getZmax(), new Color(1, 1, 1, .5f)));
surface.setFaceDisplayed(true);
surface.setWireframeDisplayed(true);
// Create a chart and add it
Chart chart = new Chart();
chart.getAxeLayout().setMainColor(Color.WHITE);
chart.getView().setBackgroundColor(Color.BLACK);
chart.getScene().add(surface);
ChartLauncher.openChart(chart);

результат

person kurt    schedule 12.10.2016
comment
Спасибо за ваш ответ, но, похоже, я не буду использовать эту библиотеку, потому что репозиторий maven необходимо добавить на удаленный сервер, для которого у меня нет разрешения, к сожалению: -/ Может быть, у вас есть совет о том, как выполнить построение графика с помощью другая библиотека? - person borgmater; 13.10.2016