From dacffd582ade0309b75ddf09bbc5eb3d3c44142e Mon Sep 17 00:00:00 2001 From: Thomas Kremer <-> Date: Fri, 25 Sep 2020 03:38:43 +0200 Subject: CAMM.pm: SVG is now to scale --- CAMM.pm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/CAMM.pm b/CAMM.pm index e7b99f5..1c5f857 100644 --- a/CAMM.pm +++ b/CAMM.pm @@ -596,14 +596,14 @@ our %camm2svg_commands; our $svg_template = <<'EOSVG'; - + %s EOSVG our $svg_path_template = <<'EOSVG'; - + EOSVG sub to_svgpath { @@ -636,7 +636,11 @@ sub to_svgpath { return $d; } -# TODO: convert mm to pixels +# DONE: convert mm to pixels +# 96 px = 1 in = 25.4 mm + +my $units_per_px = $units_per_mm * 25.4/96; #$mm_per_in * $in_per_px + sub to_svg { my ($self,$camm,$split,$colored) = @_; #$self = $self->new unless ref $self; @@ -645,7 +649,7 @@ sub to_svg { my $win = $self->{input_window}; my @origin = (0,0); my @size = (100,100); - my $scale = 1/$units_per_mm; + my $scale = 1/$units_per_px; if (defined $win) { @origin = @$win[0,3]; $_ = -$_ for @origin; @@ -654,7 +658,7 @@ sub to_svg { my $color = "black"; my @paths; if ($split) { - @paths = split /(?=M )/, $d; + @paths = grep !/^M $florex,$florex *$/, split /(?=M )/, $d; my $i = 0; for (@paths) { $color = sprintf "#%02x%02x%02x", map 127*(1+cos(($i/@paths*5/6-$_/3)*2*pi)),0..2 @@ -665,7 +669,7 @@ sub to_svg { } else { @paths = (sprintf $svg_path_template, $d, $color); } - return sprintf $svg_template, @size, @origin, join("",@paths); + return sprintf $svg_template, @size, $scale, -$scale, @origin, join("",@paths); } 1; -- cgit v1.2.3