Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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);
}
}