On Sun, 27 Apr 2008, Tomas Mikoviny wrote:

OK I've checked the RQuartz_Polyline and RQuartz_Polygon. Its quite
straight forward. However I don't see anything causing problem we
discuss.

Please read what I actually asked you to do -- yes, I do know the code, but I asked you to change it following gdraw.c and test the change.

tomas


# Revision 45515: /branches/R-2-7-branch/src/library/grDevices/src
-----------

static void RQuartz_Polyline(int n, double *x, double *y, CTXDESC)
{
    if (n < 2) return;
    int i;
    DRAWSPEC;
    if (!ctx) NOCTX;
    SET(RQUARTZ_STROKE | RQUARTZ_LINE);
    CGContextBeginPath(ctx);
    CGContextMoveToPoint(ctx, x[0], y[0]);
    for(i = 1 ; i < n; i++)
CGContextAddLineToPoint(ctx, x[i], y[i]);
    CGContextStrokePath(ctx);
}

static void RQuartz_Polygon(int n, double *x, double *y, CTXDESC)
{
    if (n < 2) return;
    int i;
    DRAWSPEC;
    if (!ctx) NOCTX;
    SET(RQUARTZ_FILL | RQUARTZ_STROKE | RQUARTZ_LINE);
    CGContextBeginPath(ctx);
    CGContextMoveToPoint(ctx, x[0], y[0]);
    for(i = 1; i < n; i++)
CGContextAddLineToPoint(ctx, x[i], y[i]);
    CGContextClosePath(ctx);
    CGContextDrawPath(ctx, kCGPathFillStroke);
}
------------



On 27 Apr 2008, at 15:08, Prof Brian Ripley wrote:

      Some versions of Windows GDI have a superficially identical
      problem -- stroking a path is quadratic in the number of
      segments.  The solution we used (in gdrawpolyline, in
      src/extra/graphapp/gdraw.c) was to split the drawing into
      pieces of length 1000, and that could be used here.  It would
      be a simple modification to RQuartz_Polyline and
      RQuartz_Polygon, so please try it and let us know how you get
      on.

      It would also have been helpful to (C-level) profile the call
      and find out where the time is being spent -- I expect it not
      to be in R at all but in Quartz.

      On Sun, 27 Apr 2008, Tomas Mikoviny wrote:

            I found where is the problem, however have no
            solution for it right now.

            To demonstrate (I have chosen 6000 to match my
            datasets size):


            x=seq(1:6000)

            y=rnorm(6000)

            plot(x,y)


            Absolutely no problem until now, everything is
            responsive, no lags.


            Problem appears when I insert parameter 'type':


            slowdown and unacceptable lag for "l", "o", "s"

            plot(x,y, type="l")

            plot(x,y, type="o")

            ...


            however no problem at all  (instantly plotted)
            for "p", "b", "c", "h"

            plot(x,y, type="p")

            plot(x,y, type="b")

            ...


            Does anyone know possible reason for this
            behaviour. Once again, I use

            clear install of R version 2.7.0 (2008-04-22).
            When I try the same

            stuff with latest 2.6.2 version everything runs
            smoothly without any

            problems.


            tomas



            On 27 Apr 2008, at 10:49, Charles Hebert wrote:


                  Hi all,


                  I've the same problem + the resizing
                  of the window is really really

                  slow... for all datasets. I'm running
                  leopard 10.5.2 and the latest

                  macOS R dmg.


                  For all datasets. But when i use
                  quartz() then plot, it seems ok

                  (slow again but... usable). So right
                  now, i use quartz(file,

                  type="pdf")...


                  Best regards,


                  Charles


            _______________________________________________

            R-SIG-Mac mailing list

            [email protected]

            https://stat.ethz.ch/mailman/listinfo/r-sig-mac



      --
      Brian D. Ripley, [EMAIL PROTECTED]
      Professor of Applied Statistics,
       http://www.stats.ox.ac.uk/~ripley/
      University of Oxford,             Tel:  +44 1865 272861
      (self)
      1 South Parks Road,                     +44 1865 272866 (PA)
      Oxford OX1 3TG, UK                Fax:  +44 1865 272595





--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595
_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to