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';
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