|
From: Grothausmann, R. Dr. <gro...@mh...> - 2016-07-05 08:03:24
|
On 04/07/16 20:17, Ethan Merritt wrote:
> On Monday, 04 July 2016 11:08:52 AM Ethan A Merritt wrote:
>> On Monday, 04 July 2016 04:11:44 PM Grothausmann, Roman Dr. wrote:
>>> Any idea how to avoid this raggedness?
>>
>> Sorry, that is in part a consequence of the work-around.
>>
>> I think the issue is that you are using a partially transparent fill.
>> The intended behaviour (that isn't working) is to draw the entire curve
>> as one large semi-transparent area. The workaround causes it to be
>> drawn instead as a series of adjacent semi-transparent quadrilaterals.
>> Whenever there is an imperfect join between two adjacent quadrilaterals
>> due to coordinate round-off, there can be a glitch in rendering.
>
> By the way: the glitch is in the rendering program, not the svg file per se.
> So changing the scale slightly or using a different viewing program may
> reduce or exacerbate the problem.
Thanks Ethan for the feedback.
Understanding, that the work-around is not so suitable for SVGs as it changes
the way of plotting I couldn't resist taking a look into the code to find out
what is wrong in the first place. I came as far as getting the expected
behaviour if y= is specified when applying the changes given by the patch below.
However I'm not sufficiently confident in adjusting the code appropriately for
cases I'm not familiar with. My guess it that the if statement would need an
additional check for kdensity to call need_fill_border and plot_lines.
What do You think?
--- /opt/compilation/gnuplot-5.0.3/src/graphics.c.orig 2016-07-05
09:49:40.886329514 +0200
+++ /opt/compilation/gnuplot-5.0.3/src/graphics.c 2016-07-05 09:50:22.897553791
+0200
@@ -763,16 +763,13 @@
plot_boxes(this_plot, Y_AXIS.term_zero);
if (bar_layer == LAYER_FRONT)
plot_bars(this_plot);
break;
case FILLEDCURVES:
- if (this_plot->filledcurves_options.closeto == FILLEDCURVES_ATY1
- || this_plot->filledcurves_options.closeto == FILLEDCURVES_ATY2
- || this_plot->filledcurves_options.closeto == FILLEDCURVES_ATR
- || this_plot->filledcurves_options.closeto == FILLEDCURVES_BETWEEN) {
+ if (0) {
plot_betweencurves(this_plot);
} else {
plot_filledcurves(this_plot);
if (need_fill_border(&this_plot->fill_properties))
plot_lines(this_plot);
}
|