package de.tobias.playpad.view; import javafx.scene.paint.Color; import javafx.scene.shape.LineTo; import javafx.scene.shape.MoveTo; import javafx.scene.shape.Path; public class WaveformView extends Path { public WaveformView(float[] data) { getElements().add(new MoveTo(0, 0)); double width2 = data.length / 1200.0; int width = data.length / 10000; System.out.println(data.length); System.out.println(width); int i = 0; for (i = 0; i < data.length; i += width) { if (i < data.length) { LineTo lineTo = new LineTo(i / width2, data[i] * 50.0); MoveTo moveTo = new MoveTo(i / width2, data[i] * 50.0); getElements().addAll(lineTo, moveTo); } } for (; i >= 0; i -= width) { if (i >= 0 && i < data.length) { LineTo lineTo = new LineTo(i / width2, -data[i] * 50.0); MoveTo moveTo = new MoveTo(i / width2, -data[i] * 50.0); getElements().addAll(lineTo, moveTo); } } getElements().add(new LineTo(0, 0)); getElements().add(new MoveTo(0, 0)); setFill(Color.BLACK); } }