diff options
Diffstat (limited to 'src/drv')
| -rw-r--r-- | src/drv/cddxf.c | 4 | ||||
| -rw-r--r-- | src/drv/cdpdf.c | 2 | ||||
| -rw-r--r-- | src/drv/cdps.c | 2 | 
3 files changed, 8 insertions, 0 deletions
diff --git a/src/drv/cddxf.c b/src/drv/cddxf.c index f8c9a28..c5d0df5 100644 --- a/src/drv/cddxf.c +++ b/src/drv/cddxf.c @@ -683,6 +683,7 @@ static void cdarc (cdCtxCanvas *ctxcanvas, int xc, int yc, int w, int h, double      bulge = calc_bulge (a, b, t, t+seg_angle); /* and t+seg_angle and write */      writevertex (ctxcanvas, xc, yc, a, b, t, bulge);      /* vertex at t               */    } +    writevertex (ctxcanvas, xc, yc, a, b, t2, 0);     /* bulge of last vertex is useless */    fprintf ( ctxcanvas->file, "0\n" ); @@ -731,12 +732,15 @@ static void cdsector (cdCtxCanvas *ctxcanvas, int xc, int yc, int w, int h, doub    if ((a2-a1) != 360)      writevertex (ctxcanvas, xc, yc, 0, 0, 0, 0);    /* center */ +    for (i=0, t=t1; i<nseg; i++, t+=seg_angle)    {                                            /* calculate bulge between t */      bulge = calc_bulge (a, b, t, t+seg_angle); /* and t+seg_angle and write */      writevertex (ctxcanvas, xc, yc, a, b, t, bulge);      /* vertex at t               */    } +    writevertex (ctxcanvas, xc, yc, a, b, t2, 0);     /* bulge of last vertex is useless */ +    if ((a2-a1) != 360)      writevertex (ctxcanvas, xc, yc, 0, 0, 0, 0);    /* center */ diff --git a/src/drv/cdpdf.c b/src/drv/cdpdf.c index 4614568..2c48d50 100644 --- a/src/drv/cdpdf.c +++ b/src/drv/cdpdf.c @@ -328,6 +328,8 @@ static void cdfarc(cdCtxCanvas *ctxcanvas, double xc, double yc, double w, doubl  {    sUpdateFill(ctxcanvas, 0); +  /* angles in degrees counterclockwise, same as CD */ +    if (w==h)    {      PDF_arc(ctxcanvas->pdf, xc, yc, 0.5*w, a1, a2); diff --git a/src/drv/cdps.c b/src/drv/cdps.c index ce45397..b651994 100644 --- a/src/drv/cdps.c +++ b/src/drv/cdps.c @@ -624,6 +624,8 @@ static void cdarc(cdCtxCanvas *ctxcanvas, int xc, int yc, int w, int h, double a  {    sUpdateFill(ctxcanvas, 0); +  /* angles in degrees counterclockwise, same as CD */ +    if (w==h) /* Circulo: PS implementa direto */    {      fprintf(ctxcanvas->file, "N %d %d %g %g %g arc S\n", xc, yc, 0.5*w, a1, a2);  | 
