Package displayNoise

Source Code of displayNoise.NoiseDisplay1D$NoisePanel

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);
        }
    }

}
TOP

Related Classes of displayNoise.NoiseDisplay1D$NoisePanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.