Oh, I finally understand. Yes, I agree that this is a good change.
Sorry for the confusion. Robby On Fri, Apr 4, 2014 at 10:04 AM, Neil Toronto <neil.toro...@gmail.com>wrote: > Yes, the relative size of the font will grow, as well as minor things, > such as that the lines will thicken a bit. IOW, without the fix, if you > output the same plot to a PDF, SVG, and PNG, the PDF will have a smaller > font and thinner lines than the SVG and PNG. > > It can be hard to tell without converting them to the same format for > comparison, which is why I didn't spot this for so long. I just thought > papers looked better when plots had slightly larger fonts. > > I verified that the fix works by using the Gimp to convert a PDF and an > SVG to two 500x500 images, and pasted one over the other. > > Neil ⊥ > > > On 04/04/2014 06:42 AM, Robby Findler wrote: > >> I'm not completely clear on the precise impact of old papers: will the >> plot itself stay the same size, but the relative size of the font (to >> the other plot elements) inside the plot change only? Or something else? >> >> Robby >> >> >> On Fri, Apr 4, 2014 at 12:08 AM, Neil Toronto <neil.toro...@gmail.com >> <mailto:neil.toro...@gmail.com>> wrote: >> >> I did it because I was tired of putting (plot-font-size 15) at the >> top of every program that produced a plot for a paper. Also, I think >> it was bad for the "preview" in DrRacket to look different from the >> PDFs. (Some of my plots in DrRacket had legends that badly >> overlapped the data in order to look right in PDF format.) It will >> cause existing PDF plots to have larger text, which could look wrong >> in plots that use the font size workaround. But I think it's the >> right move in the long run. >> >> Here's one thing I could do: document `plot-ps-setup' and export an >> `old-plot-ps-setup' that's the default instance of `ps-setup%', so >> programs that produce plots for papers could start this way: >> >> #lang racket >> (require plot) >> (plot-ps-setup old-plot-ps-setup) >> >> Maybe that parameter is useful after all. >> >> Neil ⊥ >> >> >> On 04/03/2014 10:37 AM, Robby Findler wrote: >> >> Is efc46de backwards compatible? (I worry about breaking people's >> papers, specifically.) >> >> Robby >> >> >> On Thu, Apr 3, 2014 at 12:20 AM, <ntoro...@racket-lang.org >> <mailto:ntoro...@racket-lang.org> >> <mailto:ntoronto@racket-lang.__org >> >> <mailto:ntoro...@racket-lang.org>>> wrote: >> >> ntoronto has updated `master' from 87cfce97f9 to efc46ded6d. >> http://git.racket-lang.org/__plt/87cfce97f9..efc46ded6d >> >> <http://git.racket-lang.org/plt/87cfce97f9..efc46ded6d> >> >> =====[ 2 Commits >> ]=============================__========================= >> Directory summary: >> 8.2% pkgs/plot-pkgs/plot-lib/plot/__private/common/ >> 35.5% pkgs/plot-pkgs/plot-lib/plot/__private/no-gui/ >> 12.4% pkgs/plot-pkgs/plot-lib/plot/__private/plot3d/ >> 41.2% pkgs/plot-pkgs/plot-test/plot/__tests/ >> >> >> ~~~~~~~~~~ >> >> c1550b6 Neil Toronto <neil.toro...@gmail.com >> <mailto:neil.toro...@gmail.com> >> <mailto:neil.toro...@gmail.com >> <mailto:neil.toro...@gmail.com>__>> 2014-04-02 22:06 >> >> >> : >> | Remove unnecessary use of `remove-duplicates' >> : >> M .../plot-lib/plot/private/__plot3d/bsp.rkt | >> 11 +-- >> M .../plot-test/plot/tests/__plot3d-bsp-tests.rkt | >> 91 >> >> ++++++++------------ >> >> ~~~~~~~~~~ >> >> efc46de Neil Toronto <neil.toro...@gmail.com >> <mailto:neil.toro...@gmail.com> >> <mailto:neil.toro...@gmail.com >> <mailto:neil.toro...@gmail.com>__>> 2014-04-02 23:16 >> >> >> : >> | Changed PDF/PS backend to use 1.0 x 1.0 scaling >> | >> | This makes plotting to a file the same (well, with slight >> differences) >> | regardless of file format. Scaling and other PS options >> are controlled >> | by a `plot-ps-setup' parameter. Not sure how useful that >> is, yet, so >> | it's undocumented. >> : >> M >> pkgs/plot-pkgs/plot-lib/plot/__private/no-gui/plot2d.rkt | 14 >> ++++++++------ >> M >> pkgs/plot-pkgs/plot-lib/plot/__private/no-gui/plot3d.rkt | 14 >> ++++++++------ >> M .../plot-lib/plot/private/__common/parameters.rkt >> | 9 >> ++++++++- >> M .../plot-lib/plot/private/__contracted/parameters.rkt >> >> | 2 +- >> >> =====[ Overall Diff >> ]=============================__====================== >> >> pkgs/plot-pkgs/plot-lib/plot/__private/common/parameters.rkt >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --- >> OLD/pkgs/plot-pkgs/plot-lib/__plot/private/common/__ >> parameters.rkt >> +++ >> NEW/pkgs/plot-pkgs/plot-lib/__plot/private/common/__ >> parameters.rkt >> >> @@ -3,6 +3,7 @@ >> ;; Parameters that control the look and behavior of plots. >> >> (require racket/contract unstable/parameter-group >> unstable/latent-contract/__defthing >> >> + racket/class racket/draw >> "contract.rkt" >> "draw.rkt" >> "axis-transform.rkt" >> @@ -107,11 +108,17 @@ >> >> ;; Output >> >> +(define default-plot-ps-setup (new ps-setup%)) >> +(send default-plot-ps-setup set-margin 0 0) >> +(send default-plot-ps-setup set-scaling 1 1) >> + >> (defparam plot-new-window? boolean? #f) >> (defparam plot-jpeg-quality (integer-in 0 100) 100) >> (defparam plot-ps/pdf-interactive? boolean? #f) >> +(defparam plot-ps-setup (is-a?/c ps-setup%) >> default-plot-ps-setup) >> >> -(define-parameter-group plot-output (plot-new-window? >> plot-jpeg-quality plot-ps/pdf-interactive?)) >> +(define-parameter-group plot-output >> + (plot-new-window? plot-jpeg-quality >> plot-ps/pdf-interactive? >> plot-ps-setup)) >> >> ;; Labels >> >> >> >> pkgs/plot-pkgs/plot-lib/plot/__private/contracted/ >> parameters.__rkt >> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> ~~__~~ >> --- >> OLD/pkgs/plot-pkgs/plot-lib/__plot/private/contracted/__ >> parameters.rkt >> +++ >> NEW/pkgs/plot-pkgs/plot-lib/__plot/private/contracted/__ >> parameters.rkt >> >> @@ -28,7 +28,7 @@ >> plot3d-samples >> plot3d-angle plot3d-altitude >> plot3d-ambient-light plot3d-diffuse-light? >> plot3d-specular-light? >> - plot-new-window? plot-jpeg-quality >> plot-ps/pdf-interactive? >> + plot-new-window? plot-jpeg-quality >> plot-ps/pdf-interactive? >> plot-ps-setup >> plot-title >> plot-x-label plot-y-label plot-z-label >> plot-x-far-label plot-y-far-label plot-z-far-label >> >> pkgs/plot-pkgs/plot-lib/plot/__private/no-gui/plot2d.rkt >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~~~~~~~~~ >> --- >> OLD/pkgs/plot-pkgs/plot-lib/__plot/private/no-gui/plot2d.rkt >> +++ >> NEW/pkgs/plot-pkgs/plot-lib/__plot/private/no-gui/plot2d.rkt >> >> @@ -112,12 +112,14 @@ >> [(ps pdf svg) >> (define dc >> (case real-kind >> - [(ps) (new post-script-dc% >> - [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> - [as-eps #t] [width width] [height >> height] >> [output output])] >> - [(pdf) (new pdf-dc% >> - [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> - [width width] [height height] >> [output output])] >> + [(ps) (parameterize ([current-ps-setup >> (plot-ps-setup)]) >> + (new post-script-dc% >> + [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> + [as-eps #t] [width width] [height >> height] >> [output output]))] >> + [(pdf) (parameterize ([current-ps-setup >> (plot-ps-setup)]) >> + (new pdf-dc% >> + [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> + [width width] [height height] >> [output >> output]))] >> [(svg) (new svg-dc% >> [width width] [height height] [output >> output] [exists 'truncate/replace])])) >> (define-values (x-scale y-scale) (send dc >> get-device-scale)) >> >> pkgs/plot-pkgs/plot-lib/plot/__private/no-gui/plot3d.rkt >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~~~~~~~~~ >> --- >> OLD/pkgs/plot-pkgs/plot-lib/__plot/private/no-gui/plot3d.rkt >> +++ >> NEW/pkgs/plot-pkgs/plot-lib/__plot/private/no-gui/plot3d.rkt >> >> @@ -129,12 +129,14 @@ >> [(ps pdf svg) >> (define dc >> (case real-kind >> - [(ps) (new post-script-dc% >> - [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> - [as-eps #t] [width width] [height >> height] >> [output output])] >> - [(pdf) (new pdf-dc% >> - [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> - [width width] [height height] >> [output output])] >> + [(ps) (parameterize ([current-ps-setup >> (plot-ps-setup)]) >> + (new post-script-dc% >> + [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> + [as-eps #t] [width width] [height >> height] >> [output output]))] >> + [(pdf) (parameterize ([current-ps-setup >> (plot-ps-setup)]) >> + (new pdf-dc% >> + [interactive >> (plot-ps/pdf-interactive?)] >> [parent #f] [use-paper-bbox #f] >> + [width width] [height height] >> [output >> output]))] >> [(svg) (new svg-dc% >> [width width] [height height] [output >> output] [exists 'truncate/replace])])) >> (define-values (x-scale y-scale) (send dc >> get-device-scale)) >> >> pkgs/plot-pkgs/plot-lib/plot/__private/plot3d/bsp.rkt >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~~~~~~ >> --- OLD/pkgs/plot-pkgs/plot-lib/__ >> plot/private/plot3d/bsp.rkt >> +++ NEW/pkgs/plot-pkgs/plot-lib/__ >> plot/private/plot3d/bsp.rkt >> >> @@ -499,8 +499,7 @@ >> (cond >> [(empty? ps) #f] >> [else >> - (define vs (remove-duplicates (bsp-polys->vertices >> ps))) >> - (define axes (vertices->axes vs)) >> + (define axes (vertices->axes (bsp-polys->vertices ps))) >> (define center (list->flvector (map axis-mid axes))) >> >> ;; Planes defined by neighboring polygon vertices >> @@ -530,8 +529,7 @@ >> (cond >> [(empty? ls) #f] >> [else >> - (define vs (remove-duplicates (bsp-lines->vertices >> ls))) >> - (define axes (vertices->axes vs)) >> + (define axes (vertices->axes (bsp-lines->vertices ls))) >> (define center (list->flvector (map axis-mid axes))) >> >> ;; Planes defined by line segments and basis vectors >> (i.e. >> one basis in normal is zero) >> @@ -560,9 +558,8 @@ >> (cond >> [(and (empty? ls) (empty? ps)) #f] >> [else >> - (define vs (remove-duplicates (append (append* (map >> lines-vertices ls)) >> - (append* (map >> points-vertices ps))))) >> - (define axes (vertices->axes vs)) >> + (define axes (vertices->axes (append (append* (map >> lines-vertices ls)) >> + (append* (map >> points-vertices ps))))) >> (define center (list->flvector (map axis-mid axes))) >> >> (: try-nondisjoint-split (-> (U #f BSP-Tree))) >> >> pkgs/plot-pkgs/plot-test/plot/__tests/plot3d-bsp-tests.rkt >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~__~~~~~~~~~~~~~~~~~~~~~~~~~~ >> --- >> OLD/pkgs/plot-pkgs/plot-test/__plot/tests/plot3d-bsp-tests.__rkt >> +++ >> NEW/pkgs/plot-pkgs/plot-test/__plot/tests/plot3d-bsp-tests.__rkt >> >> @@ -1,23 +1,5 @@ >> #lang racket >> >> -#| >> -TODO >> - >> -BSP >> - - deal better with polygon + many non-polygon shapes >> - - avoid more recomputation in build-bsp3d (i.e. precompute >> bounding and central planes) >> - - make middle shapes in bsp-node a BSP-Tree >> - - speed up disjoint splitting >> - >> -insert line segments into BSP as polygonal clipping regions? >> - >> -slow parts >> - - 22.3: build-bsp-tree >> - - 15.6: contour renderer proc >> - - 12.7: clip-polygon >> - - 6.0: bin-shapes >> -|# >> - >> (require plot >> (except-in plot/utils sum flsum sample) >> math >> @@ -95,41 +77,42 @@ slow parts >> (points3d xyzs #:sym 'dot))))) >> >> (time >> - (plot3d >> - (list (contour-intervals3d >> - (λ (x y) >> - (* x (+ 0.1 y))) >> - -1 1 -1 1 >> - #:samples 41 >> - #:alphas '(0.85) >> - ;#:alpha 0.75 >> - ;#:line-width 2 >> - ;#:line-widths '(2) >> - ;#:line-styles '(transparent) >> - #:contour-widths '(2) >> - ;#:color 1 >> - ;#:label "" >> - ) >> - >> - (surface3d >> - (λ (x y) >> - (* (- (* (flnormal-pdf 0.0 0.2 (fl x) #f) >> - (flnormal-pdf 0.0 0.2 (fl y) #f)) >> - 0.7) >> - 0.4)) >> - -1 1 -1 1 >> - #:samples 40 >> - ;#:alphas '(0.75) >> - #:alpha 0.95 >> - #:color "plum" >> - #:line-color 6 >> - ;#:line-style 'transparent >> - ;#:line-width 2 >> - )) >> - #:x-min -1 #:x-max 1 >> - #:y-min -1 #:y-max 1 >> - ;#:out-file "test.pdf" >> - )) >> + (for/last ([_ (in-range 1)]) >> + (plot3d >> + (list (contour-intervals3d >> + (λ (x y) >> + (* x (+ 0.1 y))) >> + -1 1 -1 1 >> + #:samples 41 >> + #:alphas '(0.85) >> + ;#:alpha 0.75 >> + ;#:line-width 2 >> + ;#:line-widths '(2) >> + ;#:line-styles '(transparent) >> + #:contour-widths '(2) >> + ;#:color 1 >> + ;#:label "" >> + ) >> + >> + (surface3d >> + (λ (x y) >> + (* (- (* (flnormal-pdf 0.0 0.2 (fl x) #f) >> + (flnormal-pdf 0.0 0.2 (fl y) #f)) >> + 0.7) >> + 0.4)) >> + -1 1 -1 1 >> + #:samples 40 >> + ;#:alphas '(0.75) >> + #:alpha 0.95 >> + #:color "plum" >> + #:line-color 6 >> + ;#:line-style 'transparent >> + ;#:line-width 2 >> + )) >> + #:x-min -1 #:x-max 1 >> + #:y-min -1 #:y-max 1 >> + ;#:out-file "test.pdf" >> + ))) >> >> (plot3d (list (surface3d * -1 1 -1 1 #:samples 6 #:alpha >> 0.75 >> #:color 1) >> (surface3d (λ (x y) (+ 0.1 (* x y))) -1 1 -1 >> 1 >> #:samples 6 #:alpha 0.75 #:color 2) >> @@ -140,7 +123,7 @@ slow parts >> (plot3d (list >> (isosurface3d (λ (x y z) (+ (- 1 x) (- 1 y) (- z >> 1.5))) 0 >> #:alpha 0.85 #:color 2 #:line-color >> 2 >> - #:samples 2) >> + #:samples 4) >> (discrete-histogram3d (list (vector 'a 'a 1) >> (vector 'a 'b 2) >> (vector 'b 'b 3)) >> >> >> >> >> >
_________________________ Racket Developers list: http://lists.racket-lang.org/dev