Davide,

Thanks for the patch. As you say, the default behaviour is unchanged so
I can see no reason not to apply your patch. I have committed it to svn.

Andrew

On Tue, Dec 02, 2008 at 01:45:03PM +0100, Davide Cesari wrote:
> Dear plplot maintainers,
>       I need to make big sized postscript plots with many details, and it is 
> not satisfactory just to zoom a small plot because many features (line 
> width, font sizes, etc.) have a default absolute size and look bad when 
> zoomed. On the other side I noticed that the ps driver has an hardcoded 
> physical page size (XSIZE, YSIZE in ps.h) which cannot be changed by the 
> user, as far as I know.
>       If this is true, then I propose a patch which could give the chance to 
> change the postscript page size with plspag through a combination of the 
> (xp,xleng) and (yp,yleng) parameters, currently unused for ps, so that 
> the page size in postscript points would be xleng*xp/72,yleng*yp/72. The 
> patch leaves the default behavior unchanged  and does not change the 
> API, so I think its implementation would not break any existing 
> application and would have also the positive side effect to set xleng 
> and yleng for postscript (I remember the "Undistorted circles" thread 
> where these values were used to get the physical aspect ratio, see 
> http://www.mail-archive.com/[EMAIL PROTECTED]/msg00424.html
> ).
>       If you think there is something wrong, or the same result could be 
> achieved in a different way, please do it as you feel correct, but I 
> would really be interested to see such a feature in a future version of 
> plplot.
>       The patch applies to ps and psttf drivers, maybe other drivers could 
> benefit from such an approach?
>       I inline the patch since it is quite simple:
> 
> --- plplot-5.9.0/include/ps.h~  2007-11-18 21:04:07.000000000 +0100
> +++ plplot-5.9.0/include/ps.h   2008-12-02 12:29:02.000000000 +0100
> @@ -10,8 +10,8 @@
> 
>   #define LINELENGTH      78
>   #define COPIES          1
> -#define XSIZE           540            /* 7.5 x 10 [inches]    */
> -#define YSIZE           720            /* (72 points = 1 inch) */
> +#define XSIZE           (int) (pls->xlength*(pls->xdpi/72.))
> +#define YSIZE           (int) (pls->ylength*(pls->ydpi/72.))
>   #define ENLARGE         5
>   #define XPSSIZE         ENLARGE*XSIZE
>   #define YPSSIZE         ENLARGE*YSIZE
> --- plplot-5.9.0/drivers/ps.c~  2007-11-18 21:04:11.000000000 +0100
> +++ plplot-5.9.0/drivers/ps.c   2008-12-02 13:21:14.000000000 +0100
> @@ -156,6 +156,14 @@
>   {
>       PSDev *dev;
> 
> +/* Set default values */
> +    if (pls->xlength <= 0 || pls->ylength <=0) {
> +      pls->xlength = 540;
> +      pls->ylength = 720;
> +    }
> +    if (pls->xdpi <= 0) pls->xdpi = 72.;
> +    if (pls->ydpi <= 0) pls->ydpi = 72.;
> +
>       PLFLT pxlx = YPSSIZE/LPAGE_X;
>       PLFLT pxly = XPSSIZE/LPAGE_Y;
> 
> --- plplot-5.9.0/drivers/psttf.cc~      2007-11-18 21:04:10.000000000 +0100
> +++ plplot-5.9.0/drivers/psttf.cc       2008-12-02 13:20:59.000000000 +0100
> @@ -195,6 +195,14 @@
>       PSDev *dev;
>       PostscriptDocument *doc;
> 
> +/* Set default values */
> +    if (pls->xlength <= 0 || pls->ylength <=0) {
> +      pls->xlength = 540;
> +      pls->ylength = 720;
> +    }
> +    if (pls->xdpi <= 0) pls->xdpi = 72.;
> +    if (pls->ydpi <= 0) pls->ydpi = 72.;
> +
>       PLFLT pxlx = YPSSIZE/LPAGE_X;
>       PLFLT pxly = XPSSIZE/LPAGE_Y;
> 
> 
> thank you and best regards, Davide
> 
> 
> -- 
> ============================= Davide Cesari ============================
> Servizio IdroMeteorologico ARPA Emilia Romagna
> Area Modellistica Numerica e Radarmeteorologia
>   Phone/Fax: +39 051525926/+39 0516497501
>   E-mail:    [EMAIL PROTECTED]
>   Home page: http://www.webalice.it/o.drofa/davide/
>   Address:   ARPA-SIM, Viale Silvani 6, 40122 Bologna, Italy
> ========================================================================
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Plplot-devel mailing list
> Plplot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/plplot-devel
> 

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to