The R Project SVN R

Rev

Rev 26479 | Rev 27757 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 26479 Rev 27600
Line 578... Line 578...
578
	double pin1, pin2, scale, xdelta, ydelta, xscale, yscale, xadd, yadd;
578
	double pin1, pin2, scale, xdelta, ydelta, xscale, yscale, xadd, yadd;
579
	pin1 = GConvertXUnits(1.0, NPC, INCHES, dd);
579
	pin1 = GConvertXUnits(1.0, NPC, INCHES, dd);
580
	pin2 = GConvertYUnits(1.0, NPC, INCHES, dd);
580
	pin2 = GConvertYUnits(1.0, NPC, INCHES, dd);
581
	xdelta = fabs(xmax - xmin) / asp;
581
	xdelta = fabs(xmax - xmin) / asp;
582
	ydelta = fabs(ymax - ymin);
582
	ydelta = fabs(ymax - ymin);
-
 
583
	if(xdelta == 0.0 && ydelta == 0.0) {
-
 
584
	    /* We really do mean zero: small non-zero values work
-
 
585
	       Mimic the behaviour of GScale for the x axis. */
-
 
586
	    xadd = yadd = ((xmin == 0.0) ? 1 : 0.4) * asp;
-
 
587
	    xadd *= asp;
-
 
588
	} else {
583
	xscale = pin1 / xdelta;
589
	    xscale = pin1 / xdelta;
584
	yscale = pin2 / ydelta;
590
	    yscale = pin2 / ydelta;
585
	scale = (xscale < yscale) ? xscale : yscale;
591
	    scale = (xscale < yscale) ? xscale : yscale;
586
	xadd = .5 * (pin1 / scale - xdelta) * asp;
592
	    xadd = .5 * (pin1 / scale - xdelta) * asp;
587
	yadd = .5 * (pin2 / scale - ydelta);
593
	    yadd = .5 * (pin2 / scale - ydelta);
-
 
594
	}
588
	GScale(xmin - xadd, xmax + xadd, 1, dd);
595
	GScale(xmin - xadd, xmax + xadd, 1, dd);
589
	GScale(ymin - yadd, ymax + yadd, 2, dd);
596
	GScale(ymin - yadd, ymax + yadd, 2, dd);
590
    }
597
    }
591
    else {
598
    else {
592
	GScale(xmin, xmax, 1, dd);
599
	GScale(xmin, xmax, 1, dd);