[Rd] hang-up with log="x" and segments (PR#1030)
Peter Dalgaard BSA
p.dalgaard@biostat.ku.dk
23 Jul 2001 13:27:23 +0200
sc@paracelsus.fdm.uni-freiburg.de writes:
> I experienced the following problem with R 1.3.0 which is probably a
> bug. The program hangs-up if 1.) a coordinate of segments is outside the
> ploting region and 2.) the option log="x" is used.
>
> ##
> ## works fine
> ##
> plot(1,1, xlim=c(0.5, 2), ylim=c(0.5, 2))
> segments(0.5 , 1.2, 1, 0.6)
> segments(0.25, 1.2, 1, 0.6)
> segments(1 , 1.2, 1, 0.6)
>
> ##
> ## hang-up
> ##
> plot(1,1, xlim=c(0.5, 2), ylim=c(0.5, 2), log="x")
> segments(0.5 , 1.2, 1, 0.6)
> segments(0.25, 1.2, 1, 0.6)
> segments(1 , 1.2, 1, 0.6)
Confirmed on Linux, but seems to have disappeared in the patched
version. Not sure what caused the fix, though... My guess would be
that it is this change in CSclipline:
@@ -2464,6 +2466,7 @@
yb = cr->yb;
yt = cr->yt;
if (dd->gp.xlog || dd->gp.ylog) {
+ double temp;
GConvert(x1, y1, coords, NDC, dd);
GConvert(x2, y2, coords, NDC, dd);
@@ -2475,6 +2478,17 @@
cr2.yb = yb;
cr2.yt = yt;
+ if (cr2.xr < cr2.xl) {
+ temp = cr2.xl;
+ cr2.xl = cr2.xr;
+ cr2.xr = temp;
+ }
+ if (cr2.yt < cr2.yb) {
+ temp = cr2.yb;
+ cr2.yb = cr2.yt;
+ cr2.yt = temp;
+ }
+
x = xl; /* keep -Wall happy */
y = yb; /* keep -Wall happy */
while( c1 || c2 ) {
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._