2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-21 01:46:08 +00:00

98:SVG.pm: Optimise step/fstep by omitting the same points

git-svn-id: https://svn.fhem.de/fhem/trunk@16655 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2018-04-24 20:43:33 +00:00
parent 8850bdd170
commit ba206c4990

View File

@ -1964,15 +1964,24 @@ SVG_render($$$$$$$$$$)
$ret .= sprintf(" %d,%d %d,%d %d,%d %d,%d",
$x,$y+$h, $x,$y1, $x+$w,$y1, $x+$w,$y+$h);
} else {
foreach my $i (1..int(@{$dxp})-1) {
my $nEl = int(@{$dxp})-1;
foreach my $i (1..$nEl) {
my ($x1, $y1) = ($x+$dxp->[$i-1], $y+$h-($dyp->[$i-1]-$min)*$hmul);
my ($x2, $y2) = ($x+$dxp->[$i], $y+$h-($dyp->[$i] -$min)*$hmul);
next if(int($x2) == $lx && int($y1) == $ly);
$lx = int($x2); $ly = int($y2);
if($lType eq "steps") {
$ret .= sprintf(" %d,%d %d,%d %d,%d", $x1,$y1, $x2,$y1, $x2,$y2);
if($i == $nEl) {
if($lType eq "steps") {
$ret .= sprintf(" %d,%d %d,%d %d,%d", $x1,$y1, $x2,$y1, $x2,$y2);
} else {
$ret .= sprintf(" %d,%d %d,%d %d,%d", $x1,$y1, $x1,$y2, $x2,$y2);
}
} else {
$ret .= sprintf(" %d,%d %d,%d %d,%d", $x1,$y1, $x1,$y2, $x2,$y2);
if($lType eq "steps") {
$ret .= sprintf(" %d,%d %d,%d", $x1,$y1, $x2,$y1);
} else {
$ret .= sprintf(" %d,%d %d,%d", $x1,$y1, $x1,$y2);
}
}
}
}