package javaeva.gui; /* * Title: JavaEvA * Description: * Copyright: Copyright (c) 2003 * Company: University of Tuebingen, Computer Architecture * @author Holger Ulmer, Felix Streichert, Hannes Planatscher * @version: $Revision: 306 $ * $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $ * $Author: mkron $ */ /*==========================================================================* * IMPORTS *==========================================================================*/ import wsi.ra.chart2d.*; import java.awt.*; import javaeva.server.go.problems.Interface2DBorderProblem; import wsi.ra.diagram.ColorBarCalculator; /*==========================================================================* * CLASS DECLARATION *==========================================================================*/ /** * */ public class TopoPlot extends Plot { public int gridx = 50; public int gridy = 50; int colorScale = ColorBarCalculator.BLUE_TO_RED; /** * */ public TopoPlot(String PlotName,String xname,String yname) { super(PlotName, xname, yname); //if (TRACE) System.out.println("Constructor TopoPlot "+PlotName); } public TopoPlot(String PlotName,String xname,String yname,double[] a, double[] b) { super(PlotName, xname, yname, a, b); //if (TRACE) System.out.println("Constructor TopoPlot "+PlotName); } /** * Defines parameters used for drawing the topology. * @param gridX the x-resolution of the topology, higher value means higher resolution * @param gridY the y-resolution of the topology, higher value means higher resolution * @param color_scale the topologies color coding. Values (0-3) are valid. @See ColorBarCalculator. */ public void setParams(int gridX, int gridY, int color_scale) { if (gridX>m_Frame.getWidth()) gridX = m_Frame.getWidth(); if (gridY>m_Frame.getHeight()) gridY = m_Frame.getHeight(); gridx = gridX; gridy = gridY; colorScale = color_scale; } /** * Defines the topology (by setting a specific problem) and draws the topology */ public void setTopology(Interface2DBorderProblem problem) { double sizeX = java.lang.Math.abs( problem.get2DBorder()[0][1]-problem.get2DBorder()[0][0]); double sizeY = java.lang.Math.abs( problem.get2DBorder()[1][1]-problem.get2DBorder()[1][0]); double rx, ry; double rw = sizeX/gridx; double rh = sizeY/gridy; double[] pos = new double[2]; //double fitRange = java.lang.Math.abs(problem.getMinFitness()-problem.getMaxFitness() ); double fitRange = 0, max = -Double.MAX_VALUE, min = Double.MAX_VALUE, tmp; for (int x=0; x max) max = tmp; } // for y } // for x fitRange = java.lang.Math.abs(max - min); ColorBarCalculator colorBar = new ColorBarCalculator(colorScale); m_Frame.setVisible(false); for (int x=0; x