DGrid bug cleared (merging mk branch revs. 315-317).
This commit is contained in:
		@@ -19,6 +19,8 @@ package wsi.ra.chart2d;
 | 
			
		||||
import java.awt.Color ;
 | 
			
		||||
import java.awt.Graphics ;
 | 
			
		||||
 | 
			
		||||
import eva2.tools.Mathematics;
 | 
			
		||||
 | 
			
		||||
/*==========================================================================*
 | 
			
		||||
 * CLASS DECLARATION
 | 
			
		||||
 *==========================================================================*/
 | 
			
		||||
@@ -94,12 +96,14 @@ public class DGrid extends DComponent
 | 
			
		||||
    DPoint p1, p2;
 | 
			
		||||
    DLine l;
 | 
			
		||||
 | 
			
		||||
    minX = (int)( rectangle.x / hor_dist );
 | 
			
		||||
    if( minX * hor_dist <= rectangle.x ) minX++;
 | 
			
		||||
    minX *= hor_dist;
 | 
			
		||||
    minY = ( rectangle.y / ver_dist );
 | 
			
		||||
    if( minY * ver_dist <= rectangle.y ) minY++;
 | 
			
		||||
    minY *= ver_dist;
 | 
			
		||||
    minX=Mathematics.firstMultipleAbove(rectangle.x, hor_dist);
 | 
			
		||||
    minY=Mathematics.firstMultipleAbove(rectangle.y, ver_dist);
 | 
			
		||||
//    minX = (int)( rectangle.x / hor_dist );
 | 
			
		||||
//    if( minX * hor_dist <= rectangle.x ) minX++;
 | 
			
		||||
//    minX *= hor_dist;
 | 
			
		||||
//    minY = (int)( rectangle.y / ver_dist );
 | 
			
		||||
//    if( minY * ver_dist <= rectangle.y ) minY++;
 | 
			
		||||
//    minY *= ver_dist;
 | 
			
		||||
 | 
			
		||||
    p1 = new DPoint( 0, rectangle.y );
 | 
			
		||||
    p2 = new DPoint( 0, rectangle.y + rectangle.height );
 | 
			
		||||
@@ -127,16 +131,6 @@ public class DGrid extends DComponent
 | 
			
		||||
  public String toString(){
 | 
			
		||||
    return "chart2d.DGrid[ hor: "+hor_dist+", ver: "+ver_dist+" ]";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
//  public void updateDistByRect(DRectangle rect) {
 | 
			
		||||
//	  System.out.println(rect);
 | 
			
		||||
//	  if (!rect.isEmpty() && (hor_dist>0 && ver_dist>0)) { 
 | 
			
		||||
//		  double horRatio = Math.abs(rectangle.x)/hor_dist;
 | 
			
		||||
//		  double verRatio =  Math.abs(rectangle.y)/ver_dist;
 | 
			
		||||
////		  rectangle = visRect;
 | 
			
		||||
//		  setDistances(rect.x*horRatio, rect.y*verRatio);
 | 
			
		||||
//	  }
 | 
			
		||||
//  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,9 @@ package wsi.ra.chart2d;
 | 
			
		||||
import java.awt.* ;
 | 
			
		||||
import javax.swing.BorderFactory;
 | 
			
		||||
import javax.swing.border.* ;
 | 
			
		||||
 | 
			
		||||
import eva2.tools.Mathematics;
 | 
			
		||||
 | 
			
		||||
import java.awt.geom.AffineTransform ;
 | 
			
		||||
import java.text.NumberFormat;
 | 
			
		||||
import java.text.DecimalFormat;
 | 
			
		||||
@@ -291,16 +294,19 @@ public class ScaledBorder implements Border
 | 
			
		||||
 | 
			
		||||
	  FontMetrics fm = g.getFontMetrics();
 | 
			
		||||
	  int fontAsc = fm.getAscent(), v2m = fm.stringWidth("0") / y_values2marker;
 | 
			
		||||
	  int n = (int)( src_rect.y / src_dY );
 | 
			
		||||
//	  if( n * src_dY < src_rect.y || ( src_rect.x == 0 && src_rect.y == 0 ) ) n++;
 | 
			
		||||
	  if( n * src_dY < src_rect.y || ( src_rect.x == 0 && src_rect.y == 0 ) ) {
 | 
			
		||||
		  if (n+1 > n) n++;
 | 
			
		||||
		  else System.err.println("Overflow error A in ScaledBorder!");
 | 
			
		||||
	  }
 | 
			
		||||
	  
 | 
			
		||||
//	  double startVal,dn = (src_rect.y / src_dY );
 | 
			
		||||
//	  startVal = Math.round(dn-0.5)*src_dY;
 | 
			
		||||
//
 | 
			
		||||
//	  if( startVal < src_rect.y || ( src_rect.x == 0 && src_rect.y == 0 ) ) {
 | 
			
		||||
//		  startVal+=src_dY; 
 | 
			
		||||
//	  }
 | 
			
		||||
	  
 | 
			
		||||
	  double startVal = Mathematics.firstMultipleAbove(src_rect.y, src_dY);
 | 
			
		||||
	  
 | 
			
		||||
	  double v, scaledV, minx = src_rect.x;
 | 
			
		||||
	  if( x_scale != null ) minx = x_scale.getImageOf( minx );
 | 
			
		||||
	  v = n * src_dY;
 | 
			
		||||
	  v = startVal;
 | 
			
		||||
	  while (v <= src_rect.y + src_rect.height){
 | 
			
		||||
		  if( y_scale != null ) scaledV = y_scale.getImageOf( v );
 | 
			
		||||
		  else scaledV=v;
 | 
			
		||||
@@ -321,7 +327,7 @@ public class ScaledBorder implements Border
 | 
			
		||||
		  v += src_dY;
 | 
			
		||||
	  }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  public double getSrcdY( FontMetrics fm, Dimension cd ){
 | 
			
		||||
	  return getSrcdY(fm.getHeight(), cd.height);
 | 
			
		||||
  }
 | 
			
		||||
@@ -333,6 +339,7 @@ public class ScaledBorder implements Border
 | 
			
		||||
	    double minsrc_dY = 2 * src_rect.height / (double)max; // die 2 einfach mal so eingesetzt   <--------------------------
 | 
			
		||||
	    src_dY = aBitBigger( minsrc_dY );
 | 
			
		||||
	    if( src_dY < minimal_increment ) src_dY = minimal_increment;
 | 
			
		||||
	    if( under_construction ) System.out.println("Setting src_dY to " + src_dY + " for " + src_rect);
 | 
			
		||||
	    return src_dY;
 | 
			
		||||
	  }
 | 
			
		||||
  
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user