Package displayNoise

Source Code of displayNoise.NoiseDisplay2D$NoisePanel

package displayNoise;

import java.awt.*;
import java.awt.geom.Rectangle2D;
import javax.swing.*;

import NoiseGen.NoiseContainer.NoiseContainer;
import NoiseGen.Wrapper.RangeWrapper;

public class NoiseDisplay2D extends SimpleNoiseDisplay {

    RangeWrapper range;

    public NoiseDisplay2D(NoiseContainer values) {
        super(values, "2D Noise Display");
        range = new RangeWrapper(getNoise(), 0, 255);
        setDisplaySize(range.getLength(), range.getHeight());
        add(new NoisePanel());
    }

    private class NoisePanel extends JPanel {

        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g;

            double pixelLength = ((double) range.getLength() / getNoise().getLength());
            double pixelHeight = ((double) range.getHeight() / getNoise().getHeight());

            for (int x = 0; x < getNoise().getLength(); x++) {      // Loop through values and connect the dots.
                for (int y = 0; y < getNoise().getHeight(); y++) {
                    int noiseValue = range.getValue(x, y, 0).intValue();
                    double pixelX = x * pixelLength;
                    double pixelY = y * pixelHeight;
                    Rectangle2D.Double rectangle = new Rectangle2D.Double(pixelX, pixelY, pixelLength, pixelHeight);
                    g2.setColor(new Color(noiseValue, noiseValue, noiseValue));
                    g2.draw(rectangle);
                    g2.fill(rectangle);
                }
            }

        }

        public Dimension getPreferredSize() {
            return new Dimension(range.getLength(), range.getHeight());
        }
    }
}

TOP

Related Classes of displayNoise.NoiseDisplay2D$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.