package displayNoise;
import NoiseGen.NoiseContainer.NoiseContainer;
import NoiseGen.Wrapper.RangeWrapper;
import java.awt.*;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import javax.swing.*;
public class NoiseDisplay1D extends SimpleNoiseDisplay {
ArrayList<Point2D.Double> points = new ArrayList<>();
RangeWrapper range;
NoisePanel panel = new NoisePanel(points);
public NoiseDisplay1D(NoiseContainer values) {
super(values, "1D Noise Display");
range = new RangeWrapper(getNoise(), 0, 500);
setDisplaySize(800, 500);
for (int i = 0; i < range.getLength(); i++) { // Loop through values and connect the dots.
double xv = i * (800 / range.getLength());
double yv = range.getValue(i, 0, 0);
Point2D.Double value = new Point2D.Double(xv, yv);
points.add(value);
}
add(panel);
}
private class NoisePanel extends JPanel {
ArrayList<Point2D.Double> points;
public NoisePanel(ArrayList<Point2D.Double> points) {
this.points = points;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLACK);
for (int i = 0; i < points.size() - 1; i++) { // Loop through values and connect the dots.
Point2D.Double point1 = points.get(i);
Point2D.Double point2 = points.get(i + 1);
Line2D line = new Line2D.Double(point1, point2);
g2.draw(line);
}
}
public Dimension getPreferredSize(){
return new Dimension(800, 500);
}
}
}