2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 10:46:53 +00:00

98_SVG.pm: Bugfix: write even one bar (Forum #73937)

git-svn-id: https://svn.fhem.de/fhem/trunk@14655 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2017-07-06 09:20:24 +00:00
parent a85b9983ae
commit 12d6ddddde

View File

@ -1953,27 +1953,21 @@ SVG_render($$$$$$$$$$)
SVG_pO "<polyline $attributes $lStyle points=\"$ret\"/>"; SVG_pO "<polyline $attributes $lStyle points=\"$ret\"/>";
} elsif( $lType eq "bars" ) { } elsif( $lType eq "bars" ) {
if(@{$dxp} == 1) { my $bw = $barwidth*$tmul;
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul; # bars are all of equal width (see far above !),
$ret .= sprintf(" %d,%d %d,%d %d,%d %d,%d", # position rounded to integer multiples of bar width
$x,$y+$h, $x,$y1, $x+$w,$y1, $x+$w,$y+$h); foreach my $i (0..int(@{$dxp})-1) {
} else { my ($x1, $y1) = ( $x + $dxp->[$i] - $bw,
my $bw = $barwidth*$tmul; $y +$h-($dyp->[$i]-$min)*$hmul);
# bars are all of equal width (see far above !), my $curBw = $bw;
# position rounded to integer multiples of bar width if($x1 < $x) {
foreach my $i (0..int(@{$dxp})-1) { $curBw -= $x - $x1;
my ($x1, $y1) = ( $x + $dxp->[$i] - $bw, $x1 = $x;
$y +$h-($dyp->[$i]-$min)*$hmul); }
my $curBw = $bw; my ($x2, $y2) = ($curBw, ($dyp->[$i]-$min)*$hmul);
if($x1 < $x) { SVG_pO "<rect $attributes $lStyle x=\"$x1\" y=\"$y1\" ".
$curBw -= $x - $x1; "width=\"$x2\" height=\"$y2\"/>";
$x1 = $x; }
}
my ($x2, $y2) = ($curBw, ($dyp->[$i]-$min)*$hmul);
SVG_pO "<rect $attributes $lStyle x=\"$x1\" y=\"$y1\" ".
"width=\"$x2\" height=\"$y2\"/>";
}
}
} elsif( $lType eq "ibars" ) { # Forum #35268 } elsif( $lType eq "ibars" ) { # Forum #35268
if(@{$dxp} == 1) { if(@{$dxp} == 1) {
my $y1 = $y+$h-($dyp->[0]-$min)*$hmul; my $y1 = $y+$h-($dyp->[0]-$min)*$hmul;