# [pstricks] Anomalous behavior of PSTricks fills

Dwight Aplevich aplevich at uwaterloo.ca
Sat Jan 31 18:38:10 CET 2009

Hello
>
>
>> I've been having occasional problems with fills as illustrated by
>> the appended file, which is intended to fill a simple area
>> bounded by two lines and a spline. [...]
>
>inside of pscustom \psbezier takes only three arguments when it
>follows another curve. The end of the preceeding line is always
>the starting point for the next one.

Thank you for finding the problem so quickly.  This means that the
definition of a spline
now depends on the context; that is, when the spline is not first in
the path that is used
as the boundary for a fill.

This context-dependency breaks legacy code dating back to the 1990s,
although I'm
not sure how many diagrams I have that correspond to the above conditions.
An example is appended (please excuse the length).  The code is
generated by a program
that cannot always know in advance the context of each drawing
command, since it may
vary independently.

In looking for a work-around, I've come up with some questions:

1.  Where is this behaviour documented, and are there other basic
drawing commands
that no longer work as originally?  I'm most interested in \psset, \psframe,
\psellipse, \pscircle, \psline, \psbezier, \psarc, \psarcn.

2.  When was the change made?  I may have to archive a prior version
of PSTricks that
works with existing source code.  Are older versions readily available?

3.  Is there a way for a user to turn this behaviour off easily?  I
can think of
work-arounds for the current behaviour, but none that is simple.

\psset{unit=1in,cornersize=absolute,dimen=middle}%
\begin{pspicture}(-1.061437,-0.45406)(1.818745,1.978113)%
\psset{linewidth=0.8pt}%
\psbezier(-0.633927,1.610446)(-0.630901,1.597179)(-0.627874,1.583911)(-0.624848,1.570643)
(-0.618795,1.544107)(-0.608614,1.500104)(-0.594307,1.438635)
(-0.58,1.377166)(-0.565417,1.317244)(-0.550559,1.258871)
(-0.535702,1.200498)(-0.519468,1.140039)(-0.501859,1.077494)
(-0.48425,1.014948)(-0.466641,0.95584)(-0.449032,0.900168)
(-0.431423,0.844496)(-0.413814,0.792241)(-0.396205,0.743402)
(-0.378596,0.694563)(-0.360986,0.649144)(-0.343377,0.607145)
(-0.325768,0.565146)(-0.308159,0.526567)(-0.29055,0.491406)
(-0.272941,0.456246)(-0.255332,0.424506)(-0.237723,0.396185)
(-0.220114,0.367865)(-0.202505,0.342961)(-0.184895,0.321474)
(-0.167286,0.299987)(-0.149677,0.281936)(-0.132068,0.267323)
(-0.114459,0.252709)(-0.098226,0.242037)(-0.083368,0.235307)
(-0.06851,0.228577)(-0.053928,0.224601)(-0.03962,0.223378)
(-0.025313,0.222156)(-0.015133,0.221551)(-0.00908,0.221563)
(-0.006053,0.221569)(-0.003027,0.221576)(0,0.221582)
\psbezier(0,0.221582)(0.00649,0.222177)(0.012981,0.222772)(0.019471,0.223368)
(0.032452,0.224558)(0.054284,0.227187)(0.084966,0.231253)
(0.115649,0.235319)(0.146921,0.242193)(0.178783,0.251876)
(0.210646,0.261558)(0.245458,0.275456)(0.283221,0.29357)
(0.320984,0.311683)(0.358747,0.333234)(0.39651,0.358221)
(0.434272,0.383207)(0.472035,0.411611)(0.509798,0.443431)
(0.547561,0.475251)(0.585324,0.510491)(0.623087,0.549151)
(0.660849,0.587811)(0.698612,0.62989)(0.736375,0.675388)
(0.774138,0.720887)(0.811901,0.769805)(0.849664,0.822144)
(0.887426,0.874482)(0.925189,0.930238)(0.962952,0.989409)
(1.000715,1.048581)(1.038478,1.111189)(1.07624,1.177234)
(1.114003,1.243279)(1.148816,1.306964)(1.180678,1.36829)
(1.212541,1.429616)(1.243813,1.492436)(1.274495,1.556748)
(1.305178,1.621061)(1.327009,1.667087)(1.33999,1.694826)
(1.346481,1.708695)(1.352971,1.722565)(1.359462,1.736434)
\psbezier(1.359462,1.736434)(1.355943,1.735347)(1.352425,1.73426)(1.348907,1.733172)
(1.34187,1.730998)(1.329757,1.727364)(1.312565,1.722269)
(1.295374,1.717175)(1.276633,1.712081)(1.256341,1.706988)
(1.236049,1.701895)(1.212327,1.696457)(1.185174,1.690672)
(1.158021,1.684887)(1.129162,1.679241)(1.098597,1.673732)
(1.068033,1.668224)(1.035618,1.662865)(1.001355,1.657657)
(0.967091,1.652448)(0.93075,1.647407)(0.892332,1.642535)
(0.853914,1.637662)(0.813091,1.632984)(0.769863,1.628501)
(0.726636,1.624018)(0.680443,1.619775)(0.631286,1.615773)
(0.582129,1.61177)(0.529384,1.608057)(0.473051,1.604635)
(0.416719,1.601214)(0.353797,1.598325)(0.284287,1.59597)
(0.214777,1.593616)(0.148912,1.591589)(0.086694,1.589891)
(0.024476,1.588193)(-0.077224,1.589817)(-0.218405,1.594763)
(-0.359586,1.599708)(-0.464135,1.603559)(-0.532052,1.606314)
(-0.566011,1.607691)(-0.599969,1.609069)(-0.633927,1.610446)
}%
\psbezier(-0.633927,1.610446)(-0.621761,1.557109)(-0.608686,1.500412)(-0.594307,1.438635)
(-0.579928,1.376858)(-0.565491,1.317536)(-0.550559,1.258871)
(-0.535627,1.200206)(-0.519556,1.140352)(-0.501859,1.077494)
(-0.484162,1.014636)(-0.466729,0.956118)(-0.449032,0.900168)
(-0.431335,0.844218)(-0.413902,0.792485)(-0.396205,0.743402)
(-0.378507,0.694319)(-0.361074,0.649354)(-0.343377,0.607145)
(-0.32568,0.564936)(-0.308247,0.526742)(-0.29055,0.491406)
(-0.272853,0.45607)(-0.25542,0.424647)(-0.237723,0.396185)
(-0.220026,0.367724)(-0.202593,0.343069)(-0.184895,0.321474)
(-0.167198,0.299879)(-0.149765,0.282009)(-0.132068,0.267323)
(-0.114371,0.252636)(-0.0983,0.242071)(-0.083368,0.235307)
(-0.068436,0.228543)(-0.053999,0.224607)(-0.03962,0.223378)
(-0.025242,0.22215)(-0.012167,0.221557)(0,0.221582)
\psbezier(0,0.221582)(0.00649,0.222177)(0.012981,0.222772)(0.019471,0.223368)
(0.032452,0.224558)(0.054284,0.227187)(0.084966,0.231253)
(0.115649,0.235319)(0.146921,0.242193)(0.178783,0.251876)
(0.210646,0.261558)(0.245458,0.275456)(0.283221,0.29357)
(0.320984,0.311683)(0.358747,0.333234)(0.39651,0.358221)
(0.434272,0.383207)(0.472035,0.411611)(0.509798,0.443431)
(0.547561,0.475251)(0.585324,0.510491)(0.623087,0.549151)
(0.660849,0.587811)(0.698612,0.62989)(0.736375,0.675388)
(0.774138,0.720887)(0.811901,0.769805)(0.849664,0.822144)
(0.887426,0.874482)(0.925189,0.930238)(0.962952,0.989409)
(1.000715,1.048581)(1.038478,1.111189)(1.07624,1.177234)
(1.114003,1.243279)(1.148816,1.306964)(1.180678,1.36829)
(1.212541,1.429616)(1.243813,1.492436)(1.274495,1.556748)
(1.305178,1.621061)(1.327009,1.667087)(1.33999,1.694826)
(1.346481,1.708695)(1.352971,1.722565)(1.359462,1.736434)
\psbezier(1.359462,1.736434)(1.345318,1.732063)(1.329843,1.727389)(1.312565,1.722269)
(1.295288,1.717149)(1.276734,1.712107)(1.256341,1.706988)
(1.235948,1.70187)(1.212463,1.696486)(1.185174,1.690672)
(1.157885,1.684858)(1.129315,1.679268)(1.098597,1.673732)
(1.06788,1.668197)(1.03579,1.662892)(1.001355,1.657657)
(0.96692,1.652422)(0.930942,1.647431)(0.892332,1.642535)
(0.853722,1.637638)(0.813307,1.633007)(0.769863,1.628501)
(0.72642,1.623996)(0.680689,1.619795)(0.631286,1.615773)
(0.581883,1.61175)(0.529665,1.608074)(0.473051,1.604635)
(0.416437,1.601196)(0.354145,1.598337)(0.284287,1.59597)
(0.214429,1.593604)(0.149223,1.591598)(0.086694,1.589891)
(0.024165,1.588185)(-0.076518,1.589792)(-0.218405,1.594763)
(-0.360292,1.599733)(-0.497415,1.604909)(-0.633927,1.610446)
\psline(0,0)(0,0.221582)
\psline[linestyle=dashed](0,0.240984)(0,1.566539)
\psline[arrowsize=0.05in
0,arrowlength=2,arrowinset=0]{->}(0,1.585942)(0,1.910773)
\uput{0.501875ex}[l](0,1.910773){\llap{{$f$}}}
\psline[arrowsize=0.05in
0,arrowlength=2,arrowinset=0]{->}(0,0)(-0.950891,-0.354102)
\uput{0.501875ex}[dr](-0.950891,-0.354102){\rlap{{$x$}}}
\psline[arrowsize=0.05in
0,arrowlength=2,arrowinset=0]{->}(0,0)(1.563381,-0.126592)
\uput{0.501875ex}[d](1.563381,-0.126592){{$y$}}
\uput{0.501875ex}[ur](0,0){\rlap{{$0$}}}
\uput{0.501875ex}[d](-0.380356,-0.141641){{$\;\;x_0$}}
\uput{0.501875ex}[d](0.679731,-0.05504){{$\;\;y_0$}}
\psset{linewidth=0.4pt}%
\psset{linewidth=0.4pt}%
\psset{linewidth=0.8pt}%
\psset{linewidth=0.8pt}%
\newgray{m4fillv}{1}
\pscustom[fillstyle=solid,fillcolor=m4fillv]{%
\psline(0.457763,1.702275)(-0.090921,1.090875)
(-0.090921,1.090875)(0.140986,0.474711)
(0.140986,0.474711)(0.68967,1.086111)
(0.68967,1.086111)(0.457763,1.702275)
}%
\psset{linewidth=0.8pt}%
\psbezier(-0.380356,0.70037)(-0.378508,0.700455)(-0.376659,0.70054)(-0.37481,0.700625)
(-0.371112,0.700794)(-0.364893,0.701131)(-0.356153,0.701634)
(-0.347413,0.702137)(-0.338504,0.702871)(-0.329428,0.703836)
(-0.320351,0.704802)(-0.310435,0.706126)(-0.299677,0.707809)
(-0.28892,0.709492)(-0.278163,0.711453)(-0.267406,0.713694)
(-0.256649,0.715935)(-0.245891,0.718452)(-0.235134,0.721248)
(-0.224377,0.724043)(-0.21362,0.727115)(-0.202863,0.730465)
(-0.192106,0.733815)(-0.181348,0.737443)(-0.170591,0.741348)
(-0.159834,0.745253)(-0.149077,0.749436)(-0.13832,0.753896)
(-0.127562,0.758356)(-0.116805,0.763093)(-0.106048,0.768108)
(-0.095291,0.773122)(-0.084534,0.778416)(-0.073776,0.783988)
(-0.063019,0.78956)(-0.053102,0.794925)(-0.044026,0.800081)
(-0.03495,0.805237)(-0.026041,0.810511)(-0.017301,0.815903)
(-0.008561,0.821294)(-0.002342,0.825152)(0.001356,0.827476)
(0.003205,0.828638)(0.005054,0.829801)(0.006903,0.830963)
\psbezier[linestyle=dashed](0.026266,0.843785)(0.028766,0.845542)(0.031266,0.847298)(0.033767,0.849054)
(0.038768,0.852567)(0.047178,0.858567)(0.058998,0.867055)
(0.070818,0.875543)(0.082866,0.8846)(0.095141,0.894224)
(0.107416,0.903849)(0.120827,0.914858)(0.135375,0.92725)
(0.149923,0.939643)(0.164471,0.952545)(0.179019,0.965958)
(0.193566,0.97937)(0.208114,0.99329)(0.222662,1.007716)
(0.23721,1.022143)(0.251758,1.037077)(0.266306,1.052519)
(0.280854,1.067961)(0.295402,1.08391)(0.30995,1.100367)
(0.324498,1.116823)(0.339045,1.133787)(0.353593,1.151259)
(0.368141,1.168731)(0.382689,1.18671)(0.397237,1.205196)
(0.411785,1.223682)(0.426333,1.242678)(0.440881,1.262184)
(0.455429,1.28169)(0.46884,1.300088)(0.481115,1.317377)
(0.49339,1.334667)(0.505437,1.352026)(0.517257,1.369455)
(0.529077,1.386885)(0.537488,1.399326)(0.542489,1.406778)
(0.544989,1.410505)(0.54749,1.414231)(0.54999,1.417957)
\psbezier(0.559387,1.432264)(0.560418,1.433851)(0.561448,1.435438)(0.562478,1.437025)
(0.564539,1.440198)(0.568004,1.445551)(0.572875,1.453084)
(0.577745,1.460617)(0.582709,1.468363)(0.587767,1.476323)
(0.592825,1.484283)(0.598351,1.493063)(0.604345,1.502665)
(0.61034,1.512266)(0.616334,1.521954)(0.622329,1.531728)
(0.628323,1.541503)(0.634317,1.551363)(0.640312,1.56131)
(0.646306,1.571257)(0.652301,1.581289)(0.658295,1.591408)
(0.66429,1.601527)(0.670284,1.611733)(0.676278,1.622024)
(0.682273,1.632315)(0.688267,1.642693)(0.694262,1.653156)
(0.700256,1.66362)(0.70625,1.67417)(0.712245,1.684806)
(0.718239,1.695441)(0.724234,1.706164)(0.730228,1.716973)
(0.736222,1.727782)(0.741748,1.737817)(0.746806,1.747078)
(0.751864,1.75634)(0.756828,1.765496)(0.761699,1.774546)
(0.766569,1.783597)(0.770035,1.790044)(0.772095,1.793886)
(0.773125,1.795807)(0.774156,1.797729)(0.775186,1.79965)
\psset{linewidth=0.4pt}%
\psset{linewidth=0.4pt}%
\psline(-0.380356,0.70037)(-0.380356,-0.141641)
\psbezier[arrowsize=0.04in
0,arrowlength=1.666667,arrowinset=0]{<-}(-0.218999,0.725648)(-0.231499,0.738148)(-0.243999,0.750648)(-0.256499,0.763148)
(-0.281499,0.788148)(-0.331499,0.800648)(-0.406499,0.800648)
(-0.443999,0.800648)(-0.481499,0.800648)(-0.518999,0.800648)
\uput{0.501875ex}[l](-0.518999,0.800648){\llap{{$f(x_0,y)$}}}
\psset{linewidth=0.8pt}%
\psset{linewidth=0.8pt}%
\psbezier(0.679731,0.609705)(0.678551,0.609604)(0.677371,0.609503)(0.676192,0.609401)
(0.673832,0.609199)(0.669864,0.608953)(0.664288,0.608665)
(0.658711,0.608376)(0.653027,0.608497)(0.647236,0.609027)
(0.641444,0.609557)(0.635117,0.61064)(0.628253,0.612277)
(0.62139,0.613913)(0.614526,0.616072)(0.607662,0.618753)
(0.600798,0.621434)(0.593935,0.624633)(0.587071,0.628352)
(0.580207,0.632071)(0.573344,0.63631)(0.56648,0.641068)
(0.559616,0.645826)(0.552753,0.651104)(0.545889,0.656901)
(0.539025,0.662698)(0.532162,0.669015)(0.525298,0.675851)
(0.518434,0.682687)(0.511571,0.690043)(0.504707,0.697917)
(0.497843,0.705792)(0.49098,0.714188)(0.484116,0.723107)
(0.477252,0.732026)(0.470925,0.740673)(0.465134,0.749049)
(0.459342,0.757425)(0.453658,0.766046)(0.448082,0.77491)
(0.442505,0.783775)(0.438537,0.790123)(0.436177,0.793954)
(0.434998,0.795869)(0.433818,0.797785)(0.432638,0.7997)
\psbezier(0.194202,1.408589)(0.193645,1.410515)(0.193088,1.41244)(0.192531,1.414365)
(0.191416,1.418216)(0.189542,1.424713)(0.186908,1.433857)
(0.184274,1.443)(0.18159,1.452412)(0.178855,1.462093)
(0.176119,1.471773)(0.173131,1.482462)(0.169889,1.49416)
(0.166647,1.505859)(0.163406,1.517673)(0.160164,1.529604)
(0.156922,1.541535)(0.15368,1.553582)(0.150439,1.565744)
(0.147197,1.577907)(0.143955,1.590185)(0.140714,1.60258)
(0.137472,1.614974)(0.13423,1.627484)(0.130988,1.640111)
(0.127747,1.652737)(0.124505,1.665479)(0.121263,1.678337)
(0.118021,1.691195)(0.11478,1.704168)(0.111538,1.717258)
(0.108296,1.730348)(0.105055,1.743554)(0.101813,1.756876)
(0.098571,1.770199)(0.095583,1.782575)(0.092847,1.794006)
(0.090112,1.805436)(0.087428,1.816744)(0.084794,1.82793)
(0.08216,1.839115)(0.080286,1.847083)(0.079171,1.851834)
(0.078614,1.854209)(0.078057,1.856584)(0.0775,1.858959)
\psbezier[linestyle=dashed](0.420284,0.820983)(0.419227,0.822901)(0.418171,0.824819)(0.417115,0.826737)
(0.415003,0.830573)(0.41145,0.8371)(0.406457,0.84632)
(0.401464,0.855539)(0.396375,0.865269)(0.39119,0.875508)
(0.386005,0.885747)(0.38034,0.897338)(0.374195,0.910282)
(0.36805,0.923225)(0.361905,0.936587)(0.355759,0.950368)
(0.349614,0.964148)(0.343469,0.978345)(0.337324,0.992958)
(0.331179,1.007571)(0.325033,1.0226)(0.318888,1.038046)
(0.312743,1.053491)(0.306598,1.069354)(0.300453,1.085632)
(0.294308,1.101911)(0.288162,1.118606)(0.282017,1.135718)
(0.275872,1.152829)(0.269727,1.170357)(0.263582,1.188301)
(0.257437,1.206244)(0.251291,1.224607)(0.245146,1.243388)
(0.239001,1.262169)(0.233336,1.279823)(0.228151,1.296352)
(0.222966,1.31288)(0.217877,1.329423)(0.212884,1.345979)
(0.207891,1.362536)(0.204338,1.374349)(0.202226,1.381418)
(0.20117,1.384953)(0.200114,1.388487)(0.199057,1.392022)
\psset{linewidth=0.4pt}%
\psline(0.679731,0.609705)(0.679731,-0.05504)
\psbezier[arrowsize=0.04in
0,arrowlength=1.666667,arrowinset=0]{<-}(0.576776,0.634321)(0.589276,0.646821)(0.601776,0.659321)(0.614276,0.671821)
(0.639276,0.696821)(0.689276,0.709321)(0.764276,0.709321)
(0.801776,0.709321)(0.839276,0.709321)(0.876776,0.709321)
\uput{0.501875ex}[r](0.876776,0.709321){\rlap{{$f(x,y_0)$}}}
\psset{linewidth=0.4pt}%
\psset{linewidth=0.4pt}%
\psline(0.299374,1.088493)(0.299374,-0.196681)
\psline(0.035187,1.790423)(0.723618,-0.038697)
(0.723618,-0.038697)(0.0775,-0.279305)
\psline(0.800302,1.646679)(-0.775836,-0.109617)
(-0.775836,-0.109617)(0.775186,-0.235209)
\psline(-0.707863,-0.033875)(-0.571917,-0.044883)
(-0.571917,-0.044883)(-0.571917,0.11761)
\uput{0.501875ex}[r](-0.585754,0.030117){\rlap{{$S_y$}}}
\psline(0.660225,0.129734)(0.596833,0.106127)
(0.596833,0.106127)(0.596833,0.298164)
\uput{0.501875ex}[l](0.596833,0.181127){\llap{{$S_x$}}}
\psbezier[arrowsize=0.04in
0,arrowlength=1.666667,arrowinset=0]{<-}(0.953982,1.40607)(1.070397,1.347863)(1.225617,1.309058)(1.342032,1.309058)
\uput{0.501875ex}[r](1.342032,1.309058){\rlap{{$f(x,y)$}}}
\psbezier[arrowsize=0.04in
0,arrowlength=1.666667,arrowinset=0]{<-}(0.299374,1.088493)(0.495124,0.971043)(0.782224,0.892743)(1.017124,0.892743)
\uput{0.501875ex}[r](1.017124,0.892743){\rlap{{$f(x_0,y_0)$}}}
\end{pspicture}%

Dwight Aplevich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://tug.org/pipermail/pstricks/attachments/20090131/51327a90/attachment-0001.html