mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-16 04:36:02 +00:00
98_SVG.pm: fill areas to the 0 line (by Damian, Forum #108858)
git-svn-id: https://svn.fhem.de/fhem/trunk@21332 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
b3d97f649c
commit
25e4ba52a5
@ -1914,6 +1914,7 @@ SVG_render($$$$$$$$$$)
|
||||
my $xmul;
|
||||
$xmul = $w/($xmax-$xmin) if( $conf{xrange} );
|
||||
my $hmul = $h/($hmax{$a}-$min);
|
||||
my $hfill = $hmul*$hmax{$a}; # Fill only to the 0-line, #108858
|
||||
my $ret = "";
|
||||
my ($dxp, $dyp) = ($hdx[$idx], $hdy[$idx]);
|
||||
SVG_pO "<!-- Warning: No data item $idx defined -->" if(!defined($dxp));
|
||||
@ -1961,7 +1962,7 @@ SVG_render($$$$$$$$$$)
|
||||
|
||||
} elsif($lType eq "steps" || $lType eq "fsteps" ) {
|
||||
|
||||
$ret .= sprintf(" %d,%d", $x+$dxp->[0], $y+$h) if($isFill && @{$dxp});
|
||||
$ret .= sprintf(" %d,%d", $x+$dxp->[0],$y+$hfill) if($isFill && @{$dxp});
|
||||
if(@{$dxp} == 1) {
|
||||
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul;
|
||||
$ret .= sprintf(" %d,%d %d,%d %d,%d %d,%d",
|
||||
@ -1988,12 +1989,12 @@ SVG_render($$$$$$$$$$)
|
||||
}
|
||||
}
|
||||
}
|
||||
$ret .= sprintf(" %d,%d", $lx, $y+$h) if($isFill && $lx > -1);
|
||||
$ret .= sprintf(" %d,%d", $lx, $y+$hfill) if($isFill && $lx > -1);
|
||||
|
||||
SVG_pO "<polyline $attributes $lStyle points=\"$ret\"/>";
|
||||
|
||||
} elsif($lType eq "histeps" ) {
|
||||
$ret .= sprintf(" %d,%d", $x+$dxp->[0], $y+$h) if($isFill && @{$dxp});
|
||||
$ret .= sprintf(" %d,%d", $x+$dxp->[0],$y+$hfill) if($isFill && @{$dxp});
|
||||
if(@{$dxp} == 1) {
|
||||
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul;
|
||||
$ret .= sprintf(" %d,%d %d,%d %d,%d %d,%d",
|
||||
@ -2008,7 +2009,7 @@ SVG_render($$$$$$$$$$)
|
||||
$x1,$y1, ($x1+$x2)/2,$y1, ($x1+$x2)/2,$y2, $x2,$y2);
|
||||
}
|
||||
}
|
||||
$ret .= sprintf(" %d,%d", $lx, $y+$h) if($isFill && $lx > -1);
|
||||
$ret .= sprintf(" %d,%d", $lx, $y+$hfill) if($isFill && $lx > -1);
|
||||
SVG_pO "<polyline $attributes $lStyle points=\"$ret\"/>";
|
||||
|
||||
} elsif( $lType eq "bars" ) {
|
||||
@ -2143,7 +2144,7 @@ SVG_render($$$$$$$$$$)
|
||||
|
||||
if($i == 0) {
|
||||
if($doClose) {
|
||||
$ret .= sprintf("M %d,%d L %d,%d $lt", $x1,$y+$h, $x1,$y1);
|
||||
$ret .= sprintf("M %d,%d L %d,%d $lt", $x1,$y+$hfill, $x1,$y1);
|
||||
} else {
|
||||
$ret .= sprintf("M %d,%d $lt", $x1,$y1);
|
||||
}
|
||||
@ -2170,7 +2171,7 @@ SVG_render($$$$$$$$$$)
|
||||
|
||||
#-- insert last point for filled line
|
||||
$ret .= sprintf(" %.1f,%.1f", $x1, $y1) if(($lt eq "T") && defined($x1));
|
||||
$ret .= sprintf(" L %d,%d Z", $x1, $y+$h) if($doClose && defined($x1));
|
||||
$ret .= sprintf(" L %d,%d Z", $x1,$y+$hfill) if($doClose && defined($x1));
|
||||
|
||||
if($ret =~ m/^ (\d+),(\d+)/) { # just points, no M/L
|
||||
$ret = sprintf("M %d,%d $lt ", $1, $2).$ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user