mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +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;
|
my $xmul;
|
||||||
$xmul = $w/($xmax-$xmin) if( $conf{xrange} );
|
$xmul = $w/($xmax-$xmin) if( $conf{xrange} );
|
||||||
my $hmul = $h/($hmax{$a}-$min);
|
my $hmul = $h/($hmax{$a}-$min);
|
||||||
|
my $hfill = $hmul*$hmax{$a}; # Fill only to the 0-line, #108858
|
||||||
my $ret = "";
|
my $ret = "";
|
||||||
my ($dxp, $dyp) = ($hdx[$idx], $hdy[$idx]);
|
my ($dxp, $dyp) = ($hdx[$idx], $hdy[$idx]);
|
||||||
SVG_pO "<!-- Warning: No data item $idx defined -->" if(!defined($dxp));
|
SVG_pO "<!-- Warning: No data item $idx defined -->" if(!defined($dxp));
|
||||||
@ -1961,7 +1962,7 @@ SVG_render($$$$$$$$$$)
|
|||||||
|
|
||||||
} elsif($lType eq "steps" || $lType eq "fsteps" ) {
|
} 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) {
|
if(@{$dxp} == 1) {
|
||||||
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul;
|
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul;
|
||||||
$ret .= sprintf(" %d,%d %d,%d %d,%d %d,%d",
|
$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\"/>";
|
SVG_pO "<polyline $attributes $lStyle points=\"$ret\"/>";
|
||||||
|
|
||||||
} elsif($lType eq "histeps" ) {
|
} 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) {
|
if(@{$dxp} == 1) {
|
||||||
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul;
|
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul;
|
||||||
$ret .= sprintf(" %d,%d %d,%d %d,%d %d,%d",
|
$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);
|
$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\"/>";
|
SVG_pO "<polyline $attributes $lStyle points=\"$ret\"/>";
|
||||||
|
|
||||||
} elsif( $lType eq "bars" ) {
|
} elsif( $lType eq "bars" ) {
|
||||||
@ -2143,7 +2144,7 @@ SVG_render($$$$$$$$$$)
|
|||||||
|
|
||||||
if($i == 0) {
|
if($i == 0) {
|
||||||
if($doClose) {
|
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 {
|
} else {
|
||||||
$ret .= sprintf("M %d,%d $lt", $x1,$y1);
|
$ret .= sprintf("M %d,%d $lt", $x1,$y1);
|
||||||
}
|
}
|
||||||
@ -2170,7 +2171,7 @@ SVG_render($$$$$$$$$$)
|
|||||||
|
|
||||||
#-- insert last point for filled line
|
#-- insert last point for filled line
|
||||||
$ret .= sprintf(" %.1f,%.1f", $x1, $y1) if(($lt eq "T") && defined($x1));
|
$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
|
if($ret =~ m/^ (\d+),(\d+)/) { # just points, no M/L
|
||||||
$ret = sprintf("M %d,%d $lt ", $1, $2).$ret;
|
$ret = sprintf("M %d,%d $lt ", $1, $2).$ret;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user