All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.math.plot.plotObjects.RasterImage Maven / Gradle / Ivy

There is a newer version: 1.0.1
Show newest version
/*
 * Created on 5 sept. 2005 by richet
 */
package org.math.plot.plotObjects;

import java.awt.*;
import java.io.*;

import javax.swing.*;

import org.math.plot.*;
import org.math.plot.render.*;

public class RasterImage implements Plotable{

	File source;
	Image img;
	
	double[] xyzSW, xyzSE,xyzNW;
	
	boolean visible = true;
	float alpha;
	
	public RasterImage(File _source, float _alpha,double[] _xyzSW, double[] _xyzSE,double[] _xyzNW) {
		source = _source;
		img =  Toolkit.getDefaultToolkit().getImage(source.getPath());
		xyzSW = _xyzSW;
		xyzSE = _xyzSE;
		xyzNW=_xyzNW;
		alpha = _alpha;
	}
	
	public void plot(AbstractDrawer draw) {
		if (!visible) return;
		
		draw.drawImage(img,alpha, xyzSW, xyzSE,xyzNW);
	}

	public void setVisible(boolean v) {
		visible = v;
	}

	public boolean getVisible() {
		return visible;
	}
	
	public void setColor(Color c) {
		throw new IllegalArgumentException("method not available for this Object: PlotImage");
	}

	public Color getColor() {
		return null;
	}

	public static void main(String[] args) {
		Plot2DPanel p2 = new Plot2DPanel();
		for (int i = 0; i < 1; i++) {
			double[][] XYZ = new double[10][2];
			for (int j = 0; j < XYZ.length; j++) {
				XYZ[j][0] =/*1 + */Math.random();
				XYZ[j][1] = /*100 * */Math.random();
			}
			p2.addScatterPlot("toto" + i, XYZ);
		}
		
		p2.addPlotable(new RasterImage(new File("test.gif"), 0.8f,new double[] {0.2,0.5},new double[] {1.2,0.8},new double[] {0.2,1.1}));

		p2.setLegendOrientation(PlotPanel.SOUTH);
		new FrameView(p2).setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		
		Plot3DPanel p = new Plot3DPanel();
		for (int i = 0; i < 1; i++) {
			double[][] XYZ = new double[10][3];
			for (int j = 0; j < XYZ.length; j++) {
				XYZ[j][0] = /*1 +*/ Math.random();
				XYZ[j][1] = /*100 **/ Math.random();
				XYZ[j][2] = /*0.0001 **/ Math.random();
			}
			p.addScatterPlot("toto" + i, XYZ);
		}

		p.addPlotable(new RasterImage(new File("test.gif"), 0.5f, new double[] {0.0,0.0,0.0},new double[] {1,0,0.0},new double[] {0.0,0,1}));
		p.addPlotable(new RasterImage(new File("test.gif"), 0.5f, new double[] {0.0,0.0,0.0},new double[] {0,1,0.0},new double[] {0,0.0,1}));
		p.addPlotable(new RasterImage(new File("test.gif"),0.5f,  new double[] {0.0,0.0,0.0},new double[] {1,0,0},new double[] {0,1,0}));
		// TODO this following case is not totally supported...
		//p.addPlotable(new PlotImage(new File("test.jpg"),0.5f,  new double[] {1,0,0},new double[] {1,1,0},new double[] {0,0,1}));

		
		p.setLegendOrientation(PlotPanel.SOUTH);
		p.setPreferredSize(new Dimension(600,600));
		new FrameView(p).setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy