summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
committerKrzysztof Kosiński <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
commite65a02ed32b78534739aba24929ece7c44dd967f (patch)
tree13cf022f18f6b5bae46aad4bc339e512f069a514 /share
parentPull 2Geom revision 2013 (extra constructors for Rect). (diff)
parentText edit dialog: Apply button should grab default only after adding to window (diff)
downloadinkscape-e65a02ed32b78534739aba24929ece7c44dd967f.tar.gz
inkscape-e65a02ed32b78534739aba24929ece7c44dd967f.zip
Merge from trunk
(bzr r10347.1.5)
Diffstat (limited to 'share')
-rw-r--r--share/extensions/Makefile.am7
-rw-r--r--share/extensions/Poly3DObjects/cube.obj36
-rw-r--r--share/extensions/Poly3DObjects/cuboct.obj60
-rw-r--r--share/extensions/Poly3DObjects/dodec.obj72
-rw-r--r--share/extensions/Poly3DObjects/great_dodec.obj192
-rw-r--r--share/extensions/Poly3DObjects/great_rhombicosidodec.obj370
-rw-r--r--share/extensions/Poly3DObjects/great_rhombicuboct.obj154
-rw-r--r--share/extensions/Poly3DObjects/great_stel_dodec.obj192
-rw-r--r--share/extensions/Poly3DObjects/icos.obj72
-rw-r--r--share/extensions/Poly3DObjects/icosidodec.obj130
-rw-r--r--share/extensions/Poly3DObjects/jessens_orthog_icos.obj68
-rw-r--r--share/extensions/Poly3DObjects/methane.obj26
-rw-r--r--share/extensions/Poly3DObjects/oct.obj34
-rw-r--r--share/extensions/Poly3DObjects/rh_axes.obj24
-rw-r--r--share/extensions/Poly3DObjects/rhomb_dodec.obj56
-rw-r--r--share/extensions/Poly3DObjects/rhomb_triacont.obj130
-rw-r--r--share/extensions/Poly3DObjects/small_rhombicosidodec.obj254
-rw-r--r--share/extensions/Poly3DObjects/small_rhombicuboct.obj108
-rw-r--r--share/extensions/Poly3DObjects/small_triam_icos.obj190
-rw-r--r--share/extensions/Poly3DObjects/snub_cube.obj130
-rw-r--r--share/extensions/Poly3DObjects/snub_dodec.obj312
-rw-r--r--share/extensions/Poly3DObjects/szilassi.obj48
-rw-r--r--share/extensions/Poly3DObjects/tet.obj24
-rw-r--r--share/extensions/Poly3DObjects/trunc_cube.obj84
-rw-r--r--share/extensions/Poly3DObjects/trunc_dodec.obj192
-rw-r--r--share/extensions/Poly3DObjects/trunc_icos.obj192
-rw-r--r--share/extensions/Poly3DObjects/trunc_oct.obj82
-rw-r--r--share/extensions/Poly3DObjects/trunc_tet.obj46
-rw-r--r--share/extensions/funcplot.py7
-rw-r--r--share/extensions/gcodetools.py3189
-rw-r--r--share/extensions/gcodetools_about.inx53
-rw-r--r--share/extensions/gcodetools_all_in_one.inx194
-rw-r--r--share/extensions/gcodetools_area.inx55
-rw-r--r--share/extensions/gcodetools_check_for_updates.inx8
-rw-r--r--share/extensions/gcodetools_dxf_points.inx21
-rw-r--r--share/extensions/gcodetools_engraving.inx45
-rw-r--r--share/extensions/gcodetools_graffiti.inx119
-rw-r--r--share/extensions/gcodetools_lathe.inx52
-rw-r--r--share/extensions/gcodetools_orientation_points.inx15
-rw-r--r--share/extensions/gcodetools_path_to_gcode.inx36
-rw-r--r--share/extensions/gcodetools_prepare_path_for_plasma.inx61
-rw-r--r--share/extensions/gcodetools_tools_library.inx10
-rw-r--r--share/extensions/ink2canvas.inx16
-rwxr-xr-xshare/extensions/ink2canvas.py89
-rw-r--r--share/extensions/ink2canvas/Makefile.am9
-rw-r--r--share/extensions/ink2canvas/__init__.py0
-rw-r--r--share/extensions/ink2canvas/canvas.py194
-rw-r--r--share/extensions/ink2canvas/svg.py373
-rwxr-xr-xshare/extensions/interp.py5
-rw-r--r--share/extensions/measure.py54
-rwxr-xr-xshare/extensions/perspective.py12
-rw-r--r--share/extensions/simpletransform.py8
-rwxr-xr-xshare/extensions/summersnight.py8
-rw-r--r--share/extensions/xaml2svg/animation.xsl282
-rw-r--r--share/extensions/xaml2svg/brushes.xsl488
-rw-r--r--share/extensions/xaml2svg/canvas.xsl160
-rw-r--r--share/extensions/xaml2svg/geometry.xsl544
-rw-r--r--share/extensions/xaml2svg/properties.xsl572
-rw-r--r--share/extensions/xaml2svg/shapes.xsl342
-rw-r--r--share/extensions/xaml2svg/transform.xsl240
-rw-r--r--share/keys/corel-draw-x4.xml2
-rw-r--r--share/keys/macromedia-freehand-mx.xml868
-rw-r--r--share/tutorials/tutorial-elements.sk.svg6
-rw-r--r--share/tutorials/tutorial-shapes.ja.svg706
-rw-r--r--share/tutorials/tutorial-shapes.sk.svg4
-rw-r--r--share/tutorials/tutorial-tracing.ja.svg96
66 files changed, 7590 insertions, 4638 deletions
diff --git a/share/extensions/Makefile.am b/share/extensions/Makefile.am
index 9d81efc41..8e895c7bd 100644
--- a/share/extensions/Makefile.am
+++ b/share/extensions/Makefile.am
@@ -4,6 +4,7 @@ SUBDIRS = \
Barcode \
Poly3DObjects \
test \
+ ink2canvas \
xaml2svg
extensiondir = $(datadir)/inkscape/extensions
@@ -73,6 +74,7 @@ extensions = \
handles.py \
hpgl_output.py \
ill2svg.pl \
+ ink2canvas.py \
inkex.py \
Inkscape.pm \
inkwebeffect.py \
@@ -231,14 +233,16 @@ modules = \
fractalize.inx \
funcplot.inx \
gears.inx\
- gcodetools_all_in_one.inx\
+ gcodetools_about.inx\
gcodetools_area.inx\
gcodetools_check_for_updates.inx\
gcodetools_dxf_points.inx\
gcodetools_engraving.inx\
+ gcodetools_graffiti.inx\
gcodetools_lathe.inx\
gcodetools_orientation_points.inx\
gcodetools_path_to_gcode.inx\
+ gcodetools_prepare_path_for_plasma.inx\
gcodetools_tools_library.inx\
generate_voronoi.inx \
gimp_xcf.inx \
@@ -249,6 +253,7 @@ modules = \
guillotine.inx \
handles.inx \
hpgl_output.inx \
+ ink2canvas.inx \
inkscape_help_askaquestion.inx \
inkscape_help_commandline.inx \
inkscape_help_faq.inx\
diff --git a/share/extensions/Poly3DObjects/cube.obj b/share/extensions/Poly3DObjects/cube.obj
index ed249d456..b577ce11d 100644
--- a/share/extensions/Poly3DObjects/cube.obj
+++ b/share/extensions/Poly3DObjects/cube.obj
@@ -1,19 +1,19 @@
-#Name:Cube
-#Type:Face-specified
-#Direction:Clockwise
-
-v -0.5 -0.5 -0.5
-v -0.5 -0.5 0.5
-v -0.5 0.5 -0.5
-v -0.5 0.5 0.5
-v 0.5 -0.5 -0.5
-v 0.5 -0.5 0.5
-v 0.5 0.5 -0.5
-v 0.5 0.5 0.5
-
-f 8 4 2 6
-f 8 6 5 7
-f 8 7 3 4
-f 4 3 1 2
-f 1 3 7 5
+#Name:Cube
+#Type:Face-specified
+#Direction:Clockwise
+
+v -0.5 -0.5 -0.5
+v -0.5 -0.5 0.5
+v -0.5 0.5 -0.5
+v -0.5 0.5 0.5
+v 0.5 -0.5 -0.5
+v 0.5 -0.5 0.5
+v 0.5 0.5 -0.5
+v 0.5 0.5 0.5
+
+f 8 4 2 6
+f 8 6 5 7
+f 8 7 3 4
+f 4 3 1 2
+f 1 3 7 5
f 2 1 5 6 \ No newline at end of file
diff --git a/share/extensions/Poly3DObjects/cuboct.obj b/share/extensions/Poly3DObjects/cuboct.obj
index 030743f92..709606bca 100644
--- a/share/extensions/Poly3DObjects/cuboct.obj
+++ b/share/extensions/Poly3DObjects/cuboct.obj
@@ -1,30 +1,30 @@
-#Name:Cuboctahedron
-#Type:Face_specified
-
-v -1. 0 0
-v -0.5 -0.5 -0.70710678
-v -0.5 -0.5 0.70710678
-v -0.5 0.5 -0.70710678
-v -0.5 0.5 0.70710678
-v 0 -1. 0
-v 0 1. 0
-v 0.5 -0.5 -0.70710678
-v 0.5 -0.5 0.70710678
-v 0.5 0.5 -0.70710678
-v 0.5 0.5 0.70710678
-v 1. 0 0
-
-f 12 11 9
-f 3 5 1
-f 6 9 3
-f 5 11 7
-f 8 10 12
-f 1 4 2
-f 2 8 6
-f 7 10 4
-f 4 10 8 2
-f 3 9 11 5
-f 9 6 8 12
-f 3 1 2 6
-f 5 7 4 1
-f 11 12 10 7
+#Name:Cuboctahedron
+#Type:Face_specified
+
+v -1. 0 0
+v -0.5 -0.5 -0.70710678
+v -0.5 -0.5 0.70710678
+v -0.5 0.5 -0.70710678
+v -0.5 0.5 0.70710678
+v 0 -1. 0
+v 0 1. 0
+v 0.5 -0.5 -0.70710678
+v 0.5 -0.5 0.70710678
+v 0.5 0.5 -0.70710678
+v 0.5 0.5 0.70710678
+v 1. 0 0
+
+f 12 11 9
+f 3 5 1
+f 6 9 3
+f 5 11 7
+f 8 10 12
+f 1 4 2
+f 2 8 6
+f 7 10 4
+f 4 10 8 2
+f 3 9 11 5
+f 9 6 8 12
+f 3 1 2 6
+f 5 7 4 1
+f 11 12 10 7
diff --git a/share/extensions/Poly3DObjects/dodec.obj b/share/extensions/Poly3DObjects/dodec.obj
index 823f53911..5b66f09e0 100644
--- a/share/extensions/Poly3DObjects/dodec.obj
+++ b/share/extensions/Poly3DObjects/dodec.obj
@@ -1,36 +1,36 @@
-#NameDodecahedron
-#Type:Face_specified
-
-v 0 0 1.4012585
-v 0 0 -1.4012585
-v 0.17841104 -1.3090170 0.46708618
-v 0.17841104 1.3090170 0.46708618
-v 0.46708618 -0.80901699 -1.0444364
-v 0.46708618 0.80901699 -1.0444364
-v 1.0444364 -0.80901699 0.46708618
-v 1.0444364 0.80901699 0.46708618
-v -1.2228475 -0.5 0.46708618
-v -1.2228475 0.5 0.46708618
-v 1.2228475 -0.5 -0.46708618
-v 1.2228475 0.5 -0.46708618
-v -0.93417236 0 -1.0444364
-v -0.46708618 -0.80901699 1.0444364
-v -0.46708618 0.80901699 1.0444364
-v 0.93417236 0 1.0444364
-v -1.0444364 -0.80901699 -0.46708618
-v -1.0444364 0.80901699 -0.46708618
-v -0.17841104 -1.3090170 -0.46708618
-v -0.17841104 1.3090170 -0.46708618
-
-f 15 10 9 14 1
-f 2 6 12 11 5
-f 5 11 7 3 19
-f 11 12 8 16 7
-f 12 6 20 4 8
-f 6 2 13 18 20
-f 2 5 19 17 13
-f 4 20 18 10 15
-f 18 13 17 9 10
-f 17 19 3 14 9
-f 3 7 16 1 14
-f 16 8 4 15 1
+#NameDodecahedron
+#Type:Face_specified
+
+v 0 0 1.4012585
+v 0 0 -1.4012585
+v 0.17841104 -1.3090170 0.46708618
+v 0.17841104 1.3090170 0.46708618
+v 0.46708618 -0.80901699 -1.0444364
+v 0.46708618 0.80901699 -1.0444364
+v 1.0444364 -0.80901699 0.46708618
+v 1.0444364 0.80901699 0.46708618
+v -1.2228475 -0.5 0.46708618
+v -1.2228475 0.5 0.46708618
+v 1.2228475 -0.5 -0.46708618
+v 1.2228475 0.5 -0.46708618
+v -0.93417236 0 -1.0444364
+v -0.46708618 -0.80901699 1.0444364
+v -0.46708618 0.80901699 1.0444364
+v 0.93417236 0 1.0444364
+v -1.0444364 -0.80901699 -0.46708618
+v -1.0444364 0.80901699 -0.46708618
+v -0.17841104 -1.3090170 -0.46708618
+v -0.17841104 1.3090170 -0.46708618
+
+f 15 10 9 14 1
+f 2 6 12 11 5
+f 5 11 7 3 19
+f 11 12 8 16 7
+f 12 6 20 4 8
+f 6 2 13 18 20
+f 2 5 19 17 13
+f 4 20 18 10 15
+f 18 13 17 9 10
+f 17 19 3 14 9
+f 3 7 16 1 14
+f 16 8 4 15 1
diff --git a/share/extensions/Poly3DObjects/great_dodec.obj b/share/extensions/Poly3DObjects/great_dodec.obj
index 8feac9c6c..2d12f028e 100644
--- a/share/extensions/Poly3DObjects/great_dodec.obj
+++ b/share/extensions/Poly3DObjects/great_dodec.obj
@@ -1,96 +1,96 @@
-#Name:Great Dodecahedron
-#Type:Face_specified
-
-v 0. 0. -0.951057
-v 0. 0. 0.951057
-v -0.425325 -0.309017 -0.100406
-v -0.425325 0.309017 -0.100406
-v 0.425325 -0.309017 0.100406
-v 0.425325 0.309017 0.100406
-v -0.688191 -0.5 0.425325
-v -0.688191 0.5 0.425325
-v 0.688191 -0.5 -0.425325
-v 0.688191 0.5 -0.425325
-v -0.850651 0. -0.425325
-v 0.850651 0. 0.425325
-v -0.100406 -0.309017 0.425325
-v -0.100406 0.309017 0.425325
-v 0.100406 -0.309017 -0.425325
-v 0.100406 0.309017 -0.425325
-v -0.32492 0. 0.425325
-v -0.16246 -0.5 0.100406
-v -0.16246 0.5 0.100406
-v 0.16246 -0.5 -0.100406
-v 0.16246 0.5 -0.100406
-v 0.32492 0. -0.425325
-v -0.525731 0. 0.100406
-v -0.262866 -0.809017 -0.425325
-v -0.262866 0.190983 -0.425325
-v -0.262866 -0.190983 -0.425325
-v -0.262866 0.809017 -0.425325
-v 0.262866 -0.809017 0.425325
-v 0.262866 0.190983 0.425325
-v 0.262866 -0.190983 0.425325
-v 0.262866 0.809017 0.425325
-v 0.525731 0. -0.100406
-
-f 14 2 31
-f 14 31 8
-f 14 8 2
-f 17 2 8
-f 17 8 7
-f 17 7 2
-f 13 2 7
-f 13 7 28
-f 13 28 2
-f 30 2 28
-f 30 28 12
-f 30 12 2
-f 29 2 12
-f 29 12 31
-f 29 31 2
-f 15 9 24
-f 15 24 1
-f 15 1 9
-f 22 10 9
-f 22 9 1
-f 22 1 10
-f 16 27 10
-f 16 10 1
-f 16 1 27
-f 25 11 27
-f 25 27 1
-f 25 1 11
-f 26 24 11
-f 26 11 1
-f 26 1 24
-f 19 31 27
-f 19 27 8
-f 19 8 31
-f 23 8 11
-f 23 11 7
-f 23 7 8
-f 18 7 24
-f 18 24 28
-f 18 28 7
-f 5 28 9
-f 5 9 12
-f 5 12 28
-f 6 12 10
-f 6 10 31
-f 6 31 12
-f 20 9 28
-f 20 28 24
-f 20 24 9
-f 32 10 12
-f 32 12 9
-f 32 9 10
-f 21 27 31
-f 21 31 10
-f 21 10 27
-f 4 11 8
-f 4 8 27
-f 4 27 11
-f 3 24 7
-f 3 7 11
-f 3 11 24
+#Name:Great Dodecahedron
+#Type:Face_specified
+
+v 0. 0. -0.951057
+v 0. 0. 0.951057
+v -0.425325 -0.309017 -0.100406
+v -0.425325 0.309017 -0.100406
+v 0.425325 -0.309017 0.100406
+v 0.425325 0.309017 0.100406
+v -0.688191 -0.5 0.425325
+v -0.688191 0.5 0.425325
+v 0.688191 -0.5 -0.425325
+v 0.688191 0.5 -0.425325
+v -0.850651 0. -0.425325
+v 0.850651 0. 0.425325
+v -0.100406 -0.309017 0.425325
+v -0.100406 0.309017 0.425325
+v 0.100406 -0.309017 -0.425325
+v 0.100406 0.309017 -0.425325
+v -0.32492 0. 0.425325
+v -0.16246 -0.5 0.100406
+v -0.16246 0.5 0.100406
+v 0.16246 -0.5 -0.100406
+v 0.16246 0.5 -0.100406
+v 0.32492 0. -0.425325
+v -0.525731 0. 0.100406
+v -0.262866 -0.809017 -0.425325
+v -0.262866 0.190983 -0.425325
+v -0.262866 -0.190983 -0.425325
+v -0.262866 0.809017 -0.425325
+v 0.262866 -0.809017 0.425325
+v 0.262866 0.190983 0.425325
+v 0.262866 -0.190983 0.425325
+v 0.262866 0.809017 0.425325
+v 0.525731 0. -0.100406
+
+f 14 2 31
+f 14 31 8
+f 14 8 2
+f 17 2 8
+f 17 8 7
+f 17 7 2
+f 13 2 7
+f 13 7 28
+f 13 28 2
+f 30 2 28
+f 30 28 12
+f 30 12 2
+f 29 2 12
+f 29 12 31
+f 29 31 2
+f 15 9 24
+f 15 24 1
+f 15 1 9
+f 22 10 9
+f 22 9 1
+f 22 1 10
+f 16 27 10
+f 16 10 1
+f 16 1 27
+f 25 11 27
+f 25 27 1
+f 25 1 11
+f 26 24 11
+f 26 11 1
+f 26 1 24
+f 19 31 27
+f 19 27 8
+f 19 8 31
+f 23 8 11
+f 23 11 7
+f 23 7 8
+f 18 7 24
+f 18 24 28
+f 18 28 7
+f 5 28 9
+f 5 9 12
+f 5 12 28
+f 6 12 10
+f 6 10 31
+f 6 31 12
+f 20 9 28
+f 20 28 24
+f 20 24 9
+f 32 10 12
+f 32 12 9
+f 32 9 10
+f 21 27 31
+f 21 31 10
+f 21 10 27
+f 4 11 8
+f 4 8 27
+f 4 27 11
+f 3 24 7
+f 3 7 11
+f 3 11 24
diff --git a/share/extensions/Poly3DObjects/great_rhombicosidodec.obj b/share/extensions/Poly3DObjects/great_rhombicosidodec.obj
index 7dffdd757..88bdccc55 100644
--- a/share/extensions/Poly3DObjects/great_rhombicosidodec.obj
+++ b/share/extensions/Poly3DObjects/great_rhombicosidodec.obj
@@ -1,185 +1,185 @@
-#Name:Great Rhombicosidodecahedron
-#Type:face_specified
-v -1. -1.30902 -3.42705
-v -1. -1.30902 3.42705
-v -1. 1.30902 -3.42705
-v -1. 1.30902 3.42705
-v -0.5 -0.5 -3.73607
-v -0.5 -0.5 3.73607
-v -0.5 0.5 -3.73607
-v -0.5 0.5 3.73607
-v -0.5 -3.73607 -0.5
-v -0.5 -3.73607 0.5
-v -0.5 -2.11803 -3.11803
-v -0.5 -2.11803 3.11803
-v -0.5 3.73607 -0.5
-v -0.5 3.73607 0.5
-v -0.5 2.11803 -3.11803
-v -0.5 2.11803 3.11803
-v 0.5 -0.5 -3.73607
-v 0.5 -0.5 3.73607
-v 0.5 0.5 -3.73607
-v 0.5 0.5 3.73607
-v 0.5 -3.73607 -0.5
-v 0.5 -3.73607 0.5
-v 0.5 -2.11803 -3.11803
-v 0.5 -2.11803 3.11803
-v 0.5 3.73607 -0.5
-v 0.5 3.73607 0.5
-v 0.5 2.11803 -3.11803
-v 0.5 2.11803 3.11803
-v 1. -1.30902 -3.42705
-v 1. -1.30902 3.42705
-v 1. 1.30902 -3.42705
-v 1. 1.30902 3.42705
-v -3.42705 -1. -1.30902
-v -3.42705 -1. 1.30902
-v -3.42705 1. -1.30902
-v -3.42705 1. 1.30902
-v -2.92705 -1.80902 -1.61803
-v -2.92705 -1.80902 1.61803
-v -2.92705 1.80902 -1.61803
-v -2.92705 1.80902 1.61803
-v -1.80902 -1.61803 -2.92705
-v -1.80902 -1.61803 2.92705
-v -1.80902 1.61803 -2.92705
-v -1.80902 1.61803 2.92705
-v -1.30902 -3.42705 -1.
-v -1.30902 -3.42705 1.
-v -1.30902 -2.42705 -2.61803
-v -1.30902 -2.42705 2.61803
-v -1.30902 2.42705 -2.61803
-v -1.30902 2.42705 2.61803
-v -1.30902 3.42705 -1.
-v -1.30902 3.42705 1.
-v -2.61803 -1.30902 -2.42705
-v -2.61803 -1.30902 2.42705
-v -2.61803 1.30902 -2.42705
-v -2.61803 1.30902 2.42705
-v -3.73607 -0.5 -0.5
-v -3.73607 -0.5 0.5
-v -3.73607 0.5 -0.5
-v -3.73607 0.5 0.5
-v -1.61803 -2.92705 -1.80902
-v -1.61803 -2.92705 1.80902
-v -1.61803 2.92705 -1.80902
-v -1.61803 2.92705 1.80902
-v -3.11803 -0.5 -2.11803
-v -3.11803 -0.5 2.11803
-v -3.11803 0.5 -2.11803
-v -3.11803 0.5 2.11803
-v -2.11803 -3.11803 -0.5
-v -2.11803 -3.11803 0.5
-v -2.11803 3.11803 -0.5
-v -2.11803 3.11803 0.5
-v -2.42705 -2.61803 -1.30902
-v -2.42705 -2.61803 1.30902
-v -2.42705 2.61803 -1.30902
-v -2.42705 2.61803 1.30902
-v 1.61803 -2.92705 -1.80902
-v 1.61803 -2.92705 1.80902
-v 1.61803 2.92705 -1.80902
-v 1.61803 2.92705 1.80902
-v 2.42705 -2.61803 -1.30902
-v 2.42705 -2.61803 1.30902
-v 2.42705 2.61803 -1.30902
-v 2.42705 2.61803 1.30902
-v 3.73607 -0.5 -0.5
-v 3.73607 -0.5 0.5
-v 3.73607 0.5 -0.5
-v 3.73607 0.5 0.5
-v 2.11803 -3.11803 -0.5
-v 2.11803 -3.11803 0.5
-v 2.11803 3.11803 -0.5
-v 2.11803 3.11803 0.5
-v 1.30902 -3.42705 -1.
-v 1.30902 -3.42705 1.
-v 1.30902 -2.42705 -2.61803
-v 1.30902 -2.42705 2.61803
-v 1.30902 2.42705 -2.61803
-v 1.30902 2.42705 2.61803
-v 1.30902 3.42705 -1.
-v 1.30902 3.42705 1.
-v 2.61803 -1.30902 -2.42705
-v 2.61803 -1.30902 2.42705
-v 2.61803 1.30902 -2.42705
-v 2.61803 1.30902 2.42705
-v 3.11803 -0.5 -2.11803
-v 3.11803 -0.5 2.11803
-v 3.11803 0.5 -2.11803
-v 3.11803 0.5 2.11803
-v 1.80902 -1.61803 -2.92705
-v 1.80902 -1.61803 2.92705
-v 1.80902 1.61803 -2.92705
-v 1.80902 1.61803 2.92705
-v 2.92705 -1.80902 -1.61803
-v 2.92705 -1.80902 1.61803
-v 2.92705 1.80902 -1.61803
-v 2.92705 1.80902 1.61803
-v 3.42705 -1. -1.30902
-v 3.42705 -1. 1.30902
-v 3.42705 1. -1.30902
-v 3.42705 1. 1.30902
-
-f 2 6 8 4 44 56 68 66 54 42
-f 109 29 17 19 31 111 103 107 105 101
-f 24 30 18 6 2 12
-f 7 3 15 27 31 19
-f 58 57 33 37 73 69 70 74 38 34
-f 84 116 120 88 87 119 115 83 91 92
-f 90 89 81 113 117 85 86 118 114 82
-f 36 40 76 72 71 75 39 35 59 60
-f 5 17 29 23 11 1
-f 4 8 20 32 28 16
-f 67 55 43 3 7 5 1 41 53 65
-f 18 30 110 102 106 108 104 112 32 20
-f 79 83 115 103 111 97
-f 38 74 62 48 42 54
-f 4 16 50 44
-f 23 29 109 95
-f 96 110 30 24
-f 43 49 15 3
-f 53 41 47 61 73 37
-f 98 112 104 116 84 80
-f 69 45 9 10 46 70
-f 26 100 92 91 99 25
-f 82 114 102 110 96 78
-f 55 39 75 63 49 43
-f 1 11 47 41
-f 28 32 112 98
-f 61 47 11 23 95 77 93 21 9 45
-f 50 16 28 98 80 100 26 14 52 64
-f 97 111 31 27
-f 42 48 12 2
-f 44 50 64 76 40 56
-f 77 95 109 101 113 81
-f 63 51 13 25 99 79 97 27 15 49
-f 46 10 22 94 78 96 24 12 48 62
-f 52 14 13 51 71 72
-f 22 21 93 89 90 94
-f 115 119 107 103
-f 34 38 54 66
-f 71 51 63 75
-f 94 90 82 78
-f 114 118 106 102
-f 35 39 55 67
-f 70 46 62 74
-f 99 91 83 79
-f 65 53 37 33
-f 104 108 120 116
-f 77 81 89 93
-f 76 64 52 72
-f 59 35 67 65 33 57
-f 106 118 86 88 120 108
-f 68 56 40 36
-f 101 105 117 113
-f 80 84 92 100
-f 73 61 45 69
-f 34 66 68 36 60 58
-f 105 107 119 87 85 117
-f 7 19 17 5
-f 6 18 20 8
-f 14 26 25 13
-f 9 21 22 10
-f 58 60 59 57
-f 85 87 88 86
+#Name:Great Rhombicosidodecahedron
+#Type:face_specified
+v -1. -1.30902 -3.42705
+v -1. -1.30902 3.42705
+v -1. 1.30902 -3.42705
+v -1. 1.30902 3.42705
+v -0.5 -0.5 -3.73607
+v -0.5 -0.5 3.73607
+v -0.5 0.5 -3.73607
+v -0.5 0.5 3.73607
+v -0.5 -3.73607 -0.5
+v -0.5 -3.73607 0.5
+v -0.5 -2.11803 -3.11803
+v -0.5 -2.11803 3.11803
+v -0.5 3.73607 -0.5
+v -0.5 3.73607 0.5
+v -0.5 2.11803 -3.11803
+v -0.5 2.11803 3.11803
+v 0.5 -0.5 -3.73607
+v 0.5 -0.5 3.73607
+v 0.5 0.5 -3.73607
+v 0.5 0.5 3.73607
+v 0.5 -3.73607 -0.5
+v 0.5 -3.73607 0.5
+v 0.5 -2.11803 -3.11803
+v 0.5 -2.11803 3.11803
+v 0.5 3.73607 -0.5
+v 0.5 3.73607 0.5
+v 0.5 2.11803 -3.11803
+v 0.5 2.11803 3.11803
+v 1. -1.30902 -3.42705
+v 1. -1.30902 3.42705
+v 1. 1.30902 -3.42705
+v 1. 1.30902 3.42705
+v -3.42705 -1. -1.30902
+v -3.42705 -1. 1.30902
+v -3.42705 1. -1.30902
+v -3.42705 1. 1.30902
+v -2.92705 -1.80902 -1.61803
+v -2.92705 -1.80902 1.61803
+v -2.92705 1.80902 -1.61803
+v -2.92705 1.80902 1.61803
+v -1.80902 -1.61803 -2.92705
+v -1.80902 -1.61803 2.92705
+v -1.80902 1.61803 -2.92705
+v -1.80902 1.61803 2.92705
+v -1.30902 -3.42705 -1.
+v -1.30902 -3.42705 1.
+v -1.30902 -2.42705 -2.61803
+v -1.30902 -2.42705 2.61803
+v -1.30902 2.42705 -2.61803
+v -1.30902 2.42705 2.61803
+v -1.30902 3.42705 -1.
+v -1.30902 3.42705 1.
+v -2.61803 -1.30902 -2.42705
+v -2.61803 -1.30902 2.42705
+v -2.61803 1.30902 -2.42705
+v -2.61803 1.30902 2.42705
+v -3.73607 -0.5 -0.5
+v -3.73607 -0.5 0.5
+v -3.73607 0.5 -0.5
+v -3.73607 0.5 0.5
+v -1.61803 -2.92705 -1.80902
+v -1.61803 -2.92705 1.80902
+v -1.61803 2.92705 -1.80902
+v -1.61803 2.92705 1.80902
+v -3.11803 -0.5 -2.11803
+v -3.11803 -0.5 2.11803
+v -3.11803 0.5 -2.11803
+v -3.11803 0.5 2.11803
+v -2.11803 -3.11803 -0.5
+v -2.11803 -3.11803 0.5
+v -2.11803 3.11803 -0.5
+v -2.11803 3.11803 0.5
+v -2.42705 -2.61803 -1.30902
+v -2.42705 -2.61803 1.30902
+v -2.42705 2.61803 -1.30902
+v -2.42705 2.61803 1.30902
+v 1.61803 -2.92705 -1.80902
+v 1.61803 -2.92705 1.80902
+v 1.61803 2.92705 -1.80902
+v 1.61803 2.92705 1.80902
+v 2.42705 -2.61803 -1.30902
+v 2.42705 -2.61803 1.30902
+v 2.42705 2.61803 -1.30902
+v 2.42705 2.61803 1.30902
+v 3.73607 -0.5 -0.5
+v 3.73607 -0.5 0.5
+v 3.73607 0.5 -0.5
+v 3.73607 0.5 0.5
+v 2.11803 -3.11803 -0.5
+v 2.11803 -3.11803 0.5
+v 2.11803 3.11803 -0.5
+v 2.11803 3.11803 0.5
+v 1.30902 -3.42705 -1.
+v 1.30902 -3.42705 1.
+v 1.30902 -2.42705 -2.61803
+v 1.30902 -2.42705 2.61803
+v 1.30902 2.42705 -2.61803
+v 1.30902 2.42705 2.61803
+v 1.30902 3.42705 -1.
+v 1.30902 3.42705 1.
+v 2.61803 -1.30902 -2.42705
+v 2.61803 -1.30902 2.42705
+v 2.61803 1.30902 -2.42705
+v 2.61803 1.30902 2.42705
+v 3.11803 -0.5 -2.11803
+v 3.11803 -0.5 2.11803
+v 3.11803 0.5 -2.11803
+v 3.11803 0.5 2.11803
+v 1.80902 -1.61803 -2.92705
+v 1.80902 -1.61803 2.92705
+v 1.80902 1.61803 -2.92705
+v 1.80902 1.61803 2.92705
+v 2.92705 -1.80902 -1.61803
+v 2.92705 -1.80902 1.61803
+v 2.92705 1.80902 -1.61803
+v 2.92705 1.80902 1.61803
+v 3.42705 -1. -1.30902
+v 3.42705 -1. 1.30902
+v 3.42705 1. -1.30902
+v 3.42705 1. 1.30902
+
+f 2 6 8 4 44 56 68 66 54 42
+f 109 29 17 19 31 111 103 107 105 101
+f 24 30 18 6 2 12
+f 7 3 15 27 31 19
+f 58 57 33 37 73 69 70 74 38 34
+f 84 116 120 88 87 119 115 83 91 92
+f 90 89 81 113 117 85 86 118 114 82
+f 36 40 76 72 71 75 39 35 59 60
+f 5 17 29 23 11 1
+f 4 8 20 32 28 16
+f 67 55 43 3 7 5 1 41 53 65
+f 18 30 110 102 106 108 104 112 32 20
+f 79 83 115 103 111 97
+f 38 74 62 48 42 54
+f 4 16 50 44
+f 23 29 109 95
+f 96 110 30 24
+f 43 49 15 3
+f 53 41 47 61 73 37
+f 98 112 104 116 84 80
+f 69 45 9 10 46 70
+f 26 100 92 91 99 25
+f 82 114 102 110 96 78
+f 55 39 75 63 49 43
+f 1 11 47 41
+f 28 32 112 98
+f 61 47 11 23 95 77 93 21 9 45
+f 50 16 28 98 80 100 26 14 52 64
+f 97 111 31 27
+f 42 48 12 2
+f 44 50 64 76 40 56
+f 77 95 109 101 113 81
+f 63 51 13 25 99 79 97 27 15 49
+f 46 10 22 94 78 96 24 12 48 62
+f 52 14 13 51 71 72
+f 22 21 93 89 90 94
+f 115 119 107 103
+f 34 38 54 66
+f 71 51 63 75
+f 94 90 82 78
+f 114 118 106 102
+f 35 39 55 67
+f 70 46 62 74
+f 99 91 83 79
+f 65 53 37 33
+f 104 108 120 116
+f 77 81 89 93
+f 76 64 52 72
+f 59 35 67 65 33 57
+f 106 118 86 88 120 108
+f 68 56 40 36
+f 101 105 117 113
+f 80 84 92 100
+f 73 61 45 69
+f 34 66 68 36 60 58
+f 105 107 119 87 85 117
+f 7 19 17 5
+f 6 18 20 8
+f 14 26 25 13
+f 9 21 22 10
+f 58 60 59 57
+f 85 87 88 86
diff --git a/share/extensions/Poly3DObjects/great_rhombicuboct.obj b/share/extensions/Poly3DObjects/great_rhombicuboct.obj
index eb9bdb714..1ef7b4c79 100644
--- a/share/extensions/Poly3DObjects/great_rhombicuboct.obj
+++ b/share/extensions/Poly3DObjects/great_rhombicuboct.obj
@@ -1,77 +1,77 @@
-#Name:Great Rhombicuboctahedron
-#Type:face_specified
-v -0.5 1.20711 -1.91421
-v -0.5 1.20711 1.91421
-v -0.5 -1.20711 -1.91421
-v -0.5 -1.20711 1.91421
-v -0.5 -1.91421 1.20711
-v -0.5 -1.91421 -1.20711
-v -0.5 1.91421 1.20711
-v -0.5 1.91421 -1.20711
-v 0.5 1.20711 -1.91421
-v 0.5 1.20711 1.91421
-v 0.5 -1.20711 -1.91421
-v 0.5 -1.20711 1.91421
-v 0.5 -1.91421 1.20711
-v 0.5 -1.91421 -1.20711
-v 0.5 1.91421 1.20711
-v 0.5 1.91421 -1.20711
-v 1.20711 -0.5 -1.91421
-v 1.20711 -0.5 1.91421
-v 1.20711 0.5 -1.91421
-v 1.20711 0.5 1.91421
-v 1.20711 -1.91421 -0.5
-v 1.20711 -1.91421 0.5
-v 1.20711 1.91421 -0.5
-v 1.20711 1.91421 0.5
-v -1.20711 -0.5 -1.91421
-v -1.20711 -0.5 1.91421
-v -1.20711 0.5 -1.91421
-v -1.20711 0.5 1.91421
-v -1.20711 -1.91421 -0.5
-v -1.20711 -1.91421 0.5
-v -1.20711 1.91421 -0.5
-v -1.20711 1.91421 0.5
-v -1.91421 -0.5 1.20711
-v -1.91421 -0.5 -1.20711
-v -1.91421 0.5 1.20711
-v -1.91421 0.5 -1.20711
-v -1.91421 1.20711 -0.5
-v -1.91421 1.20711 0.5
-v -1.91421 -1.20711 -0.5
-v -1.91421 -1.20711 0.5
-v 1.91421 -0.5 1.20711
-v 1.91421 -0.5 -1.20711
-v 1.91421 0.5 1.20711
-v 1.91421 0.5 -1.20711
-v 1.91421 1.20711 -0.5
-v 1.91421 1.20711 0.5
-v 1.91421 -1.20711 -0.5
-v 1.91421 -1.20711 0.5
-
-f 44 42 17 19
-f 14 6 3 11
-f 34 36 27 25
-f 8 16 9 1
-f 20 18 41 43
-f 12 4 5 13
-f 26 28 35 33
-f 2 10 15 7
-f 45 23 24 46
-f 39 29 30 40
-f 48 22 21 47
-f 38 32 31 37
-f 9 19 17 11 3 25 27 1
-f 2 28 26 4 12 18 20 10
-f 41 48 47 42 44 45 46 43
-f 35 38 37 36 34 39 40 33
-f 15 24 23 16 8 31 32 7
-f 5 30 29 6 14 21 22 13
-f 46 24 15 10 20 43
-f 35 28 2 7 32 38
-f 41 18 12 13 22 48
-f 40 30 5 4 26 33
-f 44 19 9 16 23 45
-f 37 31 8 1 27 36
-f 47 21 14 11 17 42
-f 34 25 3 6 29 39
+#Name:Great Rhombicuboctahedron
+#Type:face_specified
+v -0.5 1.20711 -1.91421
+v -0.5 1.20711 1.91421
+v -0.5 -1.20711 -1.91421
+v -0.5 -1.20711 1.91421
+v -0.5 -1.91421 1.20711
+v -0.5 -1.91421 -1.20711
+v -0.5 1.91421 1.20711
+v -0.5 1.91421 -1.20711
+v 0.5 1.20711 -1.91421
+v 0.5 1.20711 1.91421
+v 0.5 -1.20711 -1.91421
+v 0.5 -1.20711 1.91421
+v 0.5 -1.91421 1.20711
+v 0.5 -1.91421 -1.20711
+v 0.5 1.91421 1.20711
+v 0.5 1.91421 -1.20711
+v 1.20711 -0.5 -1.91421
+v 1.20711 -0.5 1.91421
+v 1.20711 0.5 -1.91421
+v 1.20711 0.5 1.91421
+v 1.20711 -1.91421 -0.5
+v 1.20711 -1.91421 0.5
+v 1.20711 1.91421 -0.5
+v 1.20711 1.91421 0.5
+v -1.20711 -0.5 -1.91421
+v -1.20711 -0.5 1.91421
+v -1.20711 0.5 -1.91421
+v -1.20711 0.5 1.91421
+v -1.20711 -1.91421 -0.5
+v -1.20711 -1.91421 0.5
+v -1.20711 1.91421 -0.5
+v -1.20711 1.91421 0.5
+v -1.91421 -0.5 1.20711
+v -1.91421 -0.5 -1.20711
+v -1.91421 0.5 1.20711
+v -1.91421 0.5 -1.20711
+v -1.91421 1.20711 -0.5
+v -1.91421 1.20711 0.5
+v -1.91421 -1.20711 -0.5
+v -1.91421 -1.20711 0.5
+v 1.91421 -0.5 1.20711
+v 1.91421 -0.5 -1.20711
+v 1.91421 0.5 1.20711
+v 1.91421 0.5 -1.20711
+v 1.91421 1.20711 -0.5
+v 1.91421 1.20711 0.5
+v 1.91421 -1.20711 -0.5
+v 1.91421 -1.20711 0.5
+
+f 44 42 17 19
+f 14 6 3 11
+f 34 36 27 25
+f 8 16 9 1
+f 20 18 41 43
+f 12 4 5 13
+f 26 28 35 33
+f 2 10 15 7
+f 45 23 24 46
+f 39 29 30 40
+f 48 22 21 47
+f 38 32 31 37
+f 9 19 17 11 3 25 27 1
+f 2 28 26 4 12 18 20 10
+f 41 48 47 42 44 45 46 43
+f 35 38 37 36 34 39 40 33
+f 15 24 23 16 8 31 32 7
+f 5 30 29 6 14 21 22 13
+f 46 24 15 10 20 43
+f 35 28 2 7 32 38
+f 41 18 12 13 22 48
+f 40 30 5 4 26 33
+f 44 19 9 16 23 45
+f 37 31 8 1 27 36
+f 47 21 14 11 17 42
+f 34 25 3 6 29 39
diff --git a/share/extensions/Poly3DObjects/great_stel_dodec.obj b/share/extensions/Poly3DObjects/great_stel_dodec.obj
index 443abd5aa..b0e542996 100644
--- a/share/extensions/Poly3DObjects/great_stel_dodec.obj
+++ b/share/extensions/Poly3DObjects/great_stel_dodec.obj
@@ -1,96 +1,96 @@
-#Name:Great Stellated Dodecahedron
-#Type:face_specified
-
-v 0. 0. -0.951057
-v 0. 0. 0.951057
-v -0.425325 -1.30902 1.80171
-v -0.425325 1.30902 1.80171
-v 0.425325 -1.30902 -1.80171
-v 0.425325 1.30902 -1.80171
-v -0.688191 -0.5 0.425325
-v -0.688191 0.5 0.425325
-v -0.688191 -2.11803 0.425325
-v -0.688191 2.11803 0.425325
-v 0.688191 -0.5 -0.425325
-v 0.688191 0.5 -0.425325
-v 0.688191 -2.11803 -0.425325
-v 0.688191 2.11803 -0.425325
-v -0.850651 0. -0.425325
-v 0.850651 0. 0.425325
-v -1.11352 -0.809017 -1.80171
-v -1.11352 0.809017 -1.80171
-v 1.11352 -0.809017 1.80171
-v 1.11352 0.809017 1.80171
-v -1.80171 -1.30902 -0.425325
-v -1.80171 1.30902 -0.425325
-v 1.80171 -1.30902 0.425325
-v 1.80171 1.30902 0.425325
-v -2.22703 0. 0.425325
-v 2.22703 0. -0.425325
-v -0.262866 -0.809017 -0.425325
-v -0.262866 0.809017 -0.425325
-v 0.262866 -0.809017 0.425325
-v 0.262866 0.809017 0.425325
-v -1.37638 0. 1.80171
-v 1.37638 0. -1.80171
-
-f 4 2 30
-f 4 30 8
-f 4 8 2
-f 31 2 8
-f 31 8 7
-f 31 7 2
-f 3 2 7
-f 3 7 29
-f 3 29 2
-f 19 2 29
-f 19 29 16
-f 19 16 2
-f 20 2 16
-f 20 16 30
-f 20 30 2
-f 5 11 27
-f 5 27 1
-f 5 1 11
-f 32 12 11
-f 32 11 1
-f 32 1 12
-f 6 28 12
-f 6 12 1
-f 6 1 28
-f 18 15 28
-f 18 28 1
-f 18 1 15
-f 17 27 15
-f 17 15 1
-f 17 1 27
-f 10 30 28
-f 10 28 8
-f 10 8 30
-f 25 8 15
-f 25 15 7
-f 25 7 8
-f 9 7 27
-f 9 27 29
-f 9 29 7
-f 23 29 11
-f 23 11 16
-f 23 16 29
-f 24 16 12
-f 24 12 30
-f 24 30 16
-f 13 11 29
-f 13 29 27
-f 13 27 11
-f 26 12 16
-f 26 16 11
-f 26 11 12
-f 14 28 30
-f 14 30 12
-f 14 12 28
-f 22 15 8
-f 22 8 28
-f 22 28 15
-f 21 27 7
-f 21 7 15
-f 21 15 27
+#Name:Great Stellated Dodecahedron
+#Type:face_specified
+
+v 0. 0. -0.951057
+v 0. 0. 0.951057
+v -0.425325 -1.30902 1.80171
+v -0.425325 1.30902 1.80171
+v 0.425325 -1.30902 -1.80171
+v 0.425325 1.30902 -1.80171
+v -0.688191 -0.5 0.425325
+v -0.688191 0.5 0.425325
+v -0.688191 -2.11803 0.425325
+v -0.688191 2.11803 0.425325
+v 0.688191 -0.5 -0.425325
+v 0.688191 0.5 -0.425325
+v 0.688191 -2.11803 -0.425325
+v 0.688191 2.11803 -0.425325
+v -0.850651 0. -0.425325
+v 0.850651 0. 0.425325
+v -1.11352 -0.809017 -1.80171
+v -1.11352 0.809017 -1.80171
+v 1.11352 -0.809017 1.80171
+v 1.11352 0.809017 1.80171
+v -1.80171 -1.30902 -0.425325
+v -1.80171 1.30902 -0.425325
+v 1.80171 -1.30902 0.425325
+v 1.80171 1.30902 0.425325
+v -2.22703 0. 0.425325
+v 2.22703 0. -0.425325
+v -0.262866 -0.809017 -0.425325
+v -0.262866 0.809017 -0.425325
+v 0.262866 -0.809017 0.425325
+v 0.262866 0.809017 0.425325
+v -1.37638 0. 1.80171
+v 1.37638 0. -1.80171
+
+f 4 2 30
+f 4 30 8
+f 4 8 2
+f 31 2 8
+f 31 8 7
+f 31 7 2
+f 3 2 7
+f 3 7 29
+f 3 29 2
+f 19 2 29
+f 19 29 16
+f 19 16 2
+f 20 2 16
+f 20 16 30
+f 20 30 2
+f 5 11 27
+f 5 27 1
+f 5 1 11
+f 32 12 11
+f 32 11 1
+f 32 1 12
+f 6 28 12
+f 6 12 1
+f 6 1 28
+f 18 15 28
+f 18 28 1
+f 18 1 15
+f 17 27 15
+f 17 15 1
+f 17 1 27
+f 10 30 28
+f 10 28 8
+f 10 8 30
+f 25 8 15
+f 25 15 7
+f 25 7 8
+f 9 7 27
+f 9 27 29
+f 9 29 7
+f 23 29 11
+f 23 11 16
+f 23 16 29
+f 24 16 12
+f 24 12 30
+f 24 30 16
+f 13 11 29
+f 13 29 27
+f 13 27 11
+f 26 12 16
+f 26 16 11
+f 26 11 12
+f 14 28 30
+f 14 30 12
+f 14 12 28
+f 22 15 8
+f 22 8 28
+f 22 28 15
+f 21 27 7
+f 21 7 15
+f 21 15 27
diff --git a/share/extensions/Poly3DObjects/icos.obj b/share/extensions/Poly3DObjects/icos.obj
index d0e991a77..ed55ea4fc 100644
--- a/share/extensions/Poly3DObjects/icos.obj
+++ b/share/extensions/Poly3DObjects/icos.obj
@@ -1,36 +1,36 @@
-#Name:Icosahedron
-#Type:face_specified
-
-v 0 0 -0.95105652
-v 0 0 0.95105652
-v -0.85065081 0 -0.42532540
-v 0.85065081 0 0.42532540
-v 0.68819096 -0.50000000 -0.42532540
-v 0.68819096 0.50000000 -0.42532540
-v -0.68819096 -0.50000000 0.42532540
-v -0.68819096 0.50000000 0.42532540
-v -0.26286556 -0.80901699 -0.42532540
-v -0.26286556 0.80901699 -0.42532540
-v 0.26286556 -0.80901699 0.42532540
-v 0.26286556 0.80901699 0.42532540
-
-f 2 12 8
-f 2 8 7
-f 2 7 11
-f 2 11 4
-f 2 4 12
-f 5 9 1
-f 6 5 1
-f 10 6 1
-f 3 10 1
-f 9 3 1
-f 12 10 8
-f 8 3 7
-f 7 9 11
-f 11 5 4
-f 4 6 12
-f 5 11 9
-f 6 4 5
-f 10 12 6
-f 3 8 10
-f 9 7 3
+#Name:Icosahedron
+#Type:face_specified
+
+v 0 0 -0.95105652
+v 0 0 0.95105652
+v -0.85065081 0 -0.42532540
+v 0.85065081 0 0.42532540
+v 0.68819096 -0.50000000 -0.42532540
+v 0.68819096 0.50000000 -0.42532540
+v -0.68819096 -0.50000000 0.42532540
+v -0.68819096 0.50000000 0.42532540
+v -0.26286556 -0.80901699 -0.42532540
+v -0.26286556 0.80901699 -0.42532540
+v 0.26286556 -0.80901699 0.42532540
+v 0.26286556 0.80901699 0.42532540
+
+f 2 12 8
+f 2 8 7
+f 2 7 11
+f 2 11 4
+f 2 4 12
+f 5 9 1
+f 6 5 1
+f 10 6 1
+f 3 10 1
+f 9 3 1
+f 12 10 8
+f 8 3 7
+f 7 9 11
+f 11 5 4
+f 4 6 12
+f 5 11 9
+f 6 4 5
+f 10 12 6
+f 3 8 10
+f 9 7 3
diff --git a/share/extensions/Poly3DObjects/icosidodec.obj b/share/extensions/Poly3DObjects/icosidodec.obj
index a7489219b..961bec20f 100644
--- a/share/extensions/Poly3DObjects/icosidodec.obj
+++ b/share/extensions/Poly3DObjects/icosidodec.obj
@@ -1,65 +1,65 @@
-#Name:Icosidodecahedron
-#Type:face_specified
-v 0. -1.61803 0.
-v 0. 1.61803 0.
-v 0.262866 -0.809017 -1.37638
-v 0.262866 0.809017 -1.37638
-v 0.425325 -1.30902 0.850651
-v 0.425325 1.30902 0.850651
-v 0.688191 -0.5 1.37638
-v 0.688191 0.5 1.37638
-v 1.11352 -0.809017 -0.850651
-v 1.11352 0.809017 -0.850651
-v -1.37638 0. -0.850651
-v -0.688191 -0.5 -1.37638
-v -0.688191 0.5 -1.37638
-v 1.37638 0. 0.850651
-v 0.951057 -1.30902 0.
-v 0.951057 1.30902 0.
-v 0.850651 0. -1.37638
-v -0.951057 -1.30902 0.
-v -0.951057 1.30902 0.
-v -1.53884 -0.5 0.
-v -1.53884 0.5 0.
-v 1.53884 -0.5 0.
-v 1.53884 0.5 0.
-v -0.850651 0. 1.37638
-v -1.11352 -0.809017 0.850651
-v -1.11352 0.809017 0.850651
-v -0.425325 -1.30902 -0.850651
-v -0.425325 1.30902 -0.850651
-v -0.262866 -0.809017 1.37638
-v -0.262866 0.809017 1.37638
-
-f 30 24 29 7 8
-f 26 24 30
-f 25 29 24
-f 5 7 29
-f 14 8 7
-f 6 30 8
-f 16 2 6
-f 19 21 26
-f 20 18 25
-f 1 15 5
-f 22 23 14
-f 2 19 26 30 6
-f 21 20 25 24 26
-f 18 1 5 29 25
-f 15 22 14 7 5
-f 23 16 6 8 14
-f 12 13 4 17 3
-f 3 17 9
-f 17 4 10
-f 4 13 28
-f 13 12 11
-f 12 3 27
-f 27 1 18
-f 9 22 15
-f 10 16 23
-f 28 19 2
-f 11 20 21
-f 27 3 9 15 1
-f 9 17 10 23 22
-f 10 4 28 2 16
-f 28 13 11 21 19
-f 11 12 27 18 20
+#Name:Icosidodecahedron
+#Type:face_specified
+v 0. -1.61803 0.
+v 0. 1.61803 0.
+v 0.262866 -0.809017 -1.37638
+v 0.262866 0.809017 -1.37638
+v 0.425325 -1.30902 0.850651
+v 0.425325 1.30902 0.850651
+v 0.688191 -0.5 1.37638
+v 0.688191 0.5 1.37638
+v 1.11352 -0.809017 -0.850651
+v 1.11352 0.809017 -0.850651
+v -1.37638 0. -0.850651
+v -0.688191 -0.5 -1.37638
+v -0.688191 0.5 -1.37638
+v 1.37638 0. 0.850651
+v 0.951057 -1.30902 0.
+v 0.951057 1.30902 0.
+v 0.850651 0. -1.37638
+v -0.951057 -1.30902 0.
+v -0.951057 1.30902 0.
+v -1.53884 -0.5 0.
+v -1.53884 0.5 0.
+v 1.53884 -0.5 0.
+v 1.53884 0.5 0.
+v -0.850651 0. 1.37638
+v -1.11352 -0.809017 0.850651
+v -1.11352 0.809017 0.850651
+v -0.425325 -1.30902 -0.850651
+v -0.425325 1.30902 -0.850651
+v -0.262866 -0.809017 1.37638
+v -0.262866 0.809017 1.37638
+
+f 30 24 29 7 8
+f 26 24 30
+f 25 29 24
+f 5 7 29
+f 14 8 7
+f 6 30 8
+f 16 2 6
+f 19 21 26
+f 20 18 25
+f 1 15 5
+f 22 23 14
+f 2 19 26 30 6
+f 21 20 25 24 26
+f 18 1 5 29 25
+f 15 22 14 7 5
+f 23 16 6 8 14
+f 12 13 4 17 3
+f 3 17 9
+f 17 4 10
+f 4 13 28
+f 13 12 11
+f 12 3 27
+f 27 1 18
+f 9 22 15
+f 10 16 23
+f 28 19 2
+f 11 20 21
+f 27 3 9 15 1
+f 9 17 10 23 22
+f 10 4 28 2 16
+f 28 13 11 21 19
+f 11 12 27 18 20
diff --git a/share/extensions/Poly3DObjects/jessens_orthog_icos.obj b/share/extensions/Poly3DObjects/jessens_orthog_icos.obj
index b08b2c4d1..41aff7a62 100644
--- a/share/extensions/Poly3DObjects/jessens_orthog_icos.obj
+++ b/share/extensions/Poly3DObjects/jessens_orthog_icos.obj
@@ -1,35 +1,35 @@
-#Name:Jessen's Orthogonal Icosahedron
-#Type:face_specified
-v 0. -0.809017 0.5
-v 0. -0.809017 -0.5
-v 0. 0.809017 0.5
-v 0. 0.809017 -0.5
-v 0.5 0. -0.809017
-v 0.5 0. 0.809017
-v -0.5 0. -0.809017
-v -0.5 0. 0.809017
-v -0.809017 0.5 0.
-v -0.809017 -0.5 0.
-v 0.809017 0.5 0.
-v 0.809017 -0.5 0.
-
-f 3 1 6
-f 6 1 12
-f 6 12 5
-f 11 3 6
-f 6 5 11
-f 12 1 10
-f 12 10 2
-f 5 12 2
-f 3 11 9
-f 1 3 8
-f 8 10 1
-f 7 2 10
-f 10 8 7
-f 3 9 8
-f 7 8 9
-f 5 2 4
-f 2 7 4
-f 7 9 4
-f 4 9 11
+#Name:Jessen's Orthogonal Icosahedron
+#Type:face_specified
+v 0. -0.809017 0.5
+v 0. -0.809017 -0.5
+v 0. 0.809017 0.5
+v 0. 0.809017 -0.5
+v 0.5 0. -0.809017
+v 0.5 0. 0.809017
+v -0.5 0. -0.809017
+v -0.5 0. 0.809017
+v -0.809017 0.5 0.
+v -0.809017 -0.5 0.
+v 0.809017 0.5 0.
+v 0.809017 -0.5 0.
+
+f 3 1 6
+f 6 1 12
+f 6 12 5
+f 11 3 6
+f 6 5 11
+f 12 1 10
+f 12 10 2
+f 5 12 2
+f 3 11 9
+f 1 3 8
+f 8 10 1
+f 7 2 10
+f 10 8 7
+f 3 9 8
+f 7 8 9
+f 5 2 4
+f 2 7 4
+f 7 9 4
+f 4 9 11
f 5 4 11 \ No newline at end of file
diff --git a/share/extensions/Poly3DObjects/methane.obj b/share/extensions/Poly3DObjects/methane.obj
index 2a89979ab..0b2d74411 100644
--- a/share/extensions/Poly3DObjects/methane.obj
+++ b/share/extensions/Poly3DObjects/methane.obj
@@ -1,13 +1,13 @@
-#Name:Methane Molecule
-#Type:edge_specified
-
-v 0 0 0
-v 0 0 0.61237244
-v -0.28867513 -0.50000000 -0.20412415
-v -0.28867513 0.50000000 -0.20412415
-v 0.57735027 0 -0.20412415
-
-l 1 2
-l 1 3
-l 1 4
-l 1 5
+#Name:Methane Molecule
+#Type:edge_specified
+
+v 0 0 0
+v 0 0 0.61237244
+v -0.28867513 -0.50000000 -0.20412415
+v -0.28867513 0.50000000 -0.20412415
+v 0.57735027 0 -0.20412415
+
+l 1 2
+l 1 3
+l 1 4
+l 1 5
diff --git a/share/extensions/Poly3DObjects/oct.obj b/share/extensions/Poly3DObjects/oct.obj
index 3f98f6840..f356b6986 100644
--- a/share/extensions/Poly3DObjects/oct.obj
+++ b/share/extensions/Poly3DObjects/oct.obj
@@ -1,17 +1,17 @@
-#Name:Octahedron
-#Type:face_specified
-v -0.5 -0.5 0
-v -0.5 0.5 0
-v 0 0 -0.70710678
-v 0 0 0.70710678
-v 0.5 -0.5 0
-v 0.5 0.5 0
-
-f 4 5 6
-f 4 6 2
-f 4 2 1
-f 4 1 5
-f 5 1 3
-f 5 3 6
-f 3 1 2
-f 6 3 2
+#Name:Octahedron
+#Type:face_specified
+v -0.5 -0.5 0
+v -0.5 0.5 0
+v 0 0 -0.70710678
+v 0 0 0.70710678
+v 0.5 -0.5 0
+v 0.5 0.5 0
+
+f 4 5 6
+f 4 6 2
+f 4 2 1
+f 4 1 5
+f 5 1 3
+f 5 3 6
+f 3 1 2
+f 6 3 2
diff --git a/share/extensions/Poly3DObjects/rh_axes.obj b/share/extensions/Poly3DObjects/rh_axes.obj
index 23042c170..cc6623fc2 100644
--- a/share/extensions/Poly3DObjects/rh_axes.obj
+++ b/share/extensions/Poly3DObjects/rh_axes.obj
@@ -1,12 +1,12 @@
-#Name:Right Handed Coordinate Axes
-#Type:Edge_specified
-
-v 0 0 0
-v 1 0 0
-v 0 1 0
-v 0 0 1
-
-l 1 2
-l 1 3
-l 1 4
-
+#Name:Right Handed Coordinate Axes
+#Type:Edge_specified
+
+v 0 0 0
+v 1 0 0
+v 0 1 0
+v 0 0 1
+
+l 1 2
+l 1 3
+l 1 4
+
diff --git a/share/extensions/Poly3DObjects/rhomb_dodec.obj b/share/extensions/Poly3DObjects/rhomb_dodec.obj
index 353c6e6c0..9fde9d669 100644
--- a/share/extensions/Poly3DObjects/rhomb_dodec.obj
+++ b/share/extensions/Poly3DObjects/rhomb_dodec.obj
@@ -1,29 +1,29 @@
-#Name:Rhombic Dodecahedron
-#Type:face_specified
-v -0.816497 -0.816497 0.
-v -0.816497 0. -0.57735
-v -0.816497 0. 0.57735
-v -0.816497 0.816497 0.
-v 0. -0.816497 -0.57735
-v 0. -0.816497 0.57735
-v 0. 0. -1.1547
-v 0. 0. 1.1547
-v 0. 0.816497 -0.57735
-v 0. 0.816497 0.57735
-v 0.816497 -0.816497 0.
-v 0.816497 0. -0.57735
-v 0.816497 0. 0.57735
-v 0.816497 0.816497 0.
-
-f 2 1 3 4
-f 1 2 7 5
-f 6 8 3 1
-f 2 4 9 7
-f 8 10 4 3
-f 11 6 1 5
-f 9 4 10 14
-f 5 7 12 11
-f 11 13 8 6
-f 7 9 14 12
-f 13 14 10 8
+#Name:Rhombic Dodecahedron
+#Type:face_specified
+v -0.816497 -0.816497 0.
+v -0.816497 0. -0.57735
+v -0.816497 0. 0.57735
+v -0.816497 0.816497 0.
+v 0. -0.816497 -0.57735
+v 0. -0.816497 0.57735
+v 0. 0. -1.1547
+v 0. 0. 1.1547
+v 0. 0.816497 -0.57735
+v 0. 0.816497 0.57735
+v 0.816497 -0.816497 0.
+v 0.816497 0. -0.57735
+v 0.816497 0. 0.57735
+v 0.816497 0.816497 0.
+
+f 2 1 3 4
+f 1 2 7 5
+f 6 8 3 1
+f 2 4 9 7
+f 8 10 4 3
+f 11 6 1 5
+f 9 4 10 14
+f 5 7 12 11
+f 11 13 8 6
+f 7 9 14 12
+f 13 14 10 8
f 14 13 11 12 \ No newline at end of file
diff --git a/share/extensions/Poly3DObjects/rhomb_triacont.obj b/share/extensions/Poly3DObjects/rhomb_triacont.obj
index 9fd85d07f..70acebf54 100644
--- a/share/extensions/Poly3DObjects/rhomb_triacont.obj
+++ b/share/extensions/Poly3DObjects/rhomb_triacont.obj
@@ -1,65 +1,65 @@
-#Name:Rhombic Triacontahedron
-#Type:face_specified
-v 0. 0. -1.61803
-v 0. 0. 1.61803
-v 0.276393 -0.850651 1.17082
-v 0.276393 0.850651 1.17082
-v 0.894427 0. 1.17082
-v 1.17082 -0.850651 0.723607
-v 1.17082 -0.850651 -0.276393
-v 1.17082 0.850651 0.723607
-v 1.17082 0.850651 -0.276393
-v -0.894427 0. -1.17082
-v -0.447214 -1.37638 0.723607
-v -0.447214 -1.37638 -0.276393
-v -0.447214 1.37638 0.723607
-v -0.447214 1.37638 -0.276393
-v 0.447214 -1.37638 0.276393
-v 0.447214 -1.37638 -0.723607
-v 0.447214 1.37638 0.276393
-v 0.447214 1.37638 -0.723607
-v -1.44721 0. 0.723607
-v -1.44721 0. -0.276393
-v -0.723607 -0.525731 1.17082
-v -0.723607 0.525731 1.17082
-v 0.723607 -0.525731 -1.17082
-v 0.723607 0.525731 -1.17082
-v 1.44721 0. 0.276393
-v 1.44721 0. -0.723607
-v -1.17082 -0.850651 0.276393
-v -1.17082 -0.850651 -0.723607
-v -1.17082 0.850651 0.276393
-v -1.17082 0.850651 -0.723607
-v -0.276393 -0.850651 -1.17082
-v -0.276393 0.850651 -1.17082
-
-f 16 15 11 12
-f 14 13 17 18
-f 10 28 20 30
-f 8 5 6 25
-f 12 28 31 16
-f 32 30 14 18
-f 6 3 11 15
-f 8 17 13 4
-f 11 21 19 27
-f 13 29 19 22
-f 7 16 23 26
-f 24 18 9 26
-f 12 11 27 28
-f 30 29 13 14
-f 7 6 15 16
-f 18 17 8 9
-f 2 22 19 21
-f 23 1 24 26
-f 3 2 21 11
-f 4 13 22 2
-f 16 31 1 23
-f 1 32 18 24
-f 31 28 10 1
-f 10 30 32 1
-f 6 5 2 3
-f 8 4 2 5
-f 28 27 19 20
-f 20 19 29 30
-f 26 25 6 7
-f 9 8 25 26
+#Name:Rhombic Triacontahedron
+#Type:face_specified
+v 0. 0. -1.61803
+v 0. 0. 1.61803
+v 0.276393 -0.850651 1.17082
+v 0.276393 0.850651 1.17082
+v 0.894427 0. 1.17082
+v 1.17082 -0.850651 0.723607
+v 1.17082 -0.850651 -0.276393
+v 1.17082 0.850651 0.723607
+v 1.17082 0.850651 -0.276393
+v -0.894427 0. -1.17082
+v -0.447214 -1.37638 0.723607
+v -0.447214 -1.37638 -0.276393
+v -0.447214 1.37638 0.723607
+v -0.447214 1.37638 -0.276393
+v 0.447214 -1.37638 0.276393
+v 0.447214 -1.37638 -0.723607
+v 0.447214 1.37638 0.276393
+v 0.447214 1.37638 -0.723607
+v -1.44721 0. 0.723607
+v -1.44721 0. -0.276393
+v -0.723607 -0.525731 1.17082
+v -0.723607 0.525731 1.17082
+v 0.723607 -0.525731 -1.17082
+v 0.723607 0.525731 -1.17082
+v 1.44721 0. 0.276393
+v 1.44721 0. -0.723607
+v -1.17082 -0.850651 0.276393
+v -1.17082 -0.850651 -0.723607
+v -1.17082 0.850651 0.276393
+v -1.17082 0.850651 -0.723607
+v -0.276393 -0.850651 -1.17082
+v -0.276393 0.850651 -1.17082
+
+f 16 15 11 12
+f 14 13 17 18
+f 10 28 20 30
+f 8 5 6 25
+f 12 28 31 16
+f 32 30 14 18
+f 6 3 11 15
+f 8 17 13 4
+f 11 21 19 27
+f 13 29 19 22
+f 7 16 23 26
+f 24 18 9 26
+f 12 11 27 28
+f 30 29 13 14
+f 7 6 15 16
+f 18 17 8 9
+f 2 22 19 21
+f 23 1 24 26
+f 3 2 21 11
+f 4 13 22 2
+f 16 31 1 23
+f 1 32 18 24
+f 31 28 10 1
+f 10 30 32 1
+f 6 5 2 3
+f 8 4 2 5
+f 28 27 19 20
+f 20 19 29 30
+f 26 25 6 7
+f 9 8 25 26
diff --git a/share/extensions/Poly3DObjects/small_rhombicosidodec.obj b/share/extensions/Poly3DObjects/small_rhombicosidodec.obj
index 94cb91ce7..a209ba2c2 100644
--- a/share/extensions/Poly3DObjects/small_rhombicosidodec.obj
+++ b/share/extensions/Poly3DObjects/small_rhombicosidodec.obj
@@ -1,127 +1,127 @@
-#Name:Small Rhombicosidodecahedron
-#Type:face_specified
-
-v -0.5 -0.5 -2.11803
-v -0.5 -0.5 2.11803
-v -0.5 0.5 -2.11803
-v -0.5 0.5 2.11803
-v -0.5 -2.11803 -0.5
-v -0.5 -2.11803 0.5
-v -0.5 2.11803 -0.5
-v -0.5 2.11803 0.5
-v 0. -1.30902 -1.80902
-v 0. -1.30902 1.80902
-v 0. 1.30902 -1.80902
-v 0. 1.30902 1.80902
-v 0.5 -0.5 -2.11803
-v 0.5 -0.5 2.11803
-v 0.5 0.5 -2.11803
-v 0.5 0.5 2.11803
-v 0.5 -2.11803 -0.5
-v 0.5 -2.11803 0.5
-v 0.5 2.11803 -0.5
-v 0.5 2.11803 0.5
-v -1.80902 0. -1.30902
-v -1.80902 0. 1.30902
-v -0.809017 -1.61803 -1.30902
-v -0.809017 -1.61803 1.30902
-v -0.809017 1.61803 -1.30902
-v -0.809017 1.61803 1.30902
-v -1.61803 -1.30902 -0.809017
-v -1.61803 -1.30902 0.809017
-v -1.61803 1.30902 -0.809017
-v -1.61803 1.30902 0.809017
-v -2.11803 -0.5 -0.5
-v -2.11803 -0.5 0.5
-v -2.11803 0.5 -0.5
-v -2.11803 0.5 0.5
-v -1.30902 -1.80902 0.
-v -1.30902 -0.809017 -1.61803
-v -1.30902 -0.809017 1.61803
-v -1.30902 0.809017 -1.61803
-v -1.30902 0.809017 1.61803
-v -1.30902 1.80902 0.
-v 0.809017 -1.61803 -1.30902
-v 0.809017 -1.61803 1.30902
-v 0.809017 1.61803 -1.30902
-v 0.809017 1.61803 1.30902
-v 1.61803 -1.30902 -0.809017
-v 1.61803 -1.30902 0.809017
-v 1.61803 1.30902 -0.809017
-v 1.61803 1.30902 0.809017
-v 2.11803 -0.5 -0.5
-v 2.11803 -0.5 0.5
-v 2.11803 0.5 -0.5
-v 2.11803 0.5 0.5
-v 1.30902 -1.80902 0.
-v 1.30902 -0.809017 -1.61803
-v 1.30902 -0.809017 1.61803
-v 1.30902 0.809017 -1.61803
-v 1.30902 0.809017 1.61803
-v 1.30902 1.80902 0.
-v 1.80902 0. -1.30902
-v 1.80902 0. 1.30902
-
-f 36 23 27
-f 37 28 24
-f 40 8 7
-f 35 5 6
-f 38 29 25
-f 39 26 30
-f 10 14 2
-f 9 1 13
-f 12 4 16
-f 11 15 3
-f 54 45 41
-f 55 42 46
-f 58 19 20
-f 53 18 17
-f 56 43 47
-f 57 48 44
-f 34 32 22
-f 33 21 31
-f 59 51 49
-f 60 50 52
-f 27 31 21 36
-f 23 36 1 9
-f 10 2 37 24
-f 37 22 32 28
-f 8 40 30 26
-f 25 29 40 7
-f 35 27 23 5
-f 6 24 28 35
-f 3 38 25 11
-f 21 33 29 38
-f 39 30 34 22
-f 12 26 39 4
-f 55 14 10 42
-f 41 9 13 54
-f 57 44 12 16
-f 15 11 43 56
-f 45 54 59 49
-f 50 60 55 46
-f 48 58 20 44
-f 43 19 58 47
-f 53 17 41 45
-f 46 42 18 53
-f 59 56 47 51
-f 52 48 57 60
-f 31 32 34 33
-f 17 18 6 5
-f 1 3 15 13
-f 14 16 4 2
-f 7 8 20 19
-f 51 52 50 49
-f 3 1 36 21 38
-f 22 37 2 4 39
-f 29 33 34 30 40
-f 27 35 28 32 31
-f 42 10 24 6 18
-f 41 17 5 23 9
-f 20 8 26 12 44
-f 11 25 7 19 43
-f 56 59 54 13 15
-f 57 16 14 55 60
-f 58 48 52 51 47
-f 49 50 46 53 45
-
+#Name:Small Rhombicosidodecahedron
+#Type:face_specified
+
+v -0.5 -0.5 -2.11803
+v -0.5 -0.5 2.11803
+v -0.5 0.5 -2.11803
+v -0.5 0.5 2.11803
+v -0.5 -2.11803 -0.5
+v -0.5 -2.11803 0.5
+v -0.5 2.11803 -0.5
+v -0.5 2.11803 0.5
+v 0. -1.30902 -1.80902
+v 0. -1.30902 1.80902
+v 0. 1.30902 -1.80902
+v 0. 1.30902 1.80902
+v 0.5 -0.5 -2.11803
+v 0.5 -0.5 2.11803
+v 0.5 0.5 -2.11803
+v 0.5 0.5 2.11803
+v 0.5 -2.11803 -0.5
+v 0.5 -2.11803 0.5
+v 0.5 2.11803 -0.5
+v 0.5 2.11803 0.5
+v -1.80902 0. -1.30902
+v -1.80902 0. 1.30902
+v -0.809017 -1.61803 -1.30902
+v -0.809017 -1.61803 1.30902
+v -0.809017 1.61803 -1.30902
+v -0.809017 1.61803 1.30902
+v -1.61803 -1.30902 -0.809017
+v -1.61803 -1.30902 0.809017
+v -1.61803 1.30902 -0.809017
+v -1.61803 1.30902 0.809017
+v -2.11803 -0.5 -0.5
+v -2.11803 -0.5 0.5
+v -2.11803 0.5 -0.5
+v -2.11803 0.5 0.5
+v -1.30902 -1.80902 0.
+v -1.30902 -0.809017 -1.61803
+v -1.30902 -0.809017 1.61803
+v -1.30902 0.809017 -1.61803
+v -1.30902 0.809017 1.61803
+v -1.30902 1.80902 0.
+v 0.809017 -1.61803 -1.30902
+v 0.809017 -1.61803 1.30902
+v 0.809017 1.61803 -1.30902
+v 0.809017 1.61803 1.30902
+v 1.61803 -1.30902 -0.809017
+v 1.61803 -1.30902 0.809017
+v 1.61803 1.30902 -0.809017
+v 1.61803 1.30902 0.809017
+v 2.11803 -0.5 -0.5
+v 2.11803 -0.5 0.5
+v 2.11803 0.5 -0.5
+v 2.11803 0.5 0.5
+v 1.30902 -1.80902 0.
+v 1.30902 -0.809017 -1.61803
+v 1.30902 -0.809017 1.61803
+v 1.30902 0.809017 -1.61803
+v 1.30902 0.809017 1.61803
+v 1.30902 1.80902 0.
+v 1.80902 0. -1.30902
+v 1.80902 0. 1.30902
+
+f 36 23 27
+f 37 28 24
+f 40 8 7
+f 35 5 6
+f 38 29 25
+f 39 26 30
+f 10 14 2
+f 9 1 13
+f 12 4 16
+f 11 15 3
+f 54 45 41
+f 55 42 46
+f 58 19 20
+f 53 18 17
+f 56 43 47
+f 57 48 44
+f 34 32 22
+f 33 21 31
+f 59 51 49
+f 60 50 52
+f 27 31 21 36
+f 23 36 1 9
+f 10 2 37 24
+f 37 22 32 28
+f 8 40 30 26
+f 25 29 40 7
+f 35 27 23 5
+f 6 24 28 35
+f 3 38 25 11
+f 21 33 29 38
+f 39 30 34 22
+f 12 26 39 4
+f 55 14 10 42
+f 41 9 13 54
+f 57 44 12 16
+f 15 11 43 56
+f 45 54 59 49
+f 50 60 55 46
+f 48 58 20 44
+f 43 19 58 47
+f 53 17 41 45
+f 46 42 18 53
+f 59 56 47 51
+f 52 48 57 60
+f 31 32 34 33
+f 17 18 6 5
+f 1 3 15 13
+f 14 16 4 2
+f 7 8 20 19
+f 51 52 50 49
+f 3 1 36 21 38
+f 22 37 2 4 39
+f 29 33 34 30 40
+f 27 35 28 32 31
+f 42 10 24 6 18
+f 41 17 5 23 9
+f 20 8 26 12 44
+f 11 25 7 19 43
+f 56 59 54 13 15
+f 57 16 14 55 60
+f 58 48 52 51 47
+f 49 50 46 53 45
+
diff --git a/share/extensions/Poly3DObjects/small_rhombicuboct.obj b/share/extensions/Poly3DObjects/small_rhombicuboct.obj
index 24da8f4a3..2d064aba8 100644
--- a/share/extensions/Poly3DObjects/small_rhombicuboct.obj
+++ b/share/extensions/Poly3DObjects/small_rhombicuboct.obj
@@ -1,54 +1,54 @@
-#Name:Small Rhombicuboctahedron
-#Type:face_specified
-
-v -0.5 -0.5 -1.20711
-v -0.5 -0.5 1.20711
-v -0.5 0.5 -1.20711
-v -0.5 0.5 1.20711
-v -0.5 -1.20711 -0.5
-v -0.5 -1.20711 0.5
-v -0.5 1.20711 -0.5
-v -0.5 1.20711 0.5
-v 0.5 -0.5 -1.20711
-v 0.5 -0.5 1.20711
-v 0.5 0.5 -1.20711
-v 0.5 0.5 1.20711
-v 0.5 -1.20711 -0.5
-v 0.5 -1.20711 0.5
-v 0.5 1.20711 -0.5
-v 0.5 1.20711 0.5
-v -1.20711 -0.5 -0.5
-v -1.20711 -0.5 0.5
-v -1.20711 0.5 -0.5
-v -1.20711 0.5 0.5
-v 1.20711 -0.5 -0.5
-v 1.20711 -0.5 0.5
-v 1.20711 0.5 -0.5
-v 1.20711 0.5 0.5
-
-f 3 11 9 1
-f 2 10 12 4
-f 24 22 21 23
-f 19 17 18 20
-f 5 13 14 6
-f 8 16 15 7
-f 13 21 22 14
-f 16 24 23 15
-f 6 18 17 5
-f 7 19 20 8
-f 6 14 10 2
-f 4 12 16 8
-f 22 24 12 10
-f 2 4 20 18
-f 1 9 13 5
-f 7 15 11 3
-f 9 11 23 21
-f 17 19 3 1
-f 22 10 14
-f 16 12 24
-f 6 2 18
-f 20 4 8
-f 13 9 21
-f 23 11 15
-f 17 1 5
-f 7 3 19
+#Name:Small Rhombicuboctahedron
+#Type:face_specified
+
+v -0.5 -0.5 -1.20711
+v -0.5 -0.5 1.20711
+v -0.5 0.5 -1.20711
+v -0.5 0.5 1.20711
+v -0.5 -1.20711 -0.5
+v -0.5 -1.20711 0.5
+v -0.5 1.20711 -0.5
+v -0.5 1.20711 0.5
+v 0.5 -0.5 -1.20711
+v 0.5 -0.5 1.20711
+v 0.5 0.5 -1.20711
+v 0.5 0.5 1.20711
+v 0.5 -1.20711 -0.5
+v 0.5 -1.20711 0.5
+v 0.5 1.20711 -0.5
+v 0.5 1.20711 0.5
+v -1.20711 -0.5 -0.5
+v -1.20711 -0.5 0.5
+v -1.20711 0.5 -0.5
+v -1.20711 0.5 0.5
+v 1.20711 -0.5 -0.5
+v 1.20711 -0.5 0.5
+v 1.20711 0.5 -0.5
+v 1.20711 0.5 0.5
+
+f 3 11 9 1
+f 2 10 12 4
+f 24 22 21 23
+f 19 17 18 20
+f 5 13 14 6
+f 8 16 15 7
+f 13 21 22 14
+f 16 24 23 15
+f 6 18 17 5
+f 7 19 20 8
+f 6 14 10 2
+f 4 12 16 8
+f 22 24 12 10
+f 2 4 20 18
+f 1 9 13 5
+f 7 15 11 3
+f 9 11 23 21
+f 17 19 3 1
+f 22 10 14
+f 16 12 24
+f 6 2 18
+f 20 4 8
+f 13 9 21
+f 23 11 15
+f 17 1 5
+f 7 3 19
diff --git a/share/extensions/Poly3DObjects/small_triam_icos.obj b/share/extensions/Poly3DObjects/small_triam_icos.obj
index d7094cc8e..1d366ff25 100644
--- a/share/extensions/Poly3DObjects/small_triam_icos.obj
+++ b/share/extensions/Poly3DObjects/small_triam_icos.obj
@@ -1,95 +1,95 @@
-#Name:Small Triambic Icosahedron
-#Type:face_specified
-v 0. 0. -0.951057
-v 0. 0. 0.951057
-v 0.262866 -0.809017 0.425325
-v 0.262866 0.809017 0.425325
-v 0.688191 -0.5 -0.425325
-v 0.688191 0.5 -0.425325
-v 0.995959 0. -0.190211
-v -0.688191 -0.5 0.425325
-v -0.688191 0.5 0.425325
-v -0.49798 -0.361803 -0.805748
-v -0.49798 0.361803 -0.805748
-v 0.49798 -0.361803 0.805748
-v 0.49798 0.361803 0.805748
-v 0.190211 -0.58541 -0.805748
-v 0.190211 0.58541 -0.805748
-v 0.850651 0. 0.425325
-v -0.190211 -0.58541 0.805748
-v -0.190211 0.58541 0.805748
-v -0.615537 0. 0.805748
-v -0.307768 -0.947214 0.190211
-v -0.307768 0.947214 0.190211
-v 0.307768 -0.947214 -0.190211
-v 0.307768 0.947214 -0.190211
-v 0.615537 0. -0.805748
-v 0.805748 -0.58541 0.190211
-v 0.805748 0.58541 0.190211
-v -0.850651 0. -0.425325
-v -0.262866 -0.809017 -0.425325
-v -0.262866 0.809017 -0.425325
-v -0.995959 0. 0.190211
-v -0.805748 -0.58541 -0.190211
-v -0.805748 0.58541 -0.190211
-
-f 18 2 4
-f 18 4 9
-f 18 9 2
-f 19 2 9
-f 19 9 8
-f 19 8 2
-f 17 2 8
-f 17 8 3
-f 17 3 2
-f 12 2 3
-f 12 3 16
-f 12 16 2
-f 13 2 16
-f 13 16 4
-f 13 4 2
-f 14 5 28
-f 14 28 1
-f 14 1 5
-f 24 6 5
-f 24 5 1
-f 24 1 6
-f 15 29 6
-f 15 6 1
-f 15 1 29
-f 11 27 29
-f 11 29 1
-f 11 1 27
-f 10 28 27
-f 10 27 1
-f 10 1 28
-f 21 4 29
-f 21 29 9
-f 21 9 4
-f 30 9 27
-f 30 27 8
-f 30 8 9
-f 20 8 28
-f 20 28 3
-f 20 3 8
-f 25 3 5
-f 25 5 16
-f 25 16 3
-f 26 16 6
-f 26 6 4
-f 26 4 16
-f 22 5 3
-f 22 3 28
-f 22 28 5
-f 7 6 16
-f 7 16 5
-f 7 5 6
-f 23 29 4
-f 23 4 6
-f 23 6 29
-f 32 27 9
-f 32 9 29
-f 32 29 27
-f 31 28 8
-f 31 8 27
-f 31 27 28
+#Name:Small Triambic Icosahedron
+#Type:face_specified
+v 0. 0. -0.951057
+v 0. 0. 0.951057
+v 0.262866 -0.809017 0.425325
+v 0.262866 0.809017 0.425325
+v 0.688191 -0.5 -0.425325
+v 0.688191 0.5 -0.425325
+v 0.995959 0. -0.190211
+v -0.688191 -0.5 0.425325
+v -0.688191 0.5 0.425325
+v -0.49798 -0.361803 -0.805748
+v -0.49798 0.361803 -0.805748
+v 0.49798 -0.361803 0.805748
+v 0.49798 0.361803 0.805748
+v 0.190211 -0.58541 -0.805748
+v 0.190211 0.58541 -0.805748
+v 0.850651 0. 0.425325
+v -0.190211 -0.58541 0.805748
+v -0.190211 0.58541 0.805748
+v -0.615537 0. 0.805748
+v -0.307768 -0.947214 0.190211
+v -0.307768 0.947214 0.190211
+v 0.307768 -0.947214 -0.190211
+v 0.307768 0.947214 -0.190211
+v 0.615537 0. -0.805748
+v 0.805748 -0.58541 0.190211
+v 0.805748 0.58541 0.190211
+v -0.850651 0. -0.425325
+v -0.262866 -0.809017 -0.425325
+v -0.262866 0.809017 -0.425325
+v -0.995959 0. 0.190211
+v -0.805748 -0.58541 -0.190211
+v -0.805748 0.58541 -0.190211
+
+f 18 2 4
+f 18 4 9
+f 18 9 2
+f 19 2 9
+f 19 9 8
+f 19 8 2
+f 17 2 8
+f 17 8 3
+f 17 3 2
+f 12 2 3
+f 12 3 16
+f 12 16 2
+f 13 2 16
+f 13 16 4
+f 13 4 2
+f 14 5 28
+f 14 28 1
+f 14 1 5
+f 24 6 5
+f 24 5 1
+f 24 1 6
+f 15 29 6
+f 15 6 1
+f 15 1 29
+f 11 27 29
+f 11 29 1
+f 11 1 27
+f 10 28 27
+f 10 27 1
+f 10 1 28
+f 21 4 29
+f 21 29 9
+f 21 9 4
+f 30 9 27
+f 30 27 8
+f 30 8 9
+f 20 8 28
+f 20 28 3
+f 20 3 8
+f 25 3 5
+f 25 5 16
+f 25 16 3
+f 26 16 6
+f 26 6 4
+f 26 4 16
+f 22 5 3
+f 22 3 28
+f 22 28 5
+f 7 6 16
+f 7 16 5
+f 7 5 6
+f 23 29 4
+f 23 4 6
+f 23 6 29
+f 32 27 9
+f 32 9 29
+f 32 29 27
+f 31 28 8
+f 31 8 27
+f 31 27 28
diff --git a/share/extensions/Poly3DObjects/snub_cube.obj b/share/extensions/Poly3DObjects/snub_cube.obj
index d144c7e36..de018af23 100644
--- a/share/extensions/Poly3DObjects/snub_cube.obj
+++ b/share/extensions/Poly3DObjects/snub_cube.obj
@@ -1,65 +1,65 @@
-#Name:Snub Cube
-#Type:face_specified
-v -1.1426135 -0.33775397 -0.62122641
-v -1.1426135 0.33775397 0.62122641
-v -1.1426135 -0.62122641 0.33775397
-v -1.1426135 0.62122641 -0.33775397
-v 1.1426135 -0.33775397 0.62122641
-v 1.1426135 0.33775397 -0.62122641
-v 1.1426135 -0.62122641 -0.33775397
-v 1.1426135 0.62122641 0.33775397
-v -0.33775397 -1.1426135 0.62122641
-v -0.33775397 1.1426135 -0.62122641
-v -0.33775397 -0.62122641 -1.1426135
-v -0.33775397 0.62122641 1.1426135
-v 0.33775397 -1.1426135 -0.62122641
-v 0.33775397 1.1426135 0.62122641
-v 0.33775397 -0.62122641 1.1426135
-v 0.33775397 0.62122641 -1.1426135
-v -0.62122641 -1.1426135 -0.33775397
-v -0.62122641 1.1426135 0.33775397
-v -0.62122641 -0.33775397 1.1426135
-v -0.62122641 0.33775397 -1.1426135
-v 0.62122641 -1.1426135 0.33775397
-v 0.62122641 1.1426135 -0.33775397
-v 0.62122641 -0.33775397 -1.1426135
-v 0.62122641 0.33775397 1.1426135
-
-f 3 1 17
-f 3 17 9
-f 3 19 2
-f 3 9 19
-f 1 4 20
-f 1 20 11
-f 1 11 17
-f 2 19 12
-f 2 18 4
-f 2 12 18
-f 4 18 10
-f 4 10 20
-f 17 11 13
-f 19 9 15
-f 18 12 14
-f 20 10 16
-f 9 21 15
-f 11 23 13
-f 12 24 14
-f 10 22 16
-f 13 23 7
-f 13 7 21
-f 15 21 5
-f 15 5 24
-f 16 22 6
-f 16 6 23
-f 14 24 8
-f 14 8 22
-f 21 7 5
-f 23 6 7
-f 24 5 8
-f 22 8 6
-f 1 3 2 4
-f 21 9 17 13
-f 24 12 19 15
-f 10 18 14 22
-f 11 20 16 23
-f 8 5 7 6
+#Name:Snub Cube
+#Type:face_specified
+v -1.1426135 -0.33775397 -0.62122641
+v -1.1426135 0.33775397 0.62122641
+v -1.1426135 -0.62122641 0.33775397
+v -1.1426135 0.62122641 -0.33775397
+v 1.1426135 -0.33775397 0.62122641
+v 1.1426135 0.33775397 -0.62122641
+v 1.1426135 -0.62122641 -0.33775397
+v 1.1426135 0.62122641 0.33775397
+v -0.33775397 -1.1426135 0.62122641
+v -0.33775397 1.1426135 -0.62122641
+v -0.33775397 -0.62122641 -1.1426135
+v -0.33775397 0.62122641 1.1426135
+v 0.33775397 -1.1426135 -0.62122641
+v 0.33775397 1.1426135 0.62122641
+v 0.33775397 -0.62122641 1.1426135
+v 0.33775397 0.62122641 -1.1426135
+v -0.62122641 -1.1426135 -0.33775397
+v -0.62122641 1.1426135 0.33775397
+v -0.62122641 -0.33775397 1.1426135
+v -0.62122641 0.33775397 -1.1426135
+v 0.62122641 -1.1426135 0.33775397
+v 0.62122641 1.1426135 -0.33775397
+v 0.62122641 -0.33775397 -1.1426135
+v 0.62122641 0.33775397 1.1426135
+
+f 3 1 17
+f 3 17 9
+f 3 19 2
+f 3 9 19
+f 1 4 20
+f 1 20 11
+f 1 11 17
+f 2 19 12
+f 2 18 4
+f 2 12 18
+f 4 18 10
+f 4 10 20
+f 17 11 13
+f 19 9 15
+f 18 12 14
+f 20 10 16
+f 9 21 15
+f 11 23 13
+f 12 24 14
+f 10 22 16
+f 13 23 7
+f 13 7 21
+f 15 21 5
+f 15 5 24
+f 16 22 6
+f 16 6 23
+f 14 24 8
+f 14 8 22
+f 21 7 5
+f 23 6 7
+f 24 5 8
+f 22 8 6
+f 1 3 2 4
+f 21 9 17 13
+f 24 12 19 15
+f 10 18 14 22
+f 11 20 16 23
+f 8 5 7 6
diff --git a/share/extensions/Poly3DObjects/snub_dodec.obj b/share/extensions/Poly3DObjects/snub_dodec.obj
index 8dfbda342..d8309789b 100644
--- a/share/extensions/Poly3DObjects/snub_dodec.obj
+++ b/share/extensions/Poly3DObjects/snub_dodec.obj
@@ -1,156 +1,156 @@
-#Name:Snub Dodecahedron
-#Type:face_specified
-
-v -2.0502159 -0.64302961 0.17539263
-v 2.0502159 -0.64302961 -0.17539263
-v -1.6450691 0.64302961 1.2360806
-v 1.6450691 0.64302961 -1.2360806
-v -2.0927544 0.33092102 0.39812710
-v 2.0927544 0.33092102 -0.39812710
-v -1.3329632 1.6469179 -0.39812710
-v 1.3329632 1.6469179 0.39812710
-v -1.8252651 -0.33092102 1.0984232
-v 1.8252651 -0.33092102 -1.0984232
-v -0.62604653 1.7461864 -1.0984232
-v 0.62604653 1.7461864 1.0984232
-v -1.0622158 1.4540242 1.1853886
-v 1.0622158 1.4540242 -1.1853886
-v -1.9321359 0.84755005 -0.44288192
-v 1.9321359 0.84755005 0.44288192
-v -1.1448745 -0.84755005 1.6181953
-v 1.1448745 -0.84755005 -1.6181953
-v -1.5819879 -1.4540242 -0.17539263
-v 1.5819879 -1.4540242 0.17539263
-v -1.0574124 0.37482166 -1.8409298
-v 1.0574124 0.37482166 1.8409298
-v -0.43913786 -0.37482166 -2.0770897
-v 0.43913786 -0.37482166 2.0770897
-v -1.5624104 -1.2495038 0.80327387
-v 1.5624104 -1.2495038 -0.80327387
-v -1.8633072 -0.72833518 -0.80327387
-v 1.8633072 -0.72833518 0.80327387
-v -1.7000678 1.2495038 0.44288192
-v 1.7000678 1.2495038 -0.44288192
-v -0.72811404 -1.6469179 1.1853886
-v 0.72811404 -1.6469179 -1.1853886
-v -0.26565458 -1.7461864 -1.2360806
-v 0.26565458 -1.7461864 1.2360806
-v -0.75979117 -1.9778390 -0.39812710
-v 0.75979117 -1.9778390 0.39812710
-v -1.1992186 -1.4152654 -1.0984232
-v 1.1992186 -1.4152654 1.0984232
-v -1.7903298 0.19289371 -1.1853886
-v 1.7903298 0.19289371 1.1853886
-v -1.3064371 -0.56771537 -1.6181953
-v 1.3064371 -0.56771537 1.6181953
-v -0.85331128 0.72833518 1.8409298
-v 0.85331128 0.72833518 -1.8409298
-v -1.3794145 1.1031568 -1.2360806
-v 1.3794145 1.1031568 1.2360806
-v -0.10503615 0.56771537 -2.0770897
-v 0.10503615 0.56771537 2.0770897
-v -0.46822796 2.0970538 -0.17539263
-v 0.46822796 2.0970538 0.17539263
-v -0.30089684 1.9778390 0.80327387
-v 0.30089684 1.9778390 -0.80327387
-v -0.16156263 1.4152654 1.6181953
-v 0.16156263 1.4152654 -1.6181953
-v -0.54417401 -0.19289371 2.0770897
-v 0.54417401 -0.19289371 -2.0770897
-v -0.23206810 -2.0970538 0.44288192
-v 0.23206810 -2.0970538 -0.44288192
-v -0.20410113 -1.1031568 1.8409298
-v 0.20410113 -1.1031568 -1.8409298
-
-f 5 1 9
-f 5 9 3
-f 5 29 15
-f 5 3 29
-f 1 27 19
-f 1 19 25
-f 1 25 9
-f 15 29 7
-f 15 45 39
-f 15 7 45
-f 27 39 41
-f 27 41 37
-f 27 37 19
-f 9 25 17
-f 39 45 21
-f 39 21 41
-f 29 3 13
-f 3 43 13
-f 19 37 35
-f 25 31 17
-f 45 7 11
-f 7 49 11
-f 41 21 23
-f 37 33 35
-f 17 31 59
-f 17 59 55
-f 13 43 53
-f 13 53 51
-f 21 47 23
-f 43 55 48
-f 43 48 53
-f 35 33 58
-f 35 58 57
-f 31 57 34
-f 31 34 59
-f 11 49 52
-f 11 52 54
-f 55 59 24
-f 55 24 48
-f 49 51 50
-f 49 50 52
-f 23 47 56
-f 23 56 60
-f 51 53 12
-f 51 12 50
-f 33 60 32
-f 33 32 58
-f 57 58 36
-f 57 36 34
-f 47 54 44
-f 47 44 56
-f 48 24 22
-f 54 52 14
-f 54 14 44
-f 60 56 18
-f 60 18 32
-f 34 36 38
-f 24 42 22
-f 50 12 8
-f 12 46 8
-f 32 18 26
-f 36 20 38
-f 44 14 4
-f 22 42 40
-f 22 40 46
-f 14 30 4
-f 18 10 26
-f 38 20 28
-f 38 28 42
-f 42 28 40
-f 8 46 16
-f 8 16 30
-f 46 40 16
-f 26 10 2
-f 26 2 20
-f 20 2 28
-f 4 30 6
-f 4 6 10
-f 30 16 6
-f 10 6 2
-f 39 27 1 5 15
-f 3 9 17 55 43
-f 51 49 7 29 13
-f 57 31 25 19 35
-f 47 21 45 11 54
-f 33 37 41 23 60
-f 42 24 59 34 38
-f 46 12 53 48 22
-f 36 58 32 26 20
-f 14 52 50 8 30
-f 44 4 10 18 56
-f 16 40 28 2 6
+#Name:Snub Dodecahedron
+#Type:face_specified
+
+v -2.0502159 -0.64302961 0.17539263
+v 2.0502159 -0.64302961 -0.17539263
+v -1.6450691 0.64302961 1.2360806
+v 1.6450691 0.64302961 -1.2360806
+v -2.0927544 0.33092102 0.39812710
+v 2.0927544 0.33092102 -0.39812710
+v -1.3329632 1.6469179 -0.39812710
+v 1.3329632 1.6469179 0.39812710
+v -1.8252651 -0.33092102 1.0984232
+v 1.8252651 -0.33092102 -1.0984232
+v -0.62604653 1.7461864 -1.0984232
+v 0.62604653 1.7461864 1.0984232
+v -1.0622158 1.4540242 1.1853886
+v 1.0622158 1.4540242 -1.1853886
+v -1.9321359 0.84755005 -0.44288192
+v 1.9321359 0.84755005 0.44288192
+v -1.1448745 -0.84755005 1.6181953
+v 1.1448745 -0.84755005 -1.6181953
+v -1.5819879 -1.4540242 -0.17539263
+v 1.5819879 -1.4540242 0.17539263
+v -1.0574124 0.37482166 -1.8409298
+v 1.0574124 0.37482166 1.8409298
+v -0.43913786 -0.37482166 -2.0770897
+v 0.43913786 -0.37482166 2.0770897
+v -1.5624104 -1.2495038 0.80327387
+v 1.5624104 -1.2495038 -0.80327387
+v -1.8633072 -0.72833518 -0.80327387
+v 1.8633072 -0.72833518 0.80327387
+v -1.7000678 1.2495038 0.44288192
+v 1.7000678 1.2495038 -0.44288192
+v -0.72811404 -1.6469179 1.1853886
+v 0.72811404 -1.6469179 -1.1853886
+v -0.26565458 -1.7461864 -1.2360806
+v 0.26565458 -1.7461864 1.2360806
+v -0.75979117 -1.9778390 -0.39812710
+v 0.75979117 -1.9778390 0.39812710
+v -1.1992186 -1.4152654 -1.0984232
+v 1.1992186 -1.4152654 1.0984232
+v -1.7903298 0.19289371 -1.1853886
+v 1.7903298 0.19289371 1.1853886
+v -1.3064371 -0.56771537 -1.6181953
+v 1.3064371 -0.56771537 1.6181953
+v -0.85331128 0.72833518 1.8409298
+v 0.85331128 0.72833518 -1.8409298
+v -1.3794145 1.1031568 -1.2360806
+v 1.3794145 1.1031568 1.2360806
+v -0.10503615 0.56771537 -2.0770897
+v 0.10503615 0.56771537 2.0770897
+v -0.46822796 2.0970538 -0.17539263
+v 0.46822796 2.0970538 0.17539263
+v -0.30089684 1.9778390 0.80327387
+v 0.30089684 1.9778390 -0.80327387
+v -0.16156263 1.4152654 1.6181953
+v 0.16156263 1.4152654 -1.6181953
+v -0.54417401 -0.19289371 2.0770897
+v 0.54417401 -0.19289371 -2.0770897
+v -0.23206810 -2.0970538 0.44288192
+v 0.23206810 -2.0970538 -0.44288192
+v -0.20410113 -1.1031568 1.8409298
+v 0.20410113 -1.1031568 -1.8409298
+
+f 5 1 9
+f 5 9 3
+f 5 29 15
+f 5 3 29
+f 1 27 19
+f 1 19 25
+f 1 25 9
+f 15 29 7
+f 15 45 39
+f 15 7 45
+f 27 39 41
+f 27 41 37
+f 27 37 19
+f 9 25 17
+f 39 45 21
+f 39 21 41
+f 29 3 13
+f 3 43 13
+f 19 37 35
+f 25 31 17
+f 45 7 11
+f 7 49 11
+f 41 21 23
+f 37 33 35
+f 17 31 59
+f 17 59 55
+f 13 43 53
+f 13 53 51
+f 21 47 23
+f 43 55 48
+f 43 48 53
+f 35 33 58
+f 35 58 57
+f 31 57 34
+f 31 34 59
+f 11 49 52
+f 11 52 54
+f 55 59 24
+f 55 24 48
+f 49 51 50
+f 49 50 52
+f 23 47 56
+f 23 56 60
+f 51 53 12
+f 51 12 50
+f 33 60 32
+f 33 32 58
+f 57 58 36
+f 57 36 34
+f 47 54 44
+f 47 44 56
+f 48 24 22
+f 54 52 14
+f 54 14 44
+f 60 56 18
+f 60 18 32
+f 34 36 38
+f 24 42 22
+f 50 12 8
+f 12 46 8
+f 32 18 26
+f 36 20 38
+f 44 14 4
+f 22 42 40
+f 22 40 46
+f 14 30 4
+f 18 10 26
+f 38 20 28
+f 38 28 42
+f 42 28 40
+f 8 46 16
+f 8 16 30
+f 46 40 16
+f 26 10 2
+f 26 2 20
+f 20 2 28
+f 4 30 6
+f 4 6 10
+f 30 16 6
+f 10 6 2
+f 39 27 1 5 15
+f 3 9 17 55 43
+f 51 49 7 29 13
+f 57 31 25 19 35
+f 47 21 45 11 54
+f 33 37 41 23 60
+f 42 24 59 34 38
+f 46 12 53 48 22
+f 36 58 32 26 20
+f 14 52 50 8 30
+f 44 4 10 18 56
+f 16 40 28 2 6
diff --git a/share/extensions/Poly3DObjects/szilassi.obj b/share/extensions/Poly3DObjects/szilassi.obj
index 00639b85b..9dbce05a6 100644
--- a/share/extensions/Poly3DObjects/szilassi.obj
+++ b/share/extensions/Poly3DObjects/szilassi.obj
@@ -1,24 +1,24 @@
-#Face:Szilassi Polyhedron
-#Type:face_specified
-v -4.8 0. 4.8
-v -2.8 -1. 0.8
-v -2.8 0. 0.8
-v -1.8 1. 0.8
-v -1.5 -1.5 -1.2
-v -0.8 2. -3.2
-v 0. -5.04 -4.8
-v 0. 5.04 -4.8
-v 0.8 -2. -3.2
-v 1.5 1.5 -1.2
-v 1.8 -1. 0.8
-v 2.8 0. 0.8
-v 2.8 1. 0.8
-v 4.8 0. 4.8
-
-f 4 10 6 1 14 13
-f 3 2 1 6 8 7
-f 5 10 4 3 7 9
-f 10 5 11 12 8 6
-f 12 13 14 9 7 8
-f 11 5 9 14 1 2
-f 13 12 11 2 3 4
+#Face:Szilassi Polyhedron
+#Type:face_specified
+v -4.8 0. 4.8
+v -2.8 -1. 0.8
+v -2.8 0. 0.8
+v -1.8 1. 0.8
+v -1.5 -1.5 -1.2
+v -0.8 2. -3.2
+v 0. -5.04 -4.8
+v 0. 5.04 -4.8
+v 0.8 -2. -3.2
+v 1.5 1.5 -1.2
+v 1.8 -1. 0.8
+v 2.8 0. 0.8
+v 2.8 1. 0.8
+v 4.8 0. 4.8
+
+f 4 10 6 1 14 13
+f 3 2 1 6 8 7
+f 5 10 4 3 7 9
+f 10 5 11 12 8 6
+f 12 13 14 9 7 8
+f 11 5 9 14 1 2
+f 13 12 11 2 3 4
diff --git a/share/extensions/Poly3DObjects/tet.obj b/share/extensions/Poly3DObjects/tet.obj
index 75d90ff96..3bd8f0ea4 100644
--- a/share/extensions/Poly3DObjects/tet.obj
+++ b/share/extensions/Poly3DObjects/tet.obj
@@ -1,12 +1,12 @@
-#Name:Tetrahedron
-#Type:face_specified
-
-v 0 0 0.61237244
-v -0.28867513 -0.50000000 -0.20412415
-v -0.28867513 0.50000000 -0.20412415
-v 0.57735027 0 -0.20412415
-
-f 2 3 4
-f 3 2 1
-f 4 1 2
-f 1 4 3
+#Name:Tetrahedron
+#Type:face_specified
+
+v 0 0 0.61237244
+v -0.28867513 -0.50000000 -0.20412415
+v -0.28867513 0.50000000 -0.20412415
+v 0.57735027 0 -0.20412415
+
+f 2 3 4
+f 3 2 1
+f 4 1 2
+f 1 4 3
diff --git a/share/extensions/Poly3DObjects/trunc_cube.obj b/share/extensions/Poly3DObjects/trunc_cube.obj
index 59ce6d07e..1dbcfa60b 100644
--- a/share/extensions/Poly3DObjects/trunc_cube.obj
+++ b/share/extensions/Poly3DObjects/trunc_cube.obj
@@ -1,42 +1,42 @@
-#Name:Truncated Cube
-#Type:face_specified
-
-v -0.5 1.2071068 1.2071068
-v -0.5 1.2071068 -1.2071068
-v -0.5 -1.2071068 1.2071068
-v -0.5 -1.2071068 -1.2071068
-v 0.5 1.2071068 1.2071068
-v 0.5 1.2071068 -1.2071068
-v 0.5 -1.2071068 1.2071068
-v 0.5 -1.2071068 -1.2071068
-v 1.2071068 -0.5 1.2071068
-v 1.2071068 -0.5 -1.2071068
-v 1.2071068 0.5 1.2071068
-v 1.2071068 0.5 -1.2071068
-v 1.2071068 1.2071068 -0.5
-v 1.2071068 1.2071068 0.5
-v 1.2071068 -1.2071068 -0.5
-v 1.2071068 -1.2071068 0.5
-v -1.2071068 -0.5 1.2071068
-v -1.2071068 -0.5 -1.2071068
-v -1.2071068 0.5 1.2071068
-v -1.2071068 0.5 -1.2071068
-v -1.2071068 1.2071068 -0.5
-v -1.2071068 1.2071068 0.5
-v -1.2071068 -1.2071068 -0.5
-v -1.2071068 -1.2071068 0.5
-
-f 6 12 10 8 4 18 20 2
-f 1 19 17 3 7 9 11 5
-f 3 24 23 4 8 15 16 7
-f 5 14 13 6 2 21 22 1
-f 9 16 15 10 12 13 14 11
-f 19 22 21 20 18 23 24 17
-f 16 9 7
-f 5 11 14
-f 3 17 24
-f 22 19 1
-f 8 10 15
-f 13 12 6
-f 23 18 4
-f 2 20 21
+#Name:Truncated Cube
+#Type:face_specified
+
+v -0.5 1.2071068 1.2071068
+v -0.5 1.2071068 -1.2071068
+v -0.5 -1.2071068 1.2071068
+v -0.5 -1.2071068 -1.2071068
+v 0.5 1.2071068 1.2071068
+v 0.5 1.2071068 -1.2071068
+v 0.5 -1.2071068 1.2071068
+v 0.5 -1.2071068 -1.2071068
+v 1.2071068 -0.5 1.2071068
+v 1.2071068 -0.5 -1.2071068
+v 1.2071068 0.5 1.2071068
+v 1.2071068 0.5 -1.2071068
+v 1.2071068 1.2071068 -0.5
+v 1.2071068 1.2071068 0.5
+v 1.2071068 -1.2071068 -0.5
+v 1.2071068 -1.2071068 0.5
+v -1.2071068 -0.5 1.2071068
+v -1.2071068 -0.5 -1.2071068
+v -1.2071068 0.5 1.2071068
+v -1.2071068 0.5 -1.2071068
+v -1.2071068 1.2071068 -0.5
+v -1.2071068 1.2071068 0.5
+v -1.2071068 -1.2071068 -0.5
+v -1.2071068 -1.2071068 0.5
+
+f 6 12 10 8 4 18 20 2
+f 1 19 17 3 7 9 11 5
+f 3 24 23 4 8 15 16 7
+f 5 14 13 6 2 21 22 1
+f 9 16 15 10 12 13 14 11
+f 19 22 21 20 18 23 24 17
+f 16 9 7
+f 5 11 14
+f 3 17 24
+f 22 19 1
+f 8 10 15
+f 13 12 6
+f 23 18 4
+f 2 20 21
diff --git a/share/extensions/Poly3DObjects/trunc_dodec.obj b/share/extensions/Poly3DObjects/trunc_dodec.obj
index 1e21c798e..9a5743afe 100644
--- a/share/extensions/Poly3DObjects/trunc_dodec.obj
+++ b/share/extensions/Poly3DObjects/trunc_dodec.obj
@@ -1,96 +1,96 @@
-#Name:Truncated Dodecahedron
-#Type:face_specified
-
-v 0 -1.6180340 2.4898983
-v 0 -1.6180340 -2.4898983
-v 0 1.6180340 2.4898983
-v 0 1.6180340 -2.4898983
-v 0.42532540 -2.9270510 0.26286556
-v 0.42532540 2.9270510 0.26286556
-v 0.68819096 -2.1180340 1.9641672
-v 0.68819096 2.1180340 1.9641672
-v -2.7527638 0 -1.1135164
-v -2.0645729 -2.1180340 0.26286556
-v -2.0645729 2.1180340 0.26286556
-v -1.3763819 -2.6180340 -0.26286556
-v -1.3763819 2.6180340 -0.26286556
-v -0.68819096 -2.1180340 -1.9641672
-v -0.68819096 2.1180340 -1.9641672
-v 1.3763819 -2.6180340 0.26286556
-v 1.3763819 2.6180340 0.26286556
-v 2.7527638 0 1.1135164
-v 1.8017073 -1.3090170 -1.9641672
-v 1.8017073 1.3090170 -1.9641672
-v 2.0645729 -2.1180340 -0.26286556
-v 2.0645729 2.1180340 -0.26286556
-v 2.2270327 0 1.9641672
-v 2.2270327 -1.6180340 -1.1135164
-v 2.2270327 1.6180340 -1.1135164
-v -2.6523581 -1.3090170 0.26286556
-v -2.6523581 1.3090170 0.26286556
-v 2.6523581 -1.3090170 -0.26286556
-v 2.6523581 1.3090170 -0.26286556
-v 2.9152237 -0.5 0.26286556
-v 2.9152237 0.5 0.26286556
-v -2.9152237 -0.5 -0.26286556
-v -2.9152237 0.5 -0.26286556
-v 0.95105652 -1.3090170 2.4898983
-v 0.95105652 -1.3090170 -2.4898983
-v 0.95105652 1.3090170 2.4898983
-v 0.95105652 1.3090170 -2.4898983
-v 0.85065081 -2.6180340 1.1135164
-v 0.85065081 2.6180340 1.1135164
-v -0.95105652 -1.3090170 2.4898983
-v -0.95105652 -1.3090170 -2.4898983
-v -0.95105652 1.3090170 2.4898983
-v -0.95105652 1.3090170 -2.4898983
-v -1.5388418 -0.5 2.4898983
-v -1.5388418 -0.5 -2.4898983
-v -1.5388418 0.5 2.4898983
-v -1.5388418 0.5 -2.4898983
-v 1.5388418 -0.5 2.4898983
-v 1.5388418 -0.5 -2.4898983
-v 1.5388418 0.5 2.4898983
-v 1.5388418 0.5 -2.4898983
-v -2.2270327 0 -1.9641672
-v -2.2270327 -1.6180340 1.1135164
-v -2.2270327 1.6180340 1.1135164
-v -0.85065081 -2.6180340 -1.1135164
-v -0.85065081 2.6180340 -1.1135164
-v -1.8017073 -1.3090170 1.9641672
-v -1.8017073 1.3090170 1.9641672
-v -0.42532540 -2.9270510 -0.26286556
-v -0.42532540 2.9270510 -0.26286556
-
-f 3 42 46 44 40 1 34 48 50 36
-f 47 43 4 37 51 49 35 2 41 45
-f 2 35 19 24 21 16 5 59 55 14
-f 49 51 20 25 29 31 30 28 24 19
-f 37 4 15 56 60 6 17 22 25 20
-f 43 47 52 9 33 27 11 13 56 15
-f 45 41 14 55 12 10 26 32 9 52
-f 6 60 13 11 54 58 42 3 8 39
-f 27 33 32 26 53 57 44 46 58 54
-f 10 12 59 5 38 7 1 40 57 53
-f 16 21 28 30 18 23 48 34 7 38
-f 31 29 22 17 39 8 36 50 23 18
-f 9 32 33
-f 18 30 31
-f 47 45 52
-f 50 48 23
-f 10 53 26
-f 27 54 11
-f 21 24 28
-f 29 25 22
-f 40 44 57
-f 58 46 42
-f 35 49 19
-f 20 51 37
-f 12 55 59
-f 60 56 13
-f 41 2 14
-f 15 4 43
-f 34 1 7
-f 8 3 36
-f 38 5 16
-f 17 6 39
+#Name:Truncated Dodecahedron
+#Type:face_specified
+
+v 0 -1.6180340 2.4898983
+v 0 -1.6180340 -2.4898983
+v 0 1.6180340 2.4898983
+v 0 1.6180340 -2.4898983
+v 0.42532540 -2.9270510 0.26286556
+v 0.42532540 2.9270510 0.26286556
+v 0.68819096 -2.1180340 1.9641672
+v 0.68819096 2.1180340 1.9641672
+v -2.7527638 0 -1.1135164
+v -2.0645729 -2.1180340 0.26286556
+v -2.0645729 2.1180340 0.26286556
+v -1.3763819 -2.6180340 -0.26286556
+v -1.3763819 2.6180340 -0.26286556
+v -0.68819096 -2.1180340 -1.9641672
+v -0.68819096 2.1180340 -1.9641672
+v 1.3763819 -2.6180340 0.26286556
+v 1.3763819 2.6180340 0.26286556
+v 2.7527638 0 1.1135164
+v 1.8017073 -1.3090170 -1.9641672
+v 1.8017073 1.3090170 -1.9641672
+v 2.0645729 -2.1180340 -0.26286556
+v 2.0645729 2.1180340 -0.26286556
+v 2.2270327 0 1.9641672
+v 2.2270327 -1.6180340 -1.1135164
+v 2.2270327 1.6180340 -1.1135164
+v -2.6523581 -1.3090170 0.26286556
+v -2.6523581 1.3090170 0.26286556
+v 2.6523581 -1.3090170 -0.26286556
+v 2.6523581 1.3090170 -0.26286556
+v 2.9152237 -0.5 0.26286556
+v 2.9152237 0.5 0.26286556
+v -2.9152237 -0.5 -0.26286556
+v -2.9152237 0.5 -0.26286556
+v 0.95105652 -1.3090170 2.4898983
+v 0.95105652 -1.3090170 -2.4898983
+v 0.95105652 1.3090170 2.4898983
+v 0.95105652 1.3090170 -2.4898983
+v 0.85065081 -2.6180340 1.1135164
+v 0.85065081 2.6180340 1.1135164
+v -0.95105652 -1.3090170 2.4898983
+v -0.95105652 -1.3090170 -2.4898983
+v -0.95105652 1.3090170 2.4898983
+v -0.95105652 1.3090170 -2.4898983
+v -1.5388418 -0.5 2.4898983
+v -1.5388418 -0.5 -2.4898983
+v -1.5388418 0.5 2.4898983
+v -1.5388418 0.5 -2.4898983
+v 1.5388418 -0.5 2.4898983
+v 1.5388418 -0.5 -2.4898983
+v 1.5388418 0.5 2.4898983
+v 1.5388418 0.5 -2.4898983
+v -2.2270327 0 -1.9641672
+v -2.2270327 -1.6180340 1.1135164
+v -2.2270327 1.6180340 1.1135164
+v -0.85065081 -2.6180340 -1.1135164
+v -0.85065081 2.6180340 -1.1135164
+v -1.8017073 -1.3090170 1.9641672
+v -1.8017073 1.3090170 1.9641672
+v -0.42532540 -2.9270510 -0.26286556
+v -0.42532540 2.9270510 -0.26286556
+
+f 3 42 46 44 40 1 34 48 50 36
+f 47 43 4 37 51 49 35 2 41 45
+f 2 35 19 24 21 16 5 59 55 14
+f 49 51 20 25 29 31 30 28 24 19
+f 37 4 15 56 60 6 17 22 25 20
+f 43 47 52 9 33 27 11 13 56 15
+f 45 41 14 55 12 10 26 32 9 52
+f 6 60 13 11 54 58 42 3 8 39
+f 27 33 32 26 53 57 44 46 58 54
+f 10 12 59 5 38 7 1 40 57 53
+f 16 21 28 30 18 23 48 34 7 38
+f 31 29 22 17 39 8 36 50 23 18
+f 9 32 33
+f 18 30 31
+f 47 45 52
+f 50 48 23
+f 10 53 26
+f 27 54 11
+f 21 24 28
+f 29 25 22
+f 40 44 57
+f 58 46 42
+f 35 49 19
+f 20 51 37
+f 12 55 59
+f 60 56 13
+f 41 2 14
+f 15 4 43
+f 34 1 7
+f 8 3 36
+f 38 5 16
+f 17 6 39
diff --git a/share/extensions/Poly3DObjects/trunc_icos.obj b/share/extensions/Poly3DObjects/trunc_icos.obj
index f325bef3b..4b535ba5a 100644
--- a/share/extensions/Poly3DObjects/trunc_icos.obj
+++ b/share/extensions/Poly3DObjects/trunc_icos.obj
@@ -1,96 +1,96 @@
-#Name:Truncated Icosahedron
-#Type:Face_specified
-
-v -0.16245985 -2.1180340 1.2759762
-v -0.16245985 2.1180340 1.2759762
-v 0.16245985 -2.1180340 -1.2759762
-v 0.16245985 2.1180340 -1.2759762
-v -0.26286556 -0.80901699 -2.3274384
-v -0.26286556 -2.4270510 -0.42532540
-v -0.26286556 0.80901699 -2.3274384
-v -0.26286556 2.4270510 -0.42532540
-v 0.26286556 -0.80901699 2.3274384
-v 0.26286556 -2.4270510 0.42532540
-v 0.26286556 0.80901699 2.3274384
-v 0.26286556 2.4270510 0.42532540
-v 0.68819096 -0.5 -2.3274384
-v 0.68819096 0.5 -2.3274384
-v 1.2139221 -2.1180340 0.42532540
-v 1.2139221 2.1180340 0.42532540
-v -2.0645729 -0.5 1.2759762
-v -2.0645729 0.5 1.2759762
-v -1.3763819 -1.0 1.8017073
-v -1.3763819 1.0 1.8017073
-v -1.3763819 -1.6180340 -1.2759762
-v -1.3763819 1.6180340 -1.2759762
-v -0.68819096 -0.5 2.3274384
-v -0.68819096 0.5 2.3274384
-v 1.3763819 -1.0 -1.8017073
-v 1.3763819 1.0 -1.8017073
-v 1.3763819 -1.6180340 1.2759762
-v 1.3763819 1.6180340 1.2759762
-v -1.7013016 0 -1.8017073
-v 1.7013016 0 1.8017073
-v -1.2139221 -2.1180340 -0.42532540
-v -1.2139221 2.1180340 -0.42532540
-v -1.9641672 -0.80901699 -1.2759762
-v -1.9641672 0.80901699 -1.2759762
-v 2.0645729 -0.5 -1.2759762
-v 2.0645729 0.5 -1.2759762
-v 2.2270327 -1.0 -0.42532540
-v 2.2270327 1.0 -0.42532540
-v 2.3894926 -0.5 0.42532540
-v 2.3894926 0.5 0.42532540
-v -1.1135164 -1.8090170 1.2759762
-v -1.1135164 1.8090170 1.2759762
-v 1.1135164 -1.8090170 -1.2759762
-v 1.1135164 1.8090170 -1.2759762
-v -2.3894926 -0.5 -0.42532540
-v -2.3894926 0.5 -0.42532540
-v -1.6392475 -1.8090170 0.42532540
-v -1.6392475 1.8090170 0.42532540
-v 1.6392475 -1.8090170 -0.42532540
-v 1.6392475 1.8090170 -0.42532540
-v 1.9641672 -0.80901699 1.2759762
-v 1.9641672 0.80901699 1.2759762
-v 0.85065081 0 2.3274384
-v -2.2270327 -1.0 0.42532540
-v -2.2270327 1.0 0.42532540
-v -0.85065081 0 -2.3274384
-v -0.52573111 -1.6180340 -1.8017073
-v -0.52573111 1.6180340 -1.8017073
-v 0.52573111 -1.6180340 1.8017073
-v 0.52573111 1.6180340 1.8017073
-
-f 53 11 24 23 9
-f 51 39 40 52 30
-f 60 28 16 12 2
-f 20 42 48 55 18
-f 19 17 54 47 41
-f 1 10 15 27 59
-f 36 26 44 50 38
-f 4 58 22 32 8
-f 34 29 33 45 46
-f 21 57 3 6 31
-f 37 49 43 25 35
-f 13 5 56 7 14
-f 9 59 27 51 30 53
-f 53 30 52 28 60 11
-f 11 60 2 42 20 24
-f 24 20 18 17 19 23
-f 23 19 41 1 59 9
-f 13 25 43 3 57 5
-f 5 57 21 33 29 56
-f 56 29 34 22 58 7
-f 7 58 4 44 26 14
-f 14 26 36 35 25 13
-f 40 38 50 16 28 52
-f 16 50 44 4 8 12
-f 12 8 32 48 42 2
-f 48 32 22 34 46 55
-f 55 46 45 54 17 18
-f 54 45 33 21 31 47
-f 47 31 6 10 1 41
-f 10 6 3 43 49 15
-f 15 49 37 39 51 27
-f 39 37 35 36 38 40
+#Name:Truncated Icosahedron
+#Type:Face_specified
+
+v -0.16245985 -2.1180340 1.2759762
+v -0.16245985 2.1180340 1.2759762
+v 0.16245985 -2.1180340 -1.2759762
+v 0.16245985 2.1180340 -1.2759762
+v -0.26286556 -0.80901699 -2.3274384
+v -0.26286556 -2.4270510 -0.42532540
+v -0.26286556 0.80901699 -2.3274384
+v -0.26286556 2.4270510 -0.42532540
+v 0.26286556 -0.80901699 2.3274384
+v 0.26286556 -2.4270510 0.42532540
+v 0.26286556 0.80901699 2.3274384
+v 0.26286556 2.4270510 0.42532540
+v 0.68819096 -0.5 -2.3274384
+v 0.68819096 0.5 -2.3274384
+v 1.2139221 -2.1180340 0.42532540
+v 1.2139221 2.1180340 0.42532540
+v -2.0645729 -0.5 1.2759762
+v -2.0645729 0.5 1.2759762
+v -1.3763819 -1.0 1.8017073
+v -1.3763819 1.0 1.8017073
+v -1.3763819 -1.6180340 -1.2759762
+v -1.3763819 1.6180340 -1.2759762
+v -0.68819096 -0.5 2.3274384
+v -0.68819096 0.5 2.3274384
+v 1.3763819 -1.0 -1.8017073
+v 1.3763819 1.0 -1.8017073
+v 1.3763819 -1.6180340 1.2759762
+v 1.3763819 1.6180340 1.2759762
+v -1.7013016 0 -1.8017073
+v 1.7013016 0 1.8017073
+v -1.2139221 -2.1180340 -0.42532540
+v -1.2139221 2.1180340 -0.42532540
+v -1.9641672 -0.80901699 -1.2759762
+v -1.9641672 0.80901699 -1.2759762
+v 2.0645729 -0.5 -1.2759762
+v 2.0645729 0.5 -1.2759762
+v 2.2270327 -1.0 -0.42532540
+v 2.2270327 1.0 -0.42532540
+v 2.3894926 -0.5 0.42532540
+v 2.3894926 0.5 0.42532540
+v -1.1135164 -1.8090170 1.2759762
+v -1.1135164 1.8090170 1.2759762
+v 1.1135164 -1.8090170 -1.2759762
+v 1.1135164 1.8090170 -1.2759762
+v -2.3894926 -0.5 -0.42532540
+v -2.3894926 0.5 -0.42532540
+v -1.6392475 -1.8090170 0.42532540
+v -1.6392475 1.8090170 0.42532540
+v 1.6392475 -1.8090170 -0.42532540
+v 1.6392475 1.8090170 -0.42532540
+v 1.9641672 -0.80901699 1.2759762
+v 1.9641672 0.80901699 1.2759762
+v 0.85065081 0 2.3274384
+v -2.2270327 -1.0 0.42532540
+v -2.2270327 1.0 0.42532540
+v -0.85065081 0 -2.3274384
+v -0.52573111 -1.6180340 -1.8017073
+v -0.52573111 1.6180340 -1.8017073
+v 0.52573111 -1.6180340 1.8017073
+v 0.52573111 1.6180340 1.8017073
+
+f 53 11 24 23 9
+f 51 39 40 52 30
+f 60 28 16 12 2
+f 20 42 48 55 18
+f 19 17 54 47 41
+f 1 10 15 27 59
+f 36 26 44 50 38
+f 4 58 22 32 8
+f 34 29 33 45 46
+f 21 57 3 6 31
+f 37 49 43 25 35
+f 13 5 56 7 14
+f 9 59 27 51 30 53
+f 53 30 52 28 60 11
+f 11 60 2 42 20 24
+f 24 20 18 17 19 23
+f 23 19 41 1 59 9
+f 13 25 43 3 57 5
+f 5 57 21 33 29 56
+f 56 29 34 22 58 7
+f 7 58 4 44 26 14
+f 14 26 36 35 25 13
+f 40 38 50 16 28 52
+f 16 50 44 4 8 12
+f 12 8 32 48 42 2
+f 48 32 22 34 46 55
+f 55 46 45 54 17 18
+f 54 45 33 21 31 47
+f 47 31 6 10 1 41
+f 10 6 3 43 49 15
+f 15 49 37 39 51 27
+f 39 37 35 36 38 40
diff --git a/share/extensions/Poly3DObjects/trunc_oct.obj b/share/extensions/Poly3DObjects/trunc_oct.obj
index e7b0df593..0c7c8ad91 100644
--- a/share/extensions/Poly3DObjects/trunc_oct.obj
+++ b/share/extensions/Poly3DObjects/trunc_oct.obj
@@ -1,42 +1,42 @@
-#Name:Truncated Octahedron
-#Type:face_specified
-
-v -1.5 -0.5 0
-v -1.5 0.5 0
-v -1. -1. -0.70710678
-v -1. -1. 0.70710678
-v -1. 1. -0.70710678
-v -1. 1. 0.70710678
-v -0.5 -1.5 0
-v -0.5 -0.5 -1.4142136
-v -0.5 -0.5 1.4142136
-v -0.5 0.5 -1.4142136
-v -0.5 0.5 1.4142136
-v -0.5 1.5 0
-v 0.5 -1.5 0
-v 0.5 -0.5 -1.4142136
-v 0.5 -0.5 1.4142136
-v 0.5 0.5 -1.4142136
-v 0.5 0.5 1.4142136
-v 0.5 1.5 0
-v 1. -1. -0.70710678
-v 1. -1. 0.70710678
-v 1. 1. -0.70710678
-v 1. 1. 0.70710678
-v 1.5 -0.5 0
-v 1.5 0.5 0
-
-f 17 11 9 15
-f 14 8 10 16
-f 22 24 21 18
-f 12 5 2 6
-f 13 19 23 20
-f 4 1 3 7
-f 19 13 7 3 8 14
-f 15 9 4 7 13 20
-f 16 10 5 12 18 21
-f 22 18 12 6 11 17
-f 20 23 24 22 17 15
-f 14 16 21 24 23 19
-f 9 11 6 2 1 4
+#Name:Truncated Octahedron
+#Type:face_specified
+
+v -1.5 -0.5 0
+v -1.5 0.5 0
+v -1. -1. -0.70710678
+v -1. -1. 0.70710678
+v -1. 1. -0.70710678
+v -1. 1. 0.70710678
+v -0.5 -1.5 0
+v -0.5 -0.5 -1.4142136
+v -0.5 -0.5 1.4142136
+v -0.5 0.5 -1.4142136
+v -0.5 0.5 1.4142136
+v -0.5 1.5 0
+v 0.5 -1.5 0
+v 0.5 -0.5 -1.4142136
+v 0.5 -0.5 1.4142136
+v 0.5 0.5 -1.4142136
+v 0.5 0.5 1.4142136
+v 0.5 1.5 0
+v 1. -1. -0.70710678
+v 1. -1. 0.70710678
+v 1. 1. -0.70710678
+v 1. 1. 0.70710678
+v 1.5 -0.5 0
+v 1.5 0.5 0
+
+f 17 11 9 15
+f 14 8 10 16
+f 22 24 21 18
+f 12 5 2 6
+f 13 19 23 20
+f 4 1 3 7
+f 19 13 7 3 8 14
+f 15 9 4 7 13 20
+f 16 10 5 12 18 21
+f 22 18 12 6 11 17
+f 20 23 24 22 17 15
+f 14 16 21 24 23 19
+f 9 11 6 2 1 4
f 3 1 2 5 10 8 \ No newline at end of file
diff --git a/share/extensions/Poly3DObjects/trunc_tet.obj b/share/extensions/Poly3DObjects/trunc_tet.obj
index eaa9233ad..d2c9cebb1 100644
--- a/share/extensions/Poly3DObjects/trunc_tet.obj
+++ b/share/extensions/Poly3DObjects/trunc_tet.obj
@@ -1,24 +1,24 @@
-#Name:Truncated Tetrahedron
-#Type:face_specified
-
-v 0 -1. -0.61237244
-v 0 1. -0.61237244
-v -0.57735027 -1. 0.20412415
-v -0.57735027 1. 0.20412415
-v -0.28867513 -0.5 1.0206207
-v -0.28867513 0.5 1.0206207
-v 0.57735027 0 1.0206207
-v 1.1547005 0 0.20412415
-v -0.86602540 -0.5 -0.61237244
-v -0.86602540 0.5 -0.61237244
-v 0.86602540 -0.5 -0.61237244
-v 0.86602540 0.5 -0.61237244
-
-f 11 12 8
-f 3 9 1
-f 2 10 4
-f 6 5 7
-f 11 8 7 5 3 1
-f 2 4 6 7 8 12
-f 9 3 5 6 4 10
+#Name:Truncated Tetrahedron
+#Type:face_specified
+
+v 0 -1. -0.61237244
+v 0 1. -0.61237244
+v -0.57735027 -1. 0.20412415
+v -0.57735027 1. 0.20412415
+v -0.28867513 -0.5 1.0206207
+v -0.28867513 0.5 1.0206207
+v 0.57735027 0 1.0206207
+v 1.1547005 0 0.20412415
+v -0.86602540 -0.5 -0.61237244
+v -0.86602540 0.5 -0.61237244
+v 0.86602540 -0.5 -0.61237244
+v 0.86602540 0.5 -0.61237244
+
+f 11 12 8
+f 3 9 1
+f 2 10 4
+f 6 5 7
+f 11 8 7 5 3 1
+f 2 4 6 7 8 12
+f 9 3 5 6 4 10
f 2 12 11 1 9 10 \ No newline at end of file
diff --git a/share/extensions/funcplot.py b/share/extensions/funcplot.py
index 0beaf3946..a868e92a4 100644
--- a/share/extensions/funcplot.py
+++ b/share/extensions/funcplot.py
@@ -28,6 +28,8 @@ Changes:
import inkex, simplepath, simplestyle
from math import *
from random import *
+import gettext
+_ = gettext.gettext
def drawfunction(xstart, xend, ybottom, ytop, samples, width, height, left, bottom,
fx = "sin(x)", fpx = "cos(x)", fponum = True, times2pi = False, polar = False, isoscale = True, drawaxis = True, endpts = False):
@@ -235,6 +237,7 @@ class FuncPlot(inkex.Effect):
help="dummy")
def effect(self):
+ newpath = None
for id, node in self.selected.iteritems():
if node.tag == inkex.addNS('rect','svg'):
# create new path with basic dimensions of selected rectangle
@@ -283,7 +286,9 @@ class FuncPlot(inkex.Effect):
# option wether to remove the rectangle or not.
if self.options.remove:
node.getparent().remove(node)
-
+ if newpath is None:
+ inkex.errormsg(_("Please select a rectangle"))
+
if __name__ == '__main__':
e = FuncPlot()
e.affect()
diff --git a/share/extensions/gcodetools.py b/share/extensions/gcodetools.py
index f99c050bd..e5f1944b0 100644
--- a/share/extensions/gcodetools.py
+++ b/share/extensions/gcodetools.py
@@ -1,5 +1,44 @@
#!/usr/bin/env python
"""
+Comments starting "#LT" or "#CLT" are by Chris Lusby Taylor who rewrote the engraving function in 2011.
+History of CLT changes to engraving and other functions it uses:
+9 May 2011 Changed test of tool diameter to square it
+10 May Note that there are many unused functions, including:
+ bound_to_bound_distance, csp_curvature_radius_at_t,
+ csp_special_points, csplength, rebuild_csp, csp_slope,
+ csp_simple_bound_to_point_distance, csp_bound_to_point_distance,
+ bez_at_t, bez_to_point_distance, bez_normalized_slope, matrix_mul, transpose
+ Fixed csp_point_inside_bound() to work if x outside bounds
+20 May Now encoding the bisectors of angles.
+23 May Using r/cos(a) instead of normalised normals for bisectors of angles.
+23 May Note that Z values generated for engraving are in pixels, not mm.
+ Removed the biarc curves - straight lines are better.
+24 May Changed Bezier slope calculation to be less sensitive to tiny differences in points.
+ Added use of self.options.engraving_newton_iterations to control accuracy
+25 May Big restructure and new recursive function.
+ Changed the way I treat corners - I now find if the centre of a proposed circle is
+ within the area bounded by the line being tested and the two angle bisectors at
+ its ends. See get_radius_to_line().
+29 May Eliminating redundant points. If A,B,C colinear, drop B
+30 May Eliminating redundant lines in divided Beziers. Changed subdivision of lines
+ 7Jun Try to show engraving in 3D
+ 8 Jun Displaying in stereo 3D.
+ Fixed a bug in bisect - it could go wrong due to rounding errors if
+ 1+x1.x2+y1.y2<0 which should never happen. BTW, I spotted a non-normalised normal
+ returned by csp_normalized_normal. Need to check for that.
+ 9 Jun Corrected spelling of 'definition' but still match previous 'defention' and 'defenition' if found in file
+ Changed get_tool to find 1.6.04 tools or new tools with corrected spelling
+10 Jun Put 3D into a separate layer called 3D, created unless it already exists
+ Changed csp_normalized_slope to reject lines shorter than 1e-9.
+10 Jun Changed all dimensions seen by user to be mm/inch, not pixels. This includes
+ tool diameter, maximum engraving distance, tool shape and all Z values.
+12 Jun ver 208 Now scales correctly if orientation points moved or stretched.
+12 Jun ver 209. Now detect if engraving toolshape not a function of radius
+ Graphics now indicate Gcode toolpath, limited by min(tool diameter/2,max-dist)
+TODO Change line division to be recursive, depending on what line is touched. See line_divide
+
+
+engraving() functions (c) 2011 Chris Lusby Taylor, clusbytaylor@enterprise.net
Copyright (C) 2009 Nick Drobchenko, nick@cnc-club.ru
based on gcode.py (C) 2007 hugomatic...
based on addnodes.py (C) 2005,2007 Aaron Spike, aaron@ekips.org
@@ -24,9 +63,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
###
-### Gcodetools v 1.6.03
+### Gcodetools v 1.7
###
-gcodetools_current_version = "1.6.03"
+
+gcodetools_current_version = "1.7"
import inkex, simplestyle, simplepath
import cubicsuperpath, simpletransform, bezmisc
@@ -46,7 +86,7 @@ import gettext
_ = gettext.gettext
-### Check if inkex has errormsg (0.46 version doesnot have one.) Could be removed later.
+### Check if inkex has errormsg (0.46 version does not have one.) Could be removed later.
if "errormsg" not in dir(inkex):
inkex.errormsg = lambda msg: sys.stderr.write((unicode(msg) + "\n").encode("UTF-8"))
@@ -74,6 +114,11 @@ def ireplace(self,old,new,count=0):
pattern = re.compile(re.escape(old),re.I)
return re.sub(pattern,new,self,count)
+def isset(variable):
+ # VARIABLE NAME SHOULD BE A STRING! Like isset("foobar")
+ return variable in locals() or variable in globals()
+
+
################################################################################
###
### Styles and additional parameters
@@ -85,6 +130,9 @@ straight_tolerance = 0.0001
straight_distance_tolerance = 0.0001
engraving_tolerance = 0.0001
loft_lengths_tolerance = 0.0000001
+
+EMC_TOLERANCE_EQUAL = 0.00001
+
options = {}
defaults = {
'header': """%
@@ -108,6 +156,8 @@ intersection_recursion_depth = 10
intersection_tolerance = 0.00001
styles = {
+ "in_out_path_style" : simplestyle.formatStyle({ 'stroke': '#0072a7', 'fill': 'none', 'stroke-width':'1', 'marker-mid':'url(#InOutPathMarker)' }),
+
"loft_style" : {
'main curve': simplestyle.formatStyle({ 'stroke': '#88f', 'fill': 'none', 'stroke-width':'1', 'marker-end':'url(#Arrow2Mend)' }),
},
@@ -166,10 +216,114 @@ styles = {
}
+
+################################################################################
+### Gcode additional functions
+################################################################################
+
+def gcode_comment_str(s, replace_new_line = False):
+ if replace_new_line :
+ s = re.sub(r"[\n\r]+", ".", s)
+ res = ""
+ if s[-1] == "\n" : s = s[:-1]
+ for a in s.split("\n") :
+ if a != "" :
+ res += "(" + re.sub(r"[\(\)\\\n\r]", ".", a) + ")\n"
+ else :
+ res += "\n"
+ return res
+
+
################################################################################
### Cubic Super Path additional functions
################################################################################
+
+def csp_from_polyline(line) :
+ return [ [ [point[:] for k in range(3) ] for point in subline ] for subline in line ]
+
+def csp_remove_zerro_segments(csp, tolerance = 1e-7):
+ res = []
+ for subpath in csp:
+ if len(subpath) > 0 :
+ res.append([subpath[0]])
+ for sp1,sp2 in zip(subpath,subpath[1:]) :
+ if point_to_point_d2(sp1[1],sp2[1])<=tolerance and point_to_point_d2(sp1[2],sp2[1])<=tolerance and point_to_point_d2(sp1[1],sp2[0])<=tolerance :
+ res[-1][-1][2] = sp2[2]
+ else :
+ res[-1].append(sp2)
+ return res
+
+
+
+
+
+def point_inside_csp(p,csp, on_the_path = True) :
+ # we'll do the raytracing and see how many intersections are there on the ray's way.
+ # if number of intersections is even then point is outside.
+ # ray will be x=p.x and y=>p.y
+ # you can assing any value to on_the_path, by dfault if point is on the path
+ # function will return thai it's inside the path.
+ x,y = p
+ ray_intersections_count = 0
+ for subpath in csp :
+
+ for i in range(1, len(subpath)) :
+ sp1, sp2 = subpath[i-1], subpath[i]
+ ax,ay,bx,by,cx,cy,dx,dy = csp_parameterize(sp1,sp2)
+ if ax==0 and bx==0 and cx==0 and dx==x :
+ #we've got a special case here
+ b = csp_true_bounds( [[sp1,sp2]])
+ if b[1][1]<=y<=b[3][1] :
+ # points is on the path
+ return on_the_path
+ else :
+ # we can skip this segment because it wont influence the answer.
+ pass
+ else:
+ for t in csp_line_intersection([x,y],[x,y+5],sp1,sp2) :
+ if t == 0 or t == 1 :
+ #we've got another special case here
+ x1,y1 = csp_at_t(sp1,sp2,t)
+ if y1==y :
+ # the point is on the path
+ return on_the_path
+ # if t == 0 we sould have considered this case previously.
+ if t == 1 :
+ # we have to check the next segmant if it is on the same side of the ray
+ st_d = csp_normalized_slope(sp1,sp2,1)[0]
+ if st_d == 0 : st_d = csp_normalized_slope(sp1,sp2,0.99)[0]
+
+ for j in range(1, len(subpath)+1):
+ if (i+j) % len(subpath) == 0 : continue # skip the closing segment
+ sp11,sp22 = subpath[(i-1+j) % len(subpath)], subpath[(i+j) % len(subpath)]
+ ax1,ay1,bx1,by1,cx1,cy1,dx1,dy1 = csp_parameterize(sp1,sp2)
+ if ax1==0 and bx1==0 and cx1==0 and dx1==x : continue # this segment parallel to the ray, so skip it
+ en_d = csp_normalized_slope(sp11,sp22,0)[0]
+ if en_d == 0 : en_d = csp_normalized_slope(sp11,sp22,0.01)[0]
+ if st_d*en_d <=0 :
+ ray_intersections_count += 1
+ break
+ else :
+ x1,y1 = csp_at_t(sp1,sp2,t)
+ if y1==y :
+ # the point is on the path
+ return on_the_path
+ else :
+ if y1>y and 3*ax*t**2 + 2*bx*t + cx !=0 : # if it's 0 the path only touches the ray
+ ray_intersections_count += 1
+ return ray_intersections_count%2 == 1
+
+def csp_close_all_subpaths(csp, tolerance = 0.000001):
+ for i in range(len(csp)):
+ if point_to_point_d2(csp[i][0][1] , csp[i][-1][1])> tolerance**2 :
+ csp[i][-1][2] = csp[i][-1][1][:]
+ csp[i] += [ [csp[i][0][1][:] for j in range(3)] ]
+ else:
+ if csp[i][0][1] != csp[i][-1][1] :
+ csp[i][-1][1] = csp[i][0][1][:]
+ return csp
+
def csp_simple_bound(csp):
minx,miny,maxx,maxy = None,None,None,None
for subpath in csp:
@@ -333,6 +487,7 @@ def csp_split(sp1,sp2,t=.5) :
y = y1223+(y2334-y1223)*t
return [sp1[0],sp1[1],[x12,y12]], [[x1223,y1223],[x,y],[x2334,y2334]], [[x34,y34],sp2[1],sp2[2]]
+
def csp_true_bounds(csp) :
# Finds minx,miny,maxx,maxy of the csp and return their (x,y,i,j,t)
minx = [float("inf"), 0, 0, 0]
@@ -603,6 +758,11 @@ def csp_at_t(sp1,sp2,t):
x,y = x4+(x5-x4)*t, y4+(y5-y4)*t
return [x,y]
+def csp_at_length(sp1,sp2,l=0.5, tolerance = 0.01):
+ bez = (sp1[1][:],sp1[2][:],sp2[0][:],sp2[1][:])
+ t = bezmisc.beziertatlength(bez, l, tolerance)
+ return csp_at_t(sp1,sp2,t)
+
def csp_splitatlength(sp1, sp2, l = 0.5, tolerance = 0.01):
bez = (sp1[1][:],sp1[2][:],sp2[0][:],sp2[1][:])
@@ -610,7 +770,7 @@ def csp_splitatlength(sp1, sp2, l = 0.5, tolerance = 0.01):
return csp_split(sp1, sp2, t)
-def cspseglength(sp1,sp2, tolerance = 0.001):
+def cspseglength(sp1,sp2, tolerance = 0.01):
bez = (sp1[1][:],sp1[2][:],sp2[0][:],sp2[1][:])
return bezmisc.bezierlength(bez, tolerance)
@@ -712,6 +872,20 @@ def csp_split_by_two_points(sp1,sp2,t1,t2) :
sp2,sp3,sp4 = csp_split(sp2,sp3,(t2-t1)/(1-t1) )
return [sp1,sp2,sp3,sp4]
+def csp_seg_split(sp1,sp2, points):
+ # points is float=t or list [t1, t2, ..., tn]
+ if type(points) is float :
+ points = [points]
+ points.sort()
+ res = [sp1,sp2]
+ last_t = 0
+ for t in points:
+ if 1e-10<t<1.-1e-10 :
+ sp3,sp4,sp5 = csp_split(res[-2],res[-1], (t-last_t)/(1-last_t))
+ last_t = t
+ res[-2:] = [sp3,sp4,sp5]
+ return res
+
def csp_subpath_split_by_points(subpath, points) :
# points are [[i,t]...] where i-segment's number
@@ -745,6 +919,22 @@ def csp_subpath_split_by_points(subpath, points) :
return parts
+def arc_from_s_r_n_l(s,r,n,l) :
+ if abs(n[0]**2+n[1]**2 - 1) > 1e-10 : n = normalize(n)
+ return arc_from_c_s_l([s[0]+n[0]*r, s[1]+n[1]*r],s,l)
+
+
+def arc_from_c_s_l(c,s,l) :
+ r = point_to_point_d(c,s)
+ if r == 0 : return []
+ alpha = l/r
+ cos_, sin_ = math.cos(alpha), math.sin(alpha)
+ e = [ c[0] + (s[0]-c[0])*cos_ - (s[1]-c[1])*sin_, c[1] + (s[0]-c[0])*sin_ + (s[1]-c[1])*cos_]
+ n = [c[0]-s[0],c[1]-s[1]]
+ slope = rotate_cw(n) if l>0 else rotate_ccw(n)
+ return csp_from_arc(s, e, c, r, slope)
+
+
def csp_from_arc(start, end, center, r, slope_st) :
# Creates csp that approximise specified arc
r = abs(r)
@@ -828,11 +1018,16 @@ def csp_point_inside_bound(sp1, sp2, p):
bez = [sp1[1],sp1[2],sp2[0],sp2[1]]
x,y = p
c = 0
+ #CLT added test of x in range
+ xmin=1e100
+ xmax=-1e100
for i in range(4):
[x0,y0], [x1,y1] = bez[i-1], bez[i]
+ xmin=min(xmin,x0)
+ xmax=max(xmax,x0)
if x0-x1!=0 and (y-y0)*(x1-x0)>=(x-x0)*(y1-y0) and x>min(x0,x1) and x<=max(x0,x1) :
c +=1
- return c%2==0
+ return xmin<=x<=xmax and c%2==0
def csp_bound_to_point_distance(sp1, sp2, p):
@@ -962,14 +1157,14 @@ def csp_normalized_slope(sp1,sp2,t) :
if sp1[1]==sp2[1]==sp1[2]==sp2[0] : return [1.,0.]
f1x = 3*ax*t*t+2*bx*t+cx
f1y = 3*ay*t*t+2*by*t+cy
- if abs(f1x*f1x+f1y*f1y) > 1e-20 :
+ if abs(f1x*f1x+f1y*f1y) > 1e-9 : #LT changed this from 1e-20, which caused problems
l = math.sqrt(f1x*f1x+f1y*f1y)
return [f1x/l, f1y/l]
if t == 0 :
f1x = sp2[0][0]-sp1[1][0]
f1y = sp2[0][1]-sp1[1][1]
- if abs(f1x*f1x+f1y*f1y) > 1e-20 :
+ if abs(f1x*f1x+f1y*f1y) > 1e-9 : #LT changed this from 1e-20, which caused problems
l = math.sqrt(f1x*f1x+f1y*f1y)
return [f1x/l, f1y/l]
else :
@@ -981,7 +1176,7 @@ def csp_normalized_slope(sp1,sp2,t) :
elif t == 1 :
f1x = sp2[1][0]-sp1[2][0]
f1y = sp2[1][1]-sp1[2][1]
- if abs(f1x*f1x+f1y*f1y) > 1e-20 :
+ if abs(f1x*f1x+f1y*f1y) > 1e-9 :
l = math.sqrt(f1x*f1x+f1y*f1y)
return [f1x/l, f1y/l]
else :
@@ -1020,16 +1215,6 @@ def csp_concat_subpaths(*s):
result = concat(result,s1)
return result
-
-def csp_draw(csp, color="#05f", group = None, style="fill:none;", width = .1, comment = "") :
- if csp!=[] and csp!=[[]] :
- if group == None : group = options.doc_root
- style += "stroke:"+color+";"+ "stroke-width:%0.4fpx;"%width
- args = {"d": cubicsuperpath.formatPath(csp), "style":style}
- if comment!="" : args["comment"] = str(comment)
- inkex.etree.SubElement( group, inkex.addNS('path','svg'), args )
-
-
def csp_subpaths_end_to_start_distance2(s1,s2):
return (s1[-1][1][0]-s2[0][1][0])**2 + (s1[-1][1][1]-s2[0][1][1])**2
@@ -1054,16 +1239,25 @@ def csp_clip_by_line(csp,l1,l2) :
return result
-def csp_subpath_line_to(subpath, points) :
+def csp_subpath_line_to(subpath, points, prepend = False) :
# Appends subpath with line or polyline.
if len(points)>0 :
- if len(subpath)>0:
- subpath[-1][2] = subpath[-1][1][:]
- if type(points[0]) == type([1,1]) :
- for p in points :
- subpath += [ [p[:],p[:],p[:]] ]
- else:
- subpath += [ [points,points,points] ]
+ if not prepend :
+ if len(subpath)>0:
+ subpath[-1][2] = subpath[-1][1][:]
+ if type(points[0]) == type([1,1]) :
+ for p in points :
+ subpath += [ [p[:],p[:],p[:]] ]
+ else:
+ subpath += [ [points,points,points] ]
+ else :
+ if len(subpath)>0:
+ subpath[0][0] = subpath[0][1][:]
+ if type(points[0]) == type([1,1]) :
+ for p in points :
+ subpath = [ [p[:],p[:],p[:]] ] + subpath
+ else:
+ subpath = [ [points,points,points] ] + subpath
return subpath
@@ -1198,10 +1392,19 @@ def dot(a,b) :
def rotate_ccw(d) :
return [-d[1],d[0]]
+def rotate_cw(d) :
+ return [d[1],-d[0]]
+
def vectors_ccw(a,b):
return a[0]*b[1]-b[0]*a[1] < 0
+def vector_add(a,b) :
+ return [a[0]+b[0],a[1]+b[1]]
+
+def vector_mul(a,b) :
+ return [a[0]*b,a[1]*b]
+
def vector_from_to_length(a,b):
return math.sqrt((a[0]-b[0])*(a[0]-b[0]) + (a[1]-b[1])*(a[1]-b[1]))
@@ -1265,36 +1468,83 @@ def atan2(*arg):
else :
raise ValueError, "Bad argumets for atan! (%s)" % arg
+def get_text(node) :
+ value = None
+ if node.text!=None : value = value +"\n" + node.text if value != None else node.text
+ for k in node :
+ if k.tag == inkex.addNS('tspan','svg'):
+ if k.text!=None : value = value +"\n" + k.text if value != None else k.text
+ return value
+
+
-def draw_text(text,x,y,style = None, font_size = 20) :
+def draw_text(text,x,y, group = None, style = None, font_size = 10, gcodetools_tag = None) :
if style == None :
- style = "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;"
+ style = "font-family:DejaVu Sans;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:DejaVu Sans;fill:#000000;fill-opacity:1;stroke:none;"
style += "font-size:%fpx;"%font_size
- t = inkex.etree.SubElement( options.doc_root, inkex.addNS('text','svg'), {
- 'x': str(x),
+ attributes = { 'x': str(x),
inkex.addNS("space","xml"):"preserve",
- 'y': str(y)
- })
+ 'y': str(y),
+ 'style' : style
+ }
+ if gcodetools_tag!=None :
+ attributes["gcodetools"] = str(gcodetools_tag)
+
+ if group == None:
+ group = options.doc_root
+
+ t = inkex.etree.SubElement( group, inkex.addNS('text','svg'), attributes)
text = str(text).split("\n")
for s in text :
span = inkex.etree.SubElement( t, inkex.addNS('tspan','svg'),
{
'x': str(x),
- 'y': str(+y),
+ 'y': str(y),
inkex.addNS("role","sodipodi"):"line",
})
y += font_size
- span.text = s
-
+ span.text = str(s)
-def draw_pointer(x,color = "#f00", figure = "cross", comment = "", width = .1) :
- if figure == "line" :
+def draw_csp(csp, stroke = "#f00", fill = "none", comment = "", width = 0.354, group = None, style = None, gcodetools_tag = None) :
+ if style == None :
+ style = "fill:%s;fill-opacity:1;stroke:%s;stroke-width:%s"%(fill,stroke,width)
+ attributes = { 'd': cubicsuperpath.formatPath(csp),
+ 'style' : style
+ }
+ if comment != '':
+ attributes['comment'] = comment
+ if group == None :
+ group = options.doc_root
+
+ return inkex.etree.SubElement( group, inkex.addNS('path','svg'), attributes)
+
+def draw_pointer(x,color = "#f00", figure = "cross", group = None, comment = "", fill=None, width = .1, size = 10., text = None, font_size=None, pointer_type=None, attrib = None) :
+ size = size/2
+ if attrib == None : attrib = {}
+ if pointer_type == None:
+ pointer_type = "Pointer"
+ attrib["gcodetools"] = pointer_type
+ if group == None:
+ group = options.self.current_layer
+ if text != None :
+ if font_size == None : font_size = 7
+ group = inkex.etree.SubElement( group, inkex.addNS('g','svg'), {"gcodetools": pointer_type+" group"} )
+ draw_text(text,x[0]+size*2.2,x[1]-size, group = group, font_size = font_size)
+ if figure == "line" :
s = ""
for i in range(1,len(x)/2) :
s+= " %s, %s " %(x[i*2],x[i*2+1])
- inkex.etree.SubElement( options.doc_root, inkex.addNS('path','svg'), {"d": "M %s,%s L %s"%(x[0],x[1],s), "style":"fill:none;stroke:%s;stroke-width:%f;"%(color,width),"comment":str(comment)} )
+ attrib.update({"d": "M %s,%s L %s"%(x[0],x[1],s), "style":"fill:none;stroke:%s;stroke-width:%f;"%(color,width),"comment":str(comment)})
+ inkex.etree.SubElement( group, inkex.addNS('path','svg'), attrib)
+ elif figure == "arrow" :
+ if fill == None : fill = "#12b3ff"
+ fill_opacity = "0.8"
+ d = "m %s,%s " % (x[0],x[1]) + re.sub("([0-9\-.e]+)",(lambda match: str(float(match.group(1))*size*2.)), "0.88464,-0.40404 c -0.0987,-0.0162 -0.186549,-0.0589 -0.26147,-0.1173 l 0.357342,-0.35625 c 0.04631,-0.039 0.0031,-0.13174 -0.05665,-0.12164 -0.0029,-1.4e-4 -0.0058,-1.4e-4 -0.0087,0 l -2.2e-5,2e-5 c -0.01189,0.004 -0.02257,0.0119 -0.0305,0.0217 l -0.357342,0.35625 c -0.05818,-0.0743 -0.102813,-0.16338 -0.117662,-0.26067 l -0.409636,0.88193 z")
+ attrib.update({"d": d, "style":"fill:%s;stroke:none;fill-opacity:%s;"%(fill,fill_opacity),"comment":str(comment)})
+ inkex.etree.SubElement( group, inkex.addNS('path','svg'), attrib)
else :
- inkex.etree.SubElement( options.doc_root, inkex.addNS('path','svg'), {"d": "m %s,%s l 10,10 -20,-20 10,10 -10,10, 20,-20"%(x[0],x[1]), "style":"fill:none;stroke:%s;stroke-width:%f;"%(color,width),"comment":str(comment)} )
+ attrib.update({"d": "m %s,%s l %f,%f %f,%f %f,%f %f,%f , %f,%f"%(x[0],x[1], size,size, -2*size,-2*size, size,size, size,-size, -2*size,2*size ), "style":"fill:none;stroke:%s;stroke-width:%f;"%(color,width),"comment":str(comment)})
+ inkex.etree.SubElement( group, inkex.addNS('path','svg'), attrib)
def straight_segments_intersection(a,b, true_intersection = True) : # (True intersection means check ta and tb are in [0,1])
@@ -1320,7 +1570,19 @@ def isinf(x): inf = 1e5000; return x == inf or x == -inf
def between(c,x,y):
return x-straight_tolerance<=c<=y+straight_tolerance or y-straight_tolerance<=c<=x+straight_tolerance
-
+def cubic_solver_real(a,b,c,d):
+ # returns only real roots of a cubic equation.
+ roots = cubic_solver(a,b,c,d)
+ res = []
+ for root in roots :
+ if type(root) is complex :
+ if -1e-10<root.imag<1e-10 :
+ res.append(root.real)
+ else :
+ res.append(root)
+ return res
+
+
def cubic_solver(a,b,c,d):
if a!=0:
# Monics formula see http://en.wikipedia.org/wiki/Cubic_function#Monic_formula_of_roots
@@ -1402,6 +1664,223 @@ class P:
def to_list(self): return [self.x, self.y]
def ccw(self): return P(-self.y,self.x)
def l2(self): return self.x*self.x + self.y*self.y
+
+
+class Arc():
+ def __init__(self,st,end,c,a):
+ self.st = P(st)
+ self.end = P(end)
+ self.c = P(c)
+ self.r = (P(st)-P(c)).mag()
+ self.a = ( (self.st-self.c).angle() - (self.end-self.c).angle() ) % math.pi2
+ if a<0 : self.a -= math.pi2
+
+ def offset(self, r):
+ if self.a>0 :
+ r += self.r
+ else :
+ r = self.r - r
+
+ if self.r != 0 :
+ self.st = self.c + (self.st-self.c)*r/self.r
+ self.end = self.c + (self.end-self.c)*r/self.r
+ self.r = r
+
+ def length(self):
+ return abs(self.a*self.r)
+
+
+ def draw(self, group, style, layer, transform, num = 0, reverse_angle = 1):
+ st = P(gcodetools.transform(self.st.to_list(), layer, True))
+ c = P(gcodetools.transform(self.c.to_list(), layer, True))
+ a = self.a * reverse_angle
+ r = (st-c)
+ a_st = (math.atan2(r.x,-r.y) - math.pi/2) % (math.pi*2)
+ r = r.mag()
+ if a<0:
+ a_end = a_st+a
+ style = style['biarc%s'%(num%2)]
+ else:
+ a_end = a_st
+ a_st = a_st+a
+ style = style['biarc%s_r'%(num%2)]
+
+ attr = {
+ 'style': style,
+ inkex.addNS('cx','sodipodi'): str(c.x),
+ inkex.addNS('cy','sodipodi'): str(c.y),
+ inkex.addNS('rx','sodipodi'): str(r),
+ inkex.addNS('ry','sodipodi'): str(r),
+ inkex.addNS('start','sodipodi'): str(a_st),
+ inkex.addNS('end','sodipodi'): str(a_end),
+ inkex.addNS('open','sodipodi'): 'true',
+ inkex.addNS('type','sodipodi'): 'arc',
+ "gcodetools": "Preview",
+ }
+ if transform != [] :
+ attr["transform"] = transform
+ inkex.etree.SubElement( group, inkex.addNS('path','svg'), attr)
+
+ def intersect(self,b) :
+ return []
+
+
+class Line():
+ def __init__(self,st,end):
+ if st.__class__ == P :
+ st = st.to_list()
+ if end.__class__ == P :
+ end = end.to_list()
+ self.st = P(st)
+ self.end = P(end)
+ self.l = self.length()
+ if self.l != 0 :
+ self.n = ((self.end-self.st)/self.l).ccw()
+ else:
+ self.n = [0,1]
+
+ def offset(self, r):
+ self.st -= self.n*r
+ self.end -= self.n*r
+
+ def l2(self): return (self.st-self.end).l2()
+ def length(self): return (self.st-self.end).mag()
+
+ def draw(self, group, style, layer, transform, num = 0, reverse_angle = 1):
+ st = gcodetools.transform(self.st.to_list(), layer, True)
+ end = gcodetools.transform(self.end.to_list(), layer, True)
+
+
+ attr = { 'style': style['line'],
+ 'd':'M %s,%s L %s,%s' % (st[0],st[1],end[0],end[1]),
+ "gcodetools": "Preview",
+ }
+ if transform != [] :
+ attr["transform"] = transform
+ inkex.etree.SubElement( group, inkex.addNS('path','svg'), attr )
+
+ def intersect(self,b) :
+ if b.__class__ == Line :
+ if self.l < 10e-8 or b.l < 10e-8 : return []
+ v1 = self.end - self.st
+ v2 = b.end - b.st
+ x = v1.x*v2.y - v2.x*v1.y
+ if x == 0 :
+ # lines are parallel
+ res = []
+
+ if (self.st.x-b.st.x)*v1.y - (self.st.y-b.st.y)*v1.x == 0:
+ # lines are the same
+ if v1.x != 0 :
+ if 0<=(self.st.x-b.st.x)/v2.x<=1 : res.append(self.st)
+ if 0<=(self.end.x-b.st.x)/v2.x<=1 : res.append(self.end)
+ if 0<=(b.st.x-self.st.x)/v1.x<=1 : res.append(b.st)
+ if 0<=(b.end.x-b.st.x)/v1.x<=1 : res.append(b.end)
+ else :
+ if 0<=(self.st.y-b.st.y)/v2.y<=1 : res.append(self.st)
+ if 0<=(self.end.y-b.st.y)/v2.y<=1 : res.append(self.end)
+ if 0<=(b.st.y-self.st.y)/v1.y<=1 : res.append(b.st)
+ if 0<=(b.end.y-b.st.y)/v1.y<=1 : res.append(b.end)
+ return res
+ else :
+ t1 = ( -v1.x*(b.end.y-self.end.y) + v1.y*(b.end.x-self.end.x) ) / x
+ t2 = ( -v1.y*(self.st.x-b.st.x) + v1.x*(self.st.y-b.st.y) ) / x
+
+ gcodetools.error((x,t1,t2), "warning")
+ if 0<=t1<=1 and 0<=t2<=1 : return [ self.st+v1*t1 ]
+ else : return []
+ else: return []
+
+
+
+
+class Biarc:
+ def __init__(self, items=None):
+ if items == None :
+ self.items = []
+ else:
+ self.items = items
+
+ def l(self) :
+ return sum([i.length() for i in items])
+
+ def close(self) :
+ for subitems in self.items:
+ if (subitems[0].st-subitems[-1].end).l2()>10e-16 :
+ subitems.append(Line(subitems[-1].end,subitems[0].st))
+
+ def offset(self,r) :
+ # offset each element
+ self.close()
+ for subitems in self.items :
+ for item in subitems :
+ item.offset(r)
+ self.connect(r)
+
+ def connect(self, r) :
+ for subitems in self.items :
+ for a,b in zip(subitems, subitems[1:]) :
+ i = a.intersect(b)
+ for p in i :
+ draw_pointer(p.to_list())
+
+
+
+
+ def clip_offset(self):
+ pass
+
+ def draw(self, layer, group=None, style=styles["biarc_style"]):
+ global gcodetools
+ gcodetools.set_markers()
+
+ for i in [0,1]:
+ style['biarc%s_r'%i] = simplestyle.parseStyle(style['biarc%s'%i])
+ style['biarc%s_r'%i]["marker-start"] = "url(#DrawCurveMarker_r)"
+ del(style['biarc%s_r'%i]["marker-end"])
+ style['biarc%s_r'%i] = simplestyle.formatStyle(style['biarc%s_r'%i])
+
+ if group==None:
+ if "preview_groups" not in dir(options.self) :
+ gcodetools.preview_groups = { layer: inkex.etree.SubElement( gcodetools.layers[min(1,len(gcodetools.layers)-1)], inkex.addNS('g','svg'), {"gcodetools": "Preview group"} ) }
+ elif layer not in gcodetools.preview_groups :
+ gcodetools.preview_groups[layer] = inkex.etree.SubElement( gcodetools.layers[min(1,len(gcodetools.layers)-1)], inkex.addNS('g','svg'), {"gcodetools": "Preview group"} )
+ group = gcodetools.preview_groups[layer]
+
+ transform = gcodetools.get_transforms(group)
+ if transform != [] :
+ transform = gcodetools.reverse_transform(transform)
+ transform = simpletransform.formatTransform(transform)
+
+ a,b,c = [0.,0.], [1.,0.], [0.,1.]
+ k = (b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])
+ a,b,c = gcodetools.transform(a, layer, True), gcodetools.transform(b, layer, True), gcodetools.transform(c, layer, True)
+ if ((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))*k > 0 : reverse_angle = -1
+ else : reverse_angle = 1
+
+
+ num = 0
+ for subitems in self.items :
+ for item in subitems :
+ num += 1
+ #if num>1 : break
+ item.draw(group, style, layer, transform, num, reverse_angle)
+
+ def from_old_style(self, curve) :
+ #Crve defenitnion [start point, type = {'arc','line','move','end'}, arc center, arc angle, end point, [zstart, zend]]
+ self.items = []
+ for sp in curve:
+ print_(sp)
+ if sp[1] == 'move':
+ self.items.append([])
+ if sp[1] == 'arc':
+ self.items[-1].append(Arc(sp[0],sp[4],sp[2],sp[3]))
+ if sp[1] == 'line':
+ self.items[-1].append(Line(sp[0],sp[4]))
+
+
+
+
################################################################################
###
@@ -1454,7 +1933,7 @@ def csp_offset(csp, r) :
else :
pass # ???
#raise ValueError, "Offset curvature clipping error"
- #csp_draw([result])
+ #draw_csp([result])
return result
@@ -1558,7 +2037,7 @@ def csp_offset(csp, r) :
r2 = offset_segment_recursion(sp4,sp5,r, depth-1, tolerance)
return r1[:-1]+ [[r1[-1][0],r1[-1][1],r2[0][2]]] + r2[1:]
else :
- #csp_draw([[sp1_r,sp2_r]])
+ #draw_csp([[sp1_r,sp2_r]])
#draw_pointer(sp1[1]+sp1_r[1], "#057", "line")
#draw_pointer(sp2[1]+sp2_r[1], "#705", "line")
return [sp1_r,sp2_r]
@@ -1618,8 +2097,8 @@ def csp_offset(csp, r) :
prev_l = len(subpath_offset)
else :
prev, arc, next = csp_join_offsets(subpath_offset[-prev_l:],segment_offset,sp1,sp2,sp1_l,sp2_l,r)
- #csp_draw([prev],"Blue")
- #csp_draw([arc],"Magenta")
+ #draw_csp([prev],"Blue")
+ #draw_csp([arc],"Magenta")
subpath_offset = csp_concat_subpaths(subpath_offset[:-prev_l+1],prev,arc,next)
prev_l = len(next)
sp1_l, sp2_l = sp1[:], sp2[:]
@@ -1629,9 +2108,9 @@ def csp_offset(csp, r) :
prev, arc, next = csp_join_offsets(subpath_offset[-prev_l:], subpath_offset[:2], subpath[0], subpath[1], sp1_l,sp2_l, r)
subpath_offset[:2] = next[:]
subpath_offset = csp_concat_subpaths(subpath_offset[:-prev_l+1],prev,arc)
- #csp_draw([prev],"Blue")
- #csp_draw([arc],"Red")
- #csp_draw([next],"Red")
+ #draw_csp([prev],"Blue")
+ #draw_csp([arc],"Red")
+ #draw_csp([next],"Red")
# Collect subpath's offset and save it to unclipped offset list.
unclipped_offset[i] = subpath_offset[:]
@@ -1644,7 +2123,7 @@ def csp_offset(csp, r) :
time_ = time.time()
#for i in range(len(unclipped_offset)):
- # csp_draw([unclipped_offset[i]], color = ["Green","Red","Blue"][i%3], width = .1)
+ # draw_csp([unclipped_offset[i]], color = ["Green","Red","Blue"][i%3], width = .1)
#return []
############################################################################
# Now to the clipping.
@@ -1716,7 +2195,7 @@ def csp_offset(csp, r) :
splitted_offset += [subpath[:]]
#for i in range(len(splitted_offset)):
- # csp_draw([splitted_offset[i]], color = ["Green","Red","Blue"][i%3])
+ # draw_csp([splitted_offset[i]], color = ["Green","Red","Blue"][i%3])
print_("Splitted in %s"%(time.time()-time_))
time_ = time.time()
@@ -1742,7 +2221,7 @@ def csp_offset(csp, r) :
if not clip :
result += [s1[:]]
elif options.offset_draw_clippend_path :
- csp_draw([s1],color="Red",width=.1)
+ draw_csp([s1],color="Red",width=.1)
draw_pointer( csp_at_t(s2[-2],s2[-1],1.)+
(P(csp_at_t(s2[-2],s2[-1],1.))+ P(csp_normalized_normal(s2[-2],s2[-1],1.))*10).to_list(),"Green", "line" )
draw_pointer( csp_at_t(s1[0],s1[1],0.)+
@@ -1751,14 +2230,14 @@ def csp_offset(csp, r) :
# Now join all together and check closure and orientation of result
joined_result = csp_join_subpaths(result)
# Check if each subpath from joined_result is closed
- #csp_draw(joined_result,color="Green",width=1)
+ #draw_csp(joined_result,color="Green",width=1)
for s in joined_result[:] :
if csp_subpaths_end_to_start_distance2(s,s) > 0.001 :
# Remove open parts
if options.offset_draw_clippend_path:
- csp_draw([s],color="Orange",width=1)
+ draw_csp([s],color="Orange",width=1)
draw_pointer(s[0][1], comment= csp_subpaths_end_to_start_distance2(s,s))
draw_pointer(s[-1][1], comment = csp_subpaths_end_to_start_distance2(s,s))
joined_result.remove(s)
@@ -1781,7 +2260,7 @@ def csp_offset(csp, r) :
if not r1 < dist[0] < r2 :
joined_result.remove(s)
if options.offset_draw_clippend_path:
- csp_draw([s], comment = math.sqrt(dist[0]))
+ draw_csp([s], comment = math.sqrt(dist[0]))
draw_pointer(csp_at_t(csp[dist[1]][dist[2]-1],csp[dist[1]][dist[2]],dist[3])+s[int(len(s)/2)][1],"blue", "line", comment = [math.sqrt(dist[0]),i,j,sp] )
print_("-----------------------------")
@@ -1867,7 +2346,7 @@ def biarc(sp1, sp2, z1, z2, depth=0):
alpha = (p2a - p0a) % (2*math.pi)
if (p0a<p2a and (p1a<p0a or p2a<p1a)) or (p2a<p1a<p0a) :
alpha = -2*math.pi+alpha
- if abs(R.x)>1000000 or abs(R.y)>1000000 or (R-P0).mag<options.min_arc_radius :
+ if abs(R.x)>1000000 or abs(R.y)>1000000 or (R-P0).mag<options.min_arc_radius**2 :
return None, None
else :
return R, alpha
@@ -1880,7 +2359,22 @@ def biarc(sp1, sp2, z1, z2, depth=0):
else:
if R2.mag()*a2 == 0 : zm = z2
else : zm = z1 + (z2-z1)*(abs(R1.mag()*a1))/(abs(R2.mag()*a2)+abs(R1.mag()*a1))
- return [ [ sp1[1], 'arc', [R1.x,R1.y], a1, [P2.x,P2.y], [z1,zm] ], [ [P2.x,P2.y], 'arc', [R2.x,R2.y], a2, [P4.x,P4.y], [zm,z2] ] ]
+
+ l = (P0-P2).l2()
+ if l < EMC_TOLERANCE_EQUAL**2 or l<EMC_TOLERANCE_EQUAL**2 * R1.l2() /100 :
+ # arc should be straight otherwise it could be threated as full circle
+ arc1 = [ sp1[1], 'line', 0, 0, [P2.x,P2.y], [z1,zm] ]
+ else :
+ arc1 = [ sp1[1], 'arc', [R1.x,R1.y], a1, [P2.x,P2.y], [z1,zm] ]
+
+ l = (P4-P2).l2()
+ if l < EMC_TOLERANCE_EQUAL**2 or l<EMC_TOLERANCE_EQUAL**2 * R2.l2() /100 :
+ # arc should be straight otherwise it could be threated as full circle
+ arc2 = [ [P2.x,P2.y], 'line', 0, 0, [P4.x,P4.y], [zm,z2] ]
+ else :
+ arc2 = [ [P2.x,P2.y], 'arc', [R2.x,R2.y], a2, [P4.x,P4.y], [zm,z2] ]
+
+ return [ arc1, arc2 ]
def biarc_curve_segment_length(seg):
@@ -1948,7 +2442,8 @@ class Postprocessor():
"flip" : self.flip_axis,
"flip_axis" : self.flip_axis,
"round" : self.round_coordinates,
- "parameterize" : self.parameterize,
+ "parameterize" : self.parameterize,
+ "regex" : self.re_sub_on_gcode_lines
}
@@ -1976,11 +2471,15 @@ class Postprocessor():
self.error("Unrecognized function '%s' while postprocessing.\n(Command: '%s')"%(function,command), "error")
- def re_sub_on_gcode_lines(self, pattern,replacemant):
+ def re_sub_on_gcode_lines(self, parameters):
gcode = self.gcode.split("\n")
self.gcode = ""
- for i in range(len(gcode)) :
- self.gcode += re.sub(pattern,replacement,gcode[i])
+ try :
+ for line in gcode :
+ self.gcode += eval( "re.sub(%s,line)"%parameters) +"\n"
+
+ except Exception as ex :
+ self.error("Bad parameters for regexp. They should be as re.sub pattern and replacement parameters! For example: r\"G0(\d)\", r\"G\\1\" \n(Parameters: '%s')\n %s"%(parameters, ex), "error")
def remapi(self,parameters):
@@ -2230,12 +2729,13 @@ class Polygon:
def rotate_(self,sin,cos) :
- for i in range(len(self.polygon)) :
- for j in range(len(self.polygon[i])) :
- x,y = self.polygon[i][j][0], self.polygon[i][j][1]
- self.polygon[i][j][0] = x*cos - y*sin
- self.polygon[i][j][1] = x*sin + y*cos
-
+ self.polygon = [
+ [
+ [point[0]*cos - point[1]*sin,point[0]*sin + point[1]*cos] for point in subpoly
+ ]
+ for subpoly in self.polygon
+ ]
+
def rotate(self, a):
cos, sin = math.cos(a), math.sin(a)
@@ -2322,9 +2822,10 @@ class Polygon:
self.move(0, -dist)
- def draw(self,color="#075",width=.1) :
- for poly in self.polygon :
- csp_draw( [csp_subpath_line_to([],poly+[poly[0]])], color=color,width=width )
+ def draw(self,color="#075",width=.1, group = None) :
+ csp = [csp_subpath_line_to([],poly+[poly[0]]) for poly in self.polygon]
+ draw_csp( csp, color=color,width=width, group = group)
+
def add(self, add) :
@@ -2593,7 +3094,8 @@ class Arangement_Genetic:
self.incest_mutation_multiplyer = 2.
self.incest_mutation_count_multiplyer = 2.
else :
- if random.random()<.01 : print_(self.species_distance2(parent1, parent2))
+ pass
+# if random.random()<.01 : print_(self.species_distance2(parent1, parent2))
start_gene = random.randint(0,self.genes_count)
end_gene = (max(1,random.randint(0,self.genes_count),int(self.genes_count/4))+start_gene) % self.genes_count
if end_gene<start_gene :
@@ -2643,6 +3145,7 @@ class Arangement_Genetic:
def test(self,test_function):
+ time_ = time.time()
for i in range(len(self.population)) :
if self.population[i][0] == None :
surface = test_function(self.population[i][1])
@@ -2650,24 +3153,82 @@ class Arangement_Genetic:
self.population[i][0] = (b[3]-b[1])*(b[2]-b[0])
self.population.sort()
-
def test_spiece_centroid(self,spiece) :
- poly = Polygon(copy.deepcopy(self.polygons[spiece[0][0]].polygon))
- poly.rotate(spiece[0][2]*math.pi2)
+ poly = Polygon( self.polygons[spiece[0][0]].polygon[:])
+ poly.rotate(spiece[0][1]*math.pi2)
surface = Polygon(poly.polygon)
- i = 0
for p in spiece[1:] :
- i += 1
- poly = Polygon(copy.deepcopy(self.polygons[p[0]].polygon))
- poly.rotate(p[2]*math.pi2)
+ poly = Polygon(self.polygons[p[0]].polygon[:])
c = surface.centroid()
+ surface.move(-c[0],-c[1])
c1 = poly.centroid()
- direction = [math.cos(p[1]*math.pi2), -math.sin(p[1]*math.pi2)]
- poly.move(c[0]-c1[0]-direction[0]*100,c[1]-c1[1]-direction[1]*100)
- poly.drop_into_direction(direction,surface)
+ poly.move(-c1[0],-c1[1])
+ poly.rotate(p[1]*math.pi2+p[2]*math.pi2)
+ surface.rotate(p[2]*math.pi2)
+ poly.drop_down(surface)
surface.add(poly)
+ surface.rotate(-p[2]*math.pi2)
return surface
+
+ def test_inline(self) :
+ ###
+ ### Fast test function using weave's from scipy inline function
+ ###
+ try :
+ converters is None
+ except :
+ try:
+ from scipy import weave
+ from scipy.weave import converters
+ except:
+ options.self.error("For this function Scipy is needed. See http://www.cnc-club.ru/gcodetools for details.","error")
+
+ # Prepare vars
+ poly_, subpoly_, points_ = [], [], []
+ for poly in self.polygons :
+ p = poly.polygon
+ poly_ += [len(subpoly_), len(subpoly_)+len(p)*2]
+ for subpoly in p :
+ subpoly_ += [len(points_), len(points_)+len(subpoly)*2+2]
+ for point in subpoly :
+ points_ += point
+ points_ += subpoly[0] # Close subpolygon
+
+ test_ = []
+ population_ = []
+ for spiece in self.population:
+ test_.append( spiece[0] if spiece[0] != None else -1)
+ for sp in spiece[1]:
+ population_ += sp
+
+ lp_, ls_, l_, lt_ = len(poly_), len(subpoly_), len(points_), len(test_)
+
+ f = open('inline_test.c', 'r')
+ code = f.read()
+ f.close()
+
+ f = open('inline_test_functions.c', 'r')
+ functions = f.read()
+ f.close()
+
+ stdout_ = sys.stdout
+ s = ''
+ sys.stdout = s
+
+ test = weave.inline(
+ code,
+ ['points_','subpoly_','poly_', 'lp_', 'ls_', 'l_', 'lt_','test_', 'population_'],
+ compiler='gcc',
+ support_code = functions,
+ )
+ if s!='' : options.self.error(s,"warning")
+ sys.stdout = stdout_
+
+ for i in range(len(test_)):
+ self.population[i][0] = test_[i]
+
+
#surface.draw()
@@ -2681,7 +3242,7 @@ class Arangement_Genetic:
class Gcodetools(inkex.Effect):
- def export_gcode(self,gcode) :
+ def export_gcode(self,gcode, no_headers = False) :
if self.options.postprocessor != "" or self.options.postprocessor_custom != "" :
postprocessor = Postprocessor(self.error)
postprocessor.gcode = gcode
@@ -2689,13 +3250,169 @@ class Gcodetools(inkex.Effect):
postprocessor.process(self.options.postprocessor)
if self.options.postprocessor_custom != "" :
postprocessor.process(self.options.postprocessor_custom)
- postprocessor.gcode = self.header + postprocessor.gcode + self.footer
+
+ if not no_headers :
+ postprocessor.gcode = self.header + postprocessor.gcode + self.footer
+
f = open(self.options.directory+self.options.file, "w")
f.write(postprocessor.gcode)
f.close()
################################################################################
+### In/out paths:
+### TODO move it to the bottom
+################################################################################
+ def plasma_prepare_path(self) :
+
+ def add_arc(sp1,sp2,end = False,l=10.,r=10.) :
+ if not end :
+ n = csp_normalized_normal(sp1,sp2,0.)
+ return csp_reverse([arc_from_s_r_n_l(sp1[1],r,n,-l)])[0]
+ else:
+ n = csp_normalized_normal(sp1,sp2,1.)
+ return arc_from_s_r_n_l(sp2[1],r,n,l)
+
+ def add_normal(sp1,sp2,end = False,l=10.,r=10.) :
+ # r is needed only for be compatible with add_arc
+ if not end :
+ n = csp_normalized_normal(sp1,sp2,0.)
+ p = [n[0]*l+sp1[1][0],n[1]*l+sp1[1][1]]
+ return csp_subpath_line_to([], [p,sp1[1]])
+ else:
+ n = csp_normalized_normal(sp1,sp2,1.)
+ p = [n[0]*l+sp2[1][0],n[1]*l+sp2[1][1]]
+ return csp_subpath_line_to([], [sp2[1],p])
+
+ def add_tangent(sp1,sp2,end = False,l=10.,r=10.) :
+ # r is needed only for be compatible with add_arc
+ if not end :
+ n = csp_normalized_slope(sp1,sp2,0.)
+ p = [-n[0]*l+sp1[1][0],-n[1]*l+sp1[1][1]]
+ return csp_subpath_line_to([], [p,sp1[1]])
+ else:
+ n = csp_normalized_slope(sp1,sp2,1.)
+ p = [n[0]*l+sp2[1][0],n[1]*l+sp2[1][1]]
+ return csp_subpath_line_to([], [sp2[1],p])
+
+ if not self.options.in_out_path and not self.options.plasma_prepare_corners and self.options.in_out_path_do_not_add_reference_point:
+ self.error("Warning! Extenstion is not said to do anything! Enable one of Create in-out paths or Prepare corners checkboxes or disable Do not add in-out referense point!")
+ return
+
+ # Add in-out-reference point if there is no one yet.
+ if ( (len(self.in_out_reference_points)==0 and self.options.in_out_path
+ or not self.options.in_out_path and not self.options.plasma_prepare_corners )
+ and not self.options.in_out_path_do_not_add_reference_point) :
+ self.options.orientation_points_count = "in-out reference point"
+ self.orientation()
+
+ if self.options.in_out_path or self.options.plasma_prepare_corners:
+ self.set_markers()
+ add_func = {"Round":add_arc, "Perpendicular": add_normal, "Tangent": add_tangent}[self.options.in_out_path_type]
+ if self.options.in_out_path_type == "Round" and self.options.in_out_path_len > self.options.in_out_path_radius*3/2*math.pi :
+ self.error("In-out len is to big for in-out radius will cropp it to be r*3/2*pi!", "warning")
+
+ if self.selected_paths == {} and self.options.auto_select_paths:
+ self.selected_paths = self.paths
+ self.error(_("No paths are selected! Trying to work on all available paths."),"warning")
+
+ if self.selected_paths == {}:
+ self.error(_("Noting is selected. Please select something."),"warning")
+ a = self.options.plasma_prepare_corners_tolerance
+ corner_tolerance = cross([1.,0.], [math.cos(a),math.sin(a)])
+
+ for layer in self.layers :
+ if layer in self.selected_paths :
+ max_dist = self.transform_scalar(self.options.in_out_path_point_max_dist, layer, reverse=True)
+ l = self.transform_scalar(self.options.in_out_path_len, layer, reverse=True)
+ plasma_l = self.transform_scalar(self.options.plasma_prepare_corners_distance, layer, reverse=True)
+ r = self.transform_scalar(self.options.in_out_path_radius, layer, reverse=True)
+ l = min(l,r*3/2*math.pi)
+
+ for path in self.selected_paths[layer]:
+ csp = self.apply_transforms( path, cubicsuperpath.parsePath(path.get("d")) )
+ csp = csp_remove_zerro_segments(csp)
+ res = []
+
+ for subpath in csp :
+ # Find closes point to in-out reference point
+ # If subpath is open skip this step
+ if self.options.in_out_path :
+ # split and reverse path for further add in-out points
+ if point_to_point_d2(subpath[0][1], subpath[-1][1]) < 1.e-10 :
+ d = [1e100,1,1,1.]
+ for p in self.in_out_reference_points :
+ d1 = csp_to_point_distance([subpath], p, dist_bounds = [0,max_dist], tolerance=.01)
+ if d1[0] < d[0] :
+ d = d1[:]
+ p_ = p
+ if d[0] < max_dist**2 :
+ # Lets find is there any angles near this point to put in-out path in
+ # the angle if it's possible
+ # remove last node to make iterations easier
+ subpath[0][0] = subpath[-1][0]
+ del subpath[-1]
+ max_cross = [-1e100, None]
+ for j in range(len(subpath)) :
+ sp1,sp2,sp3 = subpath[j-2],subpath[j-1],subpath[j]
+ if point_to_point_d2(sp2[1],p_)<max_dist**2:
+ s1,s2 = csp_normalized_slope(sp1,sp2,1.), csp_normalized_slope(sp2,sp3,0.)
+ max_cross = max(max_cross,[cross(s1,s2),j-1])
+ # return back last point
+ subpath.append(subpath[0])
+ if max_cross[1] !=None and max_cross[0]>corner_tolerance :
+ # there's an angle near the point
+ j = max_cross[1]
+ if j<0 : j -= 1
+ if j!=0 :
+ subpath = csp_concat_subpaths(subpath[j:],subpath[:j+1])
+ else :
+ # have to cut path's segment
+ d,i,j,t = d
+ sp1,sp2,sp3 = csp_split(subpath[j-1],subpath[j],t)
+ subpath = csp_concat_subpaths([sp2,sp3], subpath[j:], subpath[:j], [sp1,sp2])
+
+ if self.options.plasma_prepare_corners :
+ # prepare corners
+ # find corners and add some nodes
+ # corner at path's start/end is ignored
+ res_ = [subpath[0]]
+ for sp2, sp3 in zip(subpath[1:],subpath[2:]) :
+ sp1 = res_[-1]
+ s1,s2 = csp_normalized_slope(sp1,sp2,1.), csp_normalized_slope(sp2,sp3,0.)
+ if cross(s1,s2) > corner_tolerance :
+ # got a corner to process
+ S1,S2 = P(s1),P(s2)
+ N = (S1-S2).unit()*plasma_l
+ SP2= P(sp2[1])
+ P1 = (SP2 + N)
+ res_ += [
+ [sp2[0],sp2[1], (SP2+S1*plasma_l).to_list() ],
+ [ (P1-N.ccw()/2 ).to_list(), P1.to_list(), (P1+N.ccw()/2).to_list()],
+ [(SP2-S2*plasma_l).to_list(), sp2[1],sp2[2]]
+ ]
+ else:
+ res_ += [sp2]
+ res_ += [sp3]
+ subpath = res_
+ if self.options.in_out_path :
+ # finally add let's add in-out paths...
+ subpath = csp_concat_subpaths(
+ add_func(subpath[0],subpath[1],False,l,r),
+ subpath,
+ add_func(subpath[-2],subpath[-1],True,l,r)
+ )
+
+
+ res += [ subpath ]
+
+
+ if self.options.in_out_path_replace_original_path :
+ path.set("d", cubicsuperpath.formatPath( self.apply_transforms(path,res,True) ))
+ else:
+ draw_csp(res, width=1, style=styles["in_out_path_style"] )
+
+################################################################################
### Arrangement: arranges paths by givven params
### TODO move it to the bottom
################################################################################
@@ -2732,18 +3449,19 @@ class Gcodetools(inkex.Effect):
population = Arangement_Genetic(polygons, material_width)
- print_("Genetic alhorithm start at %s"%(time_))
+ print_("Genetic algorithm start at %s"%(time_))
+ start_time = time.time()
time_ = time.time()
population.add_random_species(50)
- population.test(population.test_spiece_centroid)
+ #population.test(population.test_spiece_centroid)
print_("Initial population done in %s"%(time.time()-time_))
time_ = time.time()
pop = copy.deepcopy(population)
population_count = self.options.arrangement_population_count
- last_champ = []
+ last_champ = -1
champions_count = 0
@@ -2757,6 +3475,7 @@ class Gcodetools(inkex.Effect):
population.move_mutation_factor = 1.
population.mutation_genes_count = [1,2]
population.populate_species(250, 20)
+ print_("Populate done at %s"%(time.time()-time_))
"""
randomize = i%100 < 40
if i%100 < 40 :
@@ -2768,26 +3487,27 @@ class Gcodetools(inkex.Effect):
population.order_mutation_factor = 1./(i%100-79) if 80<=i%100<100 else 1.
population.populate_species(250, 10)
"""
- population.test(population.test_spiece_centroid)
+ if self.options.arrangement_inline_test :
+ population.test_inline()
+ else:
+ population.test(population.test_spiece_centroid)
+
+ print_("Test done at %s"%(time.time()-time_))
draw_new_champ = False
print_()
- for x in population.population[:10]:
- print_(x[0])
+
if population.population[0][0]!= last_champ :
draw_new_champ = True
+ improve = last_champ-population.population[0][0]
last_champ = population.population[0][0]*1
-
- k = ""
- #for j in range(10) :
- # k += "%s " % population.population[j][0]
+
print_("Cicle %s done in %s"%(i,time.time()-time_))
time_ = time.time()
print_("%s incests been found"%population.inc)
print_()
- #print_(k)
- #print_()
+
if i == 0 or i == population_count-1 or draw_new_champ :
colors = ["blue"]
@@ -2796,9 +3516,9 @@ class Gcodetools(inkex.Effect):
x,y = 400* (champions_count%10), 700*int(champions_count/10)
surface.move(x-b[0],y-b[1])
surface.draw(width=2, color=colors[0])
- draw_text("Step = %s\nSquare = %f"%(i,(b[2]-b[0])*(b[3]-b[1])),x,y-40)
+ draw_text("Step = %s\nSquare = %f\nSquare improvement = %f\nTime from start = %f"%(i,(b[2]-b[0])*(b[3]-b[1]),improve,time.time()-start_time),x,y-50)
champions_count += 1
-
+ """
spiece = population.population[0][1]
poly = Polygon(copy.deepcopy(population.polygons[spiece[0][0]].polygon))
poly.rotate(spiece[0][2]*math.pi2)
@@ -2831,7 +3551,7 @@ class Gcodetools(inkex.Effect):
poly.drop_into_direction(direction,surface)
surface.add(poly)
-
+ """
# Now we'll need apply transforms to original paths
@@ -2850,15 +3570,27 @@ class Gcodetools(inkex.Effect):
self.OptionParser.add_option("", "--biarc-tolerance", action="store", type="float", dest="biarc_tolerance", default="1", help="Tolerance used when calculating biarc interpolation.")
self.OptionParser.add_option("", "--biarc-max-split-depth", action="store", type="int", dest="biarc_max_split_depth", default="4", help="Defines maximum depth of splitting while approximating using biarcs.")
+ self.OptionParser.add_option("", "--path-to-gcode-order", action="store", type="string", dest="path_to_gcode_order", default="path by path", help="Defines cutting order path by path or layer by layer.")
+ self.OptionParser.add_option("", "--path-to-gcode-depth-function",action="store", type="string", dest="path_to_gcode_depth_function", default="zd", help="Path to gcode depth function.")
+ self.OptionParser.add_option("", "--path-to-gcode-sort-paths", action="store", type="inkbool", dest="path_to_gcode_sort_paths", default=True, help="Sort paths to reduse rapid distance.")
+ self.OptionParser.add_option("", "--comment-gcode", action="store", type="string", dest="comment_gcode", default="", help="Comment Gcode")
+ self.OptionParser.add_option("", "--comment-gcode-from-properties",action="store", type="inkbool", dest="comment_gcode_from_properties", default=False,help="Get additional comments from Object Properties")
+
+
self.OptionParser.add_option("", "--tool-diameter", action="store", type="float", dest="tool_diameter", default="3", help="Tool diameter used for area cutting")
self.OptionParser.add_option("", "--max-area-curves", action="store", type="int", dest="max_area_curves", default="100", help="Maximum area curves for each area")
- self.OptionParser.add_option("", "--area-inkscape-radius", action="store", type="float", dest="area_inkscape_radius", default="-10", help="Radius for preparing curves using inkscape")
+ self.OptionParser.add_option("", "--area-inkscape-radius", action="store", type="float", dest="area_inkscape_radius", default="0", help="Area curves overlaping (depends on tool diameter [0,0.9])")
+ self.OptionParser.add_option("", "--area-tool-overlap", action="store", type="float", dest="area_tool_overlap", default="-10", help="Radius for preparing curves using inkscape")
self.OptionParser.add_option("", "--unit", action="store", type="string", dest="unit", default="G21 (All units in mm)", help="Units")
self.OptionParser.add_option("", "--active-tab", action="store", type="string", dest="active_tab", default="", help="Defines which tab is active")
- self.OptionParser.add_option("", "--area-find-artefacts-diameter",action="store", type="float", dest="area_find_artefacts_diameter", default="1", help="artefacts seeking radius")
- self.OptionParser.add_option("", "--area-find-artefacts-action", action="store", type="string", dest="area_find_artefacts_action", default="mark with an arrow", help="artefacts action type")
+ self.OptionParser.add_option("", "--area-fill-angle", action="store", type="float", dest="area_fill_angle", default="0", help="Fill area with lines heading this angle")
+ self.OptionParser.add_option("", "--area-fill-shift", action="store", type="float", dest="area_fill_shift", default="0", help="Shift the lines by tool d * shift")
+ self.OptionParser.add_option("", "--area-fill-method", action="store", type="string", dest="area_fill_method", default="zig-zag", help="Filling method either zig-zag or spiral")
+
+ self.OptionParser.add_option("", "--area-find-artefacts-diameter",action="store", type="float", dest="area_find_artefacts_diameter", default="1", help="Artefacts seeking radius")
+ self.OptionParser.add_option("", "--area-find-artefacts-action", action="store", type="string", dest="area_find_artefacts_action", default="mark with an arrow", help="Artefacts action type")
self.OptionParser.add_option("", "--auto_select_paths", action="store", type="inkbool", dest="auto_select_paths", default=True, help="Select all paths if nothing is selected.")
@@ -2881,11 +3613,13 @@ class Gcodetools(inkex.Effect):
self.OptionParser.add_option("", "--lathe-x-axis-remap", action="store", type="string", dest="lathe_x_axis_remap", default="X", help="Lathe X axis remap")
self.OptionParser.add_option("", "--lathe-z-axis-remap", action="store", type="string", dest="lathe_z_axis_remap", default="Z", help="Lathe Z axis remap")
+ self.OptionParser.add_option("", "--lathe-rectangular-cutter-width",action="store", type="float", dest="lathe_rectangular_cutter_width", default="4", help="Rectangular cutter width")
+
self.OptionParser.add_option("", "--create-log", action="store", type="inkbool", dest="log_create_log", default=False, help="Create log files")
self.OptionParser.add_option("", "--log-filename", action="store", type="string", dest="log_filename", default='', help="Create log files")
- self.OptionParser.add_option("", "--orientation-points-count", action="store", type="int", dest="orientation_points_count", default='2', help="Orientation points count")
- self.OptionParser.add_option("", "--tools-library-type", action="store", type="string", dest="tools_library_type", default='cylinder cutter', help="Create tools defention")
+ self.OptionParser.add_option("", "--orientation-points-count", action="store", type="string", dest="orientation_points_count", default="2", help="Orientation points count")
+ self.OptionParser.add_option("", "--tools-library-type", action="store", type="string", dest="tools_library_type", default='cylinder cutter', help="Create tools definition")
self.OptionParser.add_option("", "--dxfpoints-action", action="store", type="string", dest="dxfpoints_action", default='replace', help="dxfpoint sign toggle")
@@ -2898,11 +3632,32 @@ class Gcodetools(inkex.Effect):
self.OptionParser.add_option("", "--arrangement-material-width", action="store", type="float", dest="arrangement_material_width", default=500, help="Materials width for arrangement")
self.OptionParser.add_option("", "--arrangement-population-count",action="store", type="int", dest="arrangement_population_count", default=100, help="Genetic algorithm populations count")
+ self.OptionParser.add_option("", "--arrangement-inline-test", action="store", type="inkbool", dest="arrangement_inline_test", default=False, help="Use C-inline test (some additional packets will be needed)")
+
self.OptionParser.add_option("", "--postprocessor", action="store", type="string", dest="postprocessor", default='', help="Postprocessor command.")
self.OptionParser.add_option("", "--postprocessor-custom", action="store", type="string", dest="postprocessor_custom", default='', help="Postprocessor custom command.")
-
+ self.OptionParser.add_option("", "--graffiti-max-seg-length", action="store", type="float", dest="graffiti_max_seg_length", default=1., help="Graffiti maximum segment length.")
+ self.OptionParser.add_option("", "--graffiti-min-radius", action="store", type="float", dest="graffiti_min_radius", default=10., help="Graffiti minimal connector's radius.")
+ self.OptionParser.add_option("", "--graffiti-start-pos", action="store", type="string", dest="graffiti_start_pos", default="(0;0)", help="Graffiti Start position (x;y).")
+ self.OptionParser.add_option("", "--graffiti-create-linearization-preview", action="store", type="inkbool", dest="graffiti_create_linearization_preview", default=True, help="Graffiti create linearization preview.")
+ self.OptionParser.add_option("", "--graffiti-create-preview", action="store", type="inkbool", dest="graffiti_create_preview", default=True, help="Graffiti create preview.")
+ self.OptionParser.add_option("", "--graffiti-preview-size", action="store", type="int", dest="graffiti_preview_size", default=800, help="Graffiti preview's size.")
+ self.OptionParser.add_option("", "--graffiti-preview-emmit", action="store", type="int", dest="graffiti_preview_emmit", default=800, help="Preview's paint emmit (pts/s).")
+
+
+ self.OptionParser.add_option("", "--in-out-path", action="store", type="inkbool", dest="in_out_path", default=True, help="Create in-out paths")
+ self.OptionParser.add_option("", "--in-out-path-do-not-add-reference-point", action="store", type="inkbool", dest="in_out_path_do_not_add_reference_point", default=False, help="Just add reference in-out point")
+ self.OptionParser.add_option("", "--in-out-path-point-max-dist", action="store", type="float", dest="in_out_path_point_max_dist", default=10., help="In-out path max distance to reference point")
+ self.OptionParser.add_option("", "--in-out-path-type", action="store", type="string", dest="in_out_path_type", default="Round", help="In-out path type")
+ self.OptionParser.add_option("", "--in-out-path-len", action="store", type="float", dest="in_out_path_len", default=10., help="In-out path length")
+ self.OptionParser.add_option("", "--in-out-path-replace-original-path",action="store", type="inkbool", dest="in_out_path_replace_original_path", default=False, help="Replace original path")
+ self.OptionParser.add_option("", "--in-out-path-radius", action="store", type="float", dest="in_out_path_radius", default=10., help="In-out path radius for round path")
+
+ self.OptionParser.add_option("", "--plasma-prepare-corners", action="store", type="inkbool", dest="plasma_prepare_corners", default=True, help="Prepare corners")
+ self.OptionParser.add_option("", "--plasma-prepare-corners-distance", action="store", type="float", dest="plasma_prepare_corners_distance", default=10.,help="Stepout distance for corners")
+ self.OptionParser.add_option("", "--plasma-prepare-corners-tolerance", action="store", type="float", dest="plasma_prepare_corners_tolerance", default=10.,help="Maximum angle for corner (0-180 deg)")
self.default_tool = {
"name": "Default tool",
@@ -2979,24 +3734,29 @@ class Gcodetools(inkex.Effect):
return c
+################################################################################
+### Draw csp
+################################################################################
+
+ def draw_csp(self, csp, layer=None, group=None, fill='none', stroke='#178ade', width=0.354, style=None):
+ if layer!=None :
+ csp = self.transform_csp(csp,layer,reverse=True)
+ if group==None and layer==None:
+ group = self.document.getroot()
+ elif group==None and layer!=None :
+ group = layer
+ csp = self.apply_transforms(group,csp, reverse=True)
+ if style!=None :
+ return draw_csp(csp, group=group, style=style)
+ else :
+ return draw_csp(csp, group=group, fill=fill, stroke=stroke, width=width)
+
+
+
+
def draw_curve(self, curve, layer, group=None, style=styles["biarc_style"]):
-
- self.get_defs()
- # Add marker to defs if it doesnot exists
- if "DrawCurveMarker" not in self.defs :
- defs = inkex.etree.SubElement( self.document.getroot(), inkex.addNS("defs","svg"))
- marker = inkex.etree.SubElement( defs, inkex.addNS("marker","svg"), {"id":"DrawCurveMarker","orient":"auto","refX":"-8","refY":"-2.41063","style":"overflow:visible"})
- inkex.etree.SubElement( marker, inkex.addNS("path","svg"),
- { "d":"m -6.55552,-2.41063 0,0 L -13.11104,0 c 1.0473,-1.42323 1.04126,-3.37047 0,-4.82126",
- "style": "fill:#000044; fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" }
- )
- if "DrawCurveMarker_r" not in self.defs :
- defs = inkex.etree.SubElement( self.document.getroot(), inkex.addNS("defs","svg"))
- marker = inkex.etree.SubElement( defs, inkex.addNS("marker","svg"), {"id":"DrawCurveMarker_r","orient":"auto","refX":"8","refY":"-2.41063","style":"overflow:visible"})
- inkex.etree.SubElement( marker, inkex.addNS("path","svg"),
- { "d":"m 6.55552,-2.41063 0,0 L 13.11104,0 c -1.0473,-1.42323 -1.04126,-3.37047 0,-4.82126",
- "style": "fill:#000044; fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" }
- )
+ self.set_markers()
+
for i in [0,1]:
style['biarc%s_r'%i] = simplestyle.parseStyle(style['biarc%s'%i])
style['biarc%s_r'%i]["marker-start"] = "url(#DrawCurveMarker_r)"
@@ -3004,9 +3764,18 @@ class Gcodetools(inkex.Effect):
style['biarc%s_r'%i] = simplestyle.formatStyle(style['biarc%s_r'%i])
if group==None:
- group = inkex.etree.SubElement( self.layers[min(1,len(self.layers)-1)], inkex.addNS('g','svg'), {"gcodetools": "Preview group"} )
+ if "preview_groups" not in dir(self) :
+ self.preview_groups = { layer: inkex.etree.SubElement( self.layers[min(1,len(self.layers)-1)], inkex.addNS('g','svg'), {"gcodetools": "Preview group"} ) }
+ elif layer not in self.preview_groups :
+ self.preview_groups[layer] = inkex.etree.SubElement( self.layers[min(1,len(self.layers)-1)], inkex.addNS('g','svg'), {"gcodetools": "Preview group"} )
+ group = self.preview_groups[layer]
+
s, arcn = '', 0
+ transform = self.get_transforms(group)
+ if transform != [] :
+ transform = self.reverse_transform(transform)
+ transform = simpletransform.formatTransform(transform)
a,b,c = [0.,0.], [1.,0.], [0.,1.]
k = (b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])
@@ -3019,13 +3788,13 @@ class Gcodetools(inkex.Effect):
if s!='':
if s[1] == 'line':
- inkex.etree.SubElement( group, inkex.addNS('path','svg'),
- {
- 'style': style['line'],
+ attr = { 'style': style['line'],
'd':'M %s,%s L %s,%s' % (s[0][0], s[0][1], si[0][0], si[0][1]),
"gcodetools": "Preview",
}
- )
+ if transform != [] :
+ attr["transform"] = transform
+ inkex.etree.SubElement( group, inkex.addNS('path','svg'), attr )
elif s[1] == 'arc':
arcn += 1
sp = s[0]
@@ -3046,8 +3815,8 @@ class Gcodetools(inkex.Effect):
a_end = a_st*1
a_st = a_st+a
st = style['biarc%s_r'%(arcn%2)]
- inkex.etree.SubElement( group, inkex.addNS('path','svg'),
- {
+
+ attr = {
'style': st,
inkex.addNS('cx','sodipodi'): str(c[0]),
inkex.addNS('cy','sodipodi'): str(c[1]),
@@ -3057,8 +3826,12 @@ class Gcodetools(inkex.Effect):
inkex.addNS('end','sodipodi'): str(a_end),
inkex.addNS('open','sodipodi'): 'true',
inkex.addNS('type','sodipodi'): 'arc',
- "gcodetools": "Preview",
- })
+ "gcodetools": "Preview",
+ }
+
+ if transform != [] :
+ attr["transform"] = transform
+ inkex.etree.SubElement( group, inkex.addNS('path','svg'), attr)
s = si
@@ -3068,10 +3841,10 @@ class Gcodetools(inkex.Effect):
self.options.directory += "\\"
else :
self.options.directory += "/"
- print_("Checking direcrory: '%s'"%self.options.directory)
+ print_("Checking directory: '%s'"%self.options.directory)
if (os.path.isdir(self.options.directory)):
if (os.path.isfile(self.options.directory+'header')):
- f = open(self.options.directory+slash+'header', 'r')
+ f = open(self.options.directory+'header', 'r')
self.header = f.read()
f.close()
else:
@@ -3103,8 +3876,13 @@ class Gcodetools(inkex.Effect):
max_n = max(max_n,int(r.group(1)))
filename = name + "_" + ( "0"*(4-len(str(max_n+1))) + str(max_n+1) ) + ext
self.options.file = filename
-
- print_("Testing writing rights on '%s'"%(self.options.directory+self.options.file))
+
+ if self.options.directory[-1] not in ["/","\\"]:
+ if "\\" in self.options.directory :
+ self.options.directory += "\\"
+ else :
+ self.options.directory += "/"
+
try:
f = open(self.options.directory+self.options.file, "w")
f.close()
@@ -3120,12 +3898,13 @@ class Gcodetools(inkex.Effect):
### Generate Gcode
### Generates Gcode on given curve.
###
-### Crve defenitnion [start point, type = {'arc','line','move','end'}, arc center, arc angle, end point, [zstart, zend]]
+### Curve definition [start point, type = {'arc','line','move','end'}, arc center, arc angle, end point, [zstart, zend]]
###
################################################################################
def generate_gcode(self, curve, layer, depth):
Zauto_scale = self.Zauto_scale[layer]
tool = self.tools[layer][0]
+ g = ""
def c(c):
c = [c[i] if i<len(c) else None for i in range(6)]
@@ -3151,8 +3930,10 @@ class Gcodetools(inkex.Effect):
self.last_used_tool = None
print_("working on curve")
print_(curve)
- g = tool['tool change gcode'] +"\n" if tool != self.last_used_tool else "\n"
+ if tool != self.last_used_tool :
+ g += ( "(Change tool to %s)\n" % re.sub("\"'\(\)\\\\"," ",tool["name"]) ) + tool["tool change gcode"] + "\n"
+
lg, zs, f = 'G00', self.options.Zsafe, " F%f"%tool['feed']
current_a = 0
go_to_safe_distance = "G00" + c([None,None,zs]) + "\n"
@@ -3173,7 +3954,7 @@ class Gcodetools(inkex.Effect):
a = calculate_angle(a, current_a)
g+="G01 A%s\n" % (a*tool['4th axis scale']+tool['4th axis offset'])
current_a = a
- if lg=="G00": g += "G01" + c([None,None,s[5][0]+depth]) + penetration_feed +"\n"
+ if lg=="G00": g += "G01" + c([None,None,s[5][0]+depth]) + penetration_feed +"(Penetrate)\n"
g += "G01" +c(si[0]+[s[5][1]+depth]) + feed + "\n"
lg = 'G01'
elif s[1] == 'arc':
@@ -3189,8 +3970,8 @@ class Gcodetools(inkex.Effect):
axis4 = " A%s"%((current_a+s[3])*tool['4th axis scale']+tool['4th axis offset'])
current_a = current_a+s[3]
else : axis4 = ""
- if lg=="G00": g += "G01" + c([None,None,s[5][0]+depth]) + penetration_feed + "\n"
- if (r[0]**2 + r[1]**2)>self.options.min_arc_radius:
+ if lg=="G00": g += "G01" + c([None,None,s[5][0]+depth]) + penetration_feed + "(Penetrate)\n"
+ if (r[0]**2 + r[1]**2)>self.options.min_arc_radius**2:
r1, r2 = (P(s[0])-P(s[2])), (P(si[0])-P(s[2]))
if abs(r1.mag()-r2.mag()) < 0.001 :
g += ("G02" if s[3]<0 else "G03") + c(si[0]+[ s[5][1]+depth, (s[2][0]-s[0][0]),(s[2][1]-s[0][1]) ]) + feed + axis4 + "\n"
@@ -3222,14 +4003,29 @@ class Gcodetools(inkex.Effect):
print_(trans)
g=g.getparent()
return trans
+
+ def reverse_transform(self,transform):
+ trans = numpy.array(transform + [[0,0,1]])
+ if numpy.linalg.det(trans)!=0 :
+ trans = numpy.linalg.inv(trans).tolist()[:2]
+ return trans
+ else :
+ return transform
- def apply_transforms(self,g,csp):
+ def apply_transforms(self,g,csp, reverse=False):
trans = self.get_transforms(g)
if trans != []:
- simpletransform.applyTransformToPath(trans, csp)
+ if not reverse :
+ simpletransform.applyTransformToPath(trans, csp)
+ else :
+ simpletransform.applyTransformToPath(self.reverse_transform(trans), csp)
return csp
+
+
+ def transform_scalar(self,x,layer,reverse=False):
+ return self.transform([x,0],layer,reverse)[0] - self.transform([0,0],layer,reverse)[0]
def transform(self,source_point, layer, reverse=False):
if layer not in self.transform_matrix:
@@ -3240,6 +4036,7 @@ class Gcodetools(inkex.Effect):
self.error(_("Orientation points for '%s' layer have not been found! Please add orientation points using Orientation tab!") % layer.get(inkex.addNS('label','inkscape')),"no_orientation_points")
elif self.layers[i] in self.transform_matrix :
self.transform_matrix[layer] = self.transform_matrix[self.layers[i]]
+ self.Zcoordinates[layer] = self.Zcoordinates[self.layers[i]]
else :
orientation_layer = self.layers[i]
if len(self.orientation_points[orientation_layer])>1 :
@@ -3274,9 +4071,9 @@ class Gcodetools(inkex.Effect):
self.transform_matrix[layer] = [[m[j*3+i][0] for i in range(3)] for j in range(3)]
else :
- self.error(_("Orientation points are wrong! (if there are two orientation points they sould not be the same. If there are three orientation points they should not be in a straight line.)"),"wrong_orientation_points")
+ self.error(_("Orientation points are wrong! (if there are two orientation points they should not be the same. If there are three orientation points they should not be in a straight line.)"),"wrong_orientation_points")
else :
- self.error(_("Orientation points are wrong! (if there are two orientation points they sould not be the same. If there are three orientation points they should not be in a straight line.)"),"wrong_orientation_points")
+ self.error(_("Orientation points are wrong! (if there are two orientation points they should not be the same. If there are three orientation points they should not be in a straight line.)"),"wrong_orientation_points")
self.transform_matrix_reverse[layer] = numpy.linalg.inv(self.transform_matrix[layer]).tolist()
print_("\n Layer '%s' transformation matrixes:" % layer.get(inkex.addNS('label','inkscape')) )
@@ -3316,6 +4113,7 @@ class Gcodetools(inkex.Effect):
notes = "Note "
warnings = """
Warning tools_warning
+ orientation_warning
bad_orientation_points_in_some_layers
more_than_one_orientation_point_groups
more_than_one_tool
@@ -3325,6 +4123,7 @@ class Gcodetools(inkex.Effect):
selection_does_not_contain_paths_will_take_all
selection_is_empty_will_comupe_drawing
selection_contains_objects_that_are_not_paths
+ Continue
"""
errors = """
Error
@@ -3334,6 +4133,7 @@ class Gcodetools(inkex.Effect):
active_layer_already_has_tool
active_layer_already_has_orientation_points
"""
+ s = str(s)
if type_.lower() in re.split("[\s\n,\.]+", errors.lower()) :
print_(s)
inkex.errormsg(s+"\n")
@@ -3348,6 +4148,47 @@ class Gcodetools(inkex.Effect):
inkex.errormsg(s)
sys.exit()
+
+################################################################################
+### Set markers
+################################################################################
+ def set_markers(self) :
+ self.get_defs()
+ # Add marker to defs if it doesnot exists
+ if "CheckToolsAndOPMarker" not in self.defs :
+ defs = inkex.etree.SubElement( self.document.getroot(), inkex.addNS("defs","svg"))
+ marker = inkex.etree.SubElement( defs, inkex.addNS("marker","svg"), {"id":"CheckToolsAndOPMarker","orient":"auto","refX":"-4","refY":"-1.687441","style":"overflow:visible"})
+ inkex.etree.SubElement( marker, inkex.addNS("path","svg"),
+
+ { "d":" m -4.588864,-1.687441 0.0,0.0 L -9.177728,0.0 c 0.73311,-0.996261 0.728882,-2.359329 0.0,-3.374882",
+ "style": "fill:#000044; fill-rule:evenodd;stroke:none;" }
+ )
+
+ if "DrawCurveMarker" not in self.defs :
+ defs = inkex.etree.SubElement( self.document.getroot(), inkex.addNS("defs","svg"))
+ marker = inkex.etree.SubElement( defs, inkex.addNS("marker","svg"), {"id":"DrawCurveMarker","orient":"auto","refX":"-4","refY":"-1.687441","style":"overflow:visible"})
+ inkex.etree.SubElement( marker, inkex.addNS("path","svg"),
+ { "d":"m -4.588864,-1.687441 0.0,0.0 L -9.177728,0.0 c 0.73311,-0.996261 0.728882,-2.359329 0.0,-3.374882",
+ "style": "fill:#000044; fill-rule:evenodd;stroke:none;" }
+ )
+
+ if "DrawCurveMarker_r" not in self.defs :
+ defs = inkex.etree.SubElement( self.document.getroot(), inkex.addNS("defs","svg"))
+ marker = inkex.etree.SubElement( defs, inkex.addNS("marker","svg"), {"id":"DrawCurveMarker_r","orient":"auto","refX":"4","refY":"-1.687441","style":"overflow:visible"})
+ inkex.etree.SubElement( marker, inkex.addNS("path","svg"),
+ { "d":"m 4.588864,-1.687441 0.0,0.0 L 9.177728,0.0 c -0.73311,-0.996261 -0.728882,-2.359329 0.0,-3.374882",
+ "style": "fill:#000044; fill-rule:evenodd;stroke:none;" }
+ )
+
+ if "InOutPathMarker" not in self.defs :
+ defs = inkex.etree.SubElement( self.document.getroot(), inkex.addNS("defs","svg"))
+ marker = inkex.etree.SubElement( defs, inkex.addNS("marker","svg"), {"id":"InOutPathMarker","orient":"auto","refX":"-4","refY":"-1.687441","style":"overflow:visible"})
+ inkex.etree.SubElement( marker, inkex.addNS("path","svg"),
+ { "d":"m -4.588864,-1.687441 0.0,0.0 L -9.177728,0.0 c 0.73311,-0.996261 0.728882,-2.359329 0.0,-3.374882",
+ "style": "fill:#0072a7; fill-rule:evenodd;stroke:none;" }
+ )
+
+
################################################################################
### Get defs from svg
@@ -3374,12 +4215,15 @@ class Gcodetools(inkex.Effect):
self.paths = {}
self.tools = {}
self.orientation_points = {}
+ self.graffiti_reference_points = {}
self.layers = [self.document.getroot()]
self.Zcoordinates = {}
self.transform_matrix = {}
self.transform_matrix_reverse = {}
self.Zauto_scale = {}
-
+ self.in_out_reference_points = []
+ self.my3Dlayer = None
+
def recursive_search(g, layer, selected=False):
items = g.getchildren()
items.reverse()
@@ -3387,8 +4231,12 @@ class Gcodetools(inkex.Effect):
if selected:
self.selected[i.get("id")] = i
if i.tag == inkex.addNS("g",'svg') and i.get(inkex.addNS('groupmode','inkscape')) == 'layer':
- self.layers += [i]
- recursive_search(i,i)
+ if i.get(inkex.addNS('label','inkscape')) == '3D' :
+ self.my3Dlayer=i
+ else :
+ self.layers += [i]
+ recursive_search(i,i)
+
elif i.get('gcodetools') == "Gcodetools orientation group" :
points = self.get_orientation_points(i)
if points != None :
@@ -3396,17 +4244,37 @@ class Gcodetools(inkex.Effect):
print_("Found orientation points in '%s' layer: %s" % (layer.get(inkex.addNS('label','inkscape')), points))
else :
self.error(_("Warning! Found bad orientation points in '%s' layer. Resulting Gcode could be corrupt!") % layer.get(inkex.addNS('label','inkscape')), "bad_orientation_points_in_some_layers")
- elif i.get("gcodetools") == "Gcodetools tool defenition" :
+
+ #Need to recognise old files ver 1.6.04 and earlier
+ elif i.get("gcodetools") == "Gcodetools tool definition" or i.get("gcodetools") == "Gcodetools tool defenition" :
tool = self.get_tool(i)
self.tools[layer] = self.tools[layer] + [tool.copy()] if layer in self.tools else [tool.copy()]
print_("Found tool in '%s' layer: %s" % (layer.get(inkex.addNS('label','inkscape')), tool))
+
+ elif i.get("gcodetools") == "Gcodetools graffiti reference point" :
+ point = self.get_graffiti_reference_points(i)
+ if point != [] :
+ self.graffiti_reference_points[layer] = self.graffiti_reference_points[layer]+[point[:]] if layer in self.graffiti_reference_points else [point]
+ else :
+ self.error(_("Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode could be corrupt!") % layer.get(inkex.addNS('label','inkscape')), "bad_orientation_points_in_some_layers")
+
elif i.tag == inkex.addNS('path','svg'):
if "gcodetools" not in i.keys() :
self.paths[layer] = self.paths[layer] + [i] if layer in self.paths else [i]
if i.get("id") in self.selected :
self.selected_paths[layer] = self.selected_paths[layer] + [i] if layer in self.selected_paths else [i]
+
+ elif i.get("gcodetools") == "In-out reference point group" :
+ items_ = i.getchildren()
+ items_.reverse()
+ for j in items_ :
+ if j.get("gcodetools") == "In-out reference point" :
+ self.in_out_reference_points.append( self.apply_transforms(j,cubicsuperpath.parsePath(j.get("d")))[0][0][1] )
+
+
elif i.tag == inkex.addNS("g",'svg'):
recursive_search(i,layer, (i.get("id") in self.selected) )
+
elif i.get("id") in self.selected :
# xgettext:no-pango-format
self.error(_("This extension works with Paths and Dynamic Offsets and groups of them only! All other objects will be ignored!\nSolution 1: press Path->Object to path or Shift+Ctrl+C.\nSolution 2: Path->Dynamic offset or Ctrl+J.\nSolution 3: export all contours to PostScript level 2 (File->Save As->.ps) and File->Import this file."),"selection_contains_objects_that_are_not_paths")
@@ -3414,6 +4282,27 @@ class Gcodetools(inkex.Effect):
recursive_search(self.document.getroot(),self.document.getroot())
+ if len(self.layers) == 1 :
+ self.error(_("Document has no layers! Add at least one layer using layers panel (Ctrl+Shift+L)"),"Error")
+ root = self.document.getroot()
+
+ if root in self.selected_paths or root in self.paths :
+ self.error(_("Warning! There are some paths in the root of the document, but not in any layer! Using bottom-most layer for them."), "tools_warning" )
+
+ if root in self.selected_paths :
+ if self.layers[-1] in self.selected_paths :
+ self.selected_paths[self.layers[-1]] += self.selected_paths[root][:]
+ else :
+ self.selected_paths[self.layers[-1]] = self.selected_paths[root][:]
+ del self.selected_paths[root]
+
+ if root in self.paths :
+ if self.layers[-1] in self.paths :
+ self.paths[self.layers[-1]] += self.paths[root][:]
+ else :
+ self.paths[self.layers[-1]] = self.paths[root][:]
+ del self.paths[root]
+
def get_orientation_points(self,g):
items = g.getchildren()
@@ -3435,12 +4324,21 @@ class Gcodetools(inkex.Effect):
if node.get('gcodetools') == "Gcodetools orientation point arrow":
point[0] = self.apply_transforms(node,cubicsuperpath.parsePath(node.get("d")))[0][0][1]
if node.get('gcodetools') == "Gcodetools orientation point text":
- r = re.match(r'(?i)\s*\(\s*(-?\s*\d*(?:,|\.)*\d*)\s*;\s*(-?\s*\d*(?:,|\.)*\d*)\s*;\s*(-?\s*\d*(?:,|\.)*\d*)\s*\)\s*',node.text)
+ r = re.match(r'(?i)\s*\(\s*(-?\s*\d*(?:,|\.)*\d*)\s*;\s*(-?\s*\d*(?:,|\.)*\d*)\s*;\s*(-?\s*\d*(?:,|\.)*\d*)\s*\)\s*',get_text(node))
point[1] = [float(r.group(1)),float(r.group(2)),float(r.group(3))]
if point[0]!=[] and point[1]!=[]: points += [point]
if len(points)==len(p2)==2 or len(points)==len(p3)==3 : return points
else : return None
-
+
+ def get_graffiti_reference_points(self,g):
+ point = [[], '']
+ for node in g :
+ if node.get('gcodetools') == "Gcodetools graffiti reference point arrow":
+ point[0] = self.apply_transforms(node,cubicsuperpath.parsePath(node.get("d")))[0][0][1]
+ if node.get('gcodetools') == "Gcodetools graffiti reference point text":
+ point[1] = get_text(node)
+ if point[0]!=[] and point[1]!='' : return point
+ else : return []
def get_tool(self, g):
tool = self.default_tool.copy()
@@ -3453,12 +4351,12 @@ class Gcodetools(inkex.Effect):
key = None
value = None
for j in i:
- if j.get("gcodetools") == "Gcodetools tool defention field name":
- key = j.text
- if j.get("gcodetools") == "Gcodetools tool defention field value":
- for k in j :
- if k.tag == inkex.addNS('tspan','svg') and k.get("gcodetools") == "Gcodetools tool defention field value":
- if k.text!=None : value = value +"\n" + k.text if value != None else k.text
+ #need to recognise old tools from ver 1.6.04
+ if j.get("gcodetools") == "Gcodetools tool definition field name" or j.get("gcodetools") == "Gcodetools tool defention field name":
+ key = get_text(j)
+ if j.get("gcodetools") == "Gcodetools tool definition field value" or j.get("gcodetools") == "Gcodetools tool defention field value":
+ value = get_text(j)
+ if value == "(None)": value = ""
if value == None or key == None: continue
#print_("Found tool parameter '%s':'%s'" % (key,value))
if key in self.default_tool.keys() :
@@ -3495,7 +4393,7 @@ class Gcodetools(inkex.Effect):
###
################################################################################
def path_to_gcode(self) :
-
+ from functools import partial
def get_boundaries(points):
minx,miny,maxx,maxy=None,None,None,None
out=[[],[],[],[]]
@@ -3579,6 +4477,26 @@ class Gcodetools(inkex.Effect):
return minimal_way
+ def sort_lines(lines):
+ if len(lines) == 0 : return []
+ lines = [ [key]+lines[key] for key in range(len(lines))]
+ keys = [0]
+ end_point = lines[0][3:]
+ print_("!!!",lines,"\n",end_point)
+ del lines[0]
+ while len(lines)>0:
+ dist = [ [point_to_point_d2(end_point,lines[i][1:3]),i] for i in range(len(lines))]
+ i = min(dist)[1]
+ keys.append(lines[i][0])
+ end_point = lines[i][3:]
+ del lines[i]
+ return keys
+
+ def sort_curves(curves):
+ lines = []
+ for curve in curves:
+ lines += [curve[0][0][0] + curve[-1][-1][0]]
+ return sort_lines(lines)
def print_dxfpoints(points):
gcode=""
@@ -3586,7 +4504,19 @@ class Gcodetools(inkex.Effect):
gcode +="(drilling dxfpoint)\nG00 Z%f\nG00 X%f Y%f\nG01 Z%f F%f\nG04 P%f\nG00 Z%f\n" % (self.options.Zsafe,point[0],point[1],self.Zcoordinates[layer][1],self.tools[layer][0]["penetration feed"],0.2,self.options.Zsafe)
# print_(("got dxfpoints array=",points))
return gcode
-
+
+ def get_path_properties(node, recursive=True, tags={inkex.addNS('desc','svg'):"Description",inkex.addNS('title','svg'):"Title"} ) :
+ res = {}
+ done = False
+ root = self.document.getroot()
+ while not done and node != root :
+ for i in node.getchildren():
+ if i.tag in tags:
+ res[tags[i.tag]] = i.text
+ done = True
+ node = node.getparent()
+ return res
+
if self.selected_paths == {} and self.options.auto_select_paths:
paths=self.paths
self.error(_("No paths are selected! Trying to work on all available paths."),"warning")
@@ -3594,24 +4524,52 @@ class Gcodetools(inkex.Effect):
paths = self.selected_paths
self.check_dir()
gcode = ""
-
+
biarc_group = inkex.etree.SubElement( self.selected_paths.keys()[0] if len(self.selected_paths.keys())>0 else self.layers[0], inkex.addNS('g','svg') )
print_(("self.layers=",self.layers))
print_(("paths=",paths))
+ colors = {}
for layer in self.layers :
-# print_(("processing layer",layer," of layers:",self.layers))
if layer in paths :
-# print_(("layer ",layer, " is in paths:",paths))
print_(("layer",layer))
+ # transform simple path to get all var about orientation
+ self.transform_csp([ [ [[0,0],[0,0],[0,0]], [[0,0],[0,0],[0,0]] ] ], layer)
+
self.set_tool(layer)
- p = []
+ curves = []
dxfpoints = []
+
+ try :
+ depth_func = eval('lambda c,d,s: ' + self.options.path_to_gcode_depth_function.strip('"'))
+ except:
+ self.error("Bad depth function! Enter correct function at Path to Gcode tab!")
+
for path in paths[layer] :
if "d" not in path.keys() :
- self.error(_("Warning: One or more paths dont have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!"),"selection_contains_objects_that_are_not_paths")
+ self.error(_("Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!"),"selection_contains_objects_that_are_not_paths")
continue
csp = cubicsuperpath.parsePath(path.get("d"))
csp = self.apply_transforms(path, csp)
+ id_ = path.get("id")
+
+ def set_comment(match, path):
+ if match.group(1) in path.keys() :
+ return path.get(match.group(1))
+ else:
+ return "None"
+ if self.options.comment_gcode != "" :
+ comment = re.sub("\[([A-Za-z_\-\:]+)\]", partial(set_comment, path=path), self.options.comment_gcode)
+ comment = comment.replace(":newline:","\n")
+ comment = gcode_comment_str(comment)
+ else:
+ comment = ""
+ if self.options.comment_gcode_from_properties :
+ tags = get_path_properties(path)
+ for tag in tags :
+ comment += gcode_comment_str("%s: %s"%(tag,tags[tag]))
+
+ style = simplestyle.parseStyle(path.get("style"))
+ colors[id_] = simplestyle.parseColor(style['stroke'] if "stroke" in style and style['stroke']!='none' else "#000")
if path.get("dxfpoint") == "1":
tmp_curve=self.transform_csp(csp, layer)
x=tmp_curve[0][0][0][0]
@@ -3619,16 +4577,80 @@ class Gcodetools(inkex.Effect):
print_("got dxfpoint (scaled) at (%f,%f)" % (x,y))
dxfpoints += [[x,y]]
else:
- p += csp
+
+ zd,zs = self.Zcoordinates[layer][1], self.Zcoordinates[layer][0]
+ c = 1. - float(sum(colors[id_]))/255/3
+ curves += [
+ [
+ [id_, depth_func(c,zd,zs), comment],
+ [ self.parse_curve([subpath], layer) for subpath in csp ]
+ ]
+ ]
+# for c in curves :
+# print_(c)
dxfpoints=sort_dxfpoints(dxfpoints)
gcode+=print_dxfpoints(dxfpoints)
- curve = self.parse_curve(p, layer)
- self.draw_curve(curve, layer, biarc_group)
- if self.tools[layer][0]["depth step"] == 0 : self.tools[layer][0]["depth step"] = 1
- for step in range( 0, int(math.ceil( abs( (self.Zcoordinates[layer][1]-self.Zcoordinates[layer][0])/self.tools[layer][0]["depth step"] )) ) ):
- Zpos = max( self.Zcoordinates[layer][1], self.Zcoordinates[layer][0] - abs(self.tools[layer][0]["depth step"]*(step+1)) )
- gcode += self.generate_gcode(curve, layer, Zpos)
-
+
+
+ for curve in curves :
+ for subcurve in curve[1] :
+ self.draw_curve(subcurve, layer)
+
+ if self.options.path_to_gcode_order == 'subpath by subpath':
+ curves_ = []
+ for curve in curves :
+ curves_ += [ [curve[0],[subcurve]] for subcurve in curve[1] ]
+ curves = curves_
+
+ self.options.path_to_gcode_order = 'path by path'
+
+ if self.options.path_to_gcode_order == 'path by path':
+ if self.options.path_to_gcode_sort_paths :
+ keys = sort_curves( [curve[1] for curve in curves] )
+ else :
+ keys = range(len(curves))
+ for key in keys:
+ d = curves[key][0][1]
+ for step in range( 0, int(math.ceil( abs((zs-d)/self.tools[layer][0]["depth step"] )) ) ):
+ z = max(d, zs - abs(self.tools[layer][0]["depth step"]*(step+1)))
+
+ gcode += gcode_comment_str("\nStart cutting path id: %s"%curves[key][0][0])
+ if curves[key][0][2] != "()" :
+ gcode += curves[key][0][2] # add comment
+
+ for curve in curves[key][1]:
+ gcode += self.generate_gcode(curve, layer, z)
+
+ gcode += gcode_comment_str("End cutting path id: %s\n\n"%curves[key][0][0])
+
+ else: # pass by pass
+ mind = min( [curve[0][1] for curve in curves] )
+ for step in range( 0, int(math.ceil( abs((zs-mind)/self.tools[layer][0]["depth step"] )) ) ):
+ z = zs - abs(self.tools[layer][0]["depth step"]*(step))
+ curves_ = []
+ for curve in curves:
+ if curve[0][1]<z :
+ curves_.append(curve)
+
+ z = zs - abs(self.tools[layer][0]["depth step"]*(step+1))
+ gcode += "\n(Pass at depth %s)\n"%z
+
+ if self.options.path_to_gcode_sort_paths :
+ keys = sort_curves( [curve[1] for curve in curves_] )
+ else :
+ keys = range(len(curves_))
+ for key in keys:
+
+ gcode += gcode_comment_str("Start cutting path id: %s"%curves[key][0][0])
+ if curves[key][0][2] != "()" :
+ gcode += curves[key][0][2] # add comment
+
+ for subcurve in curves_[key][1]:
+ gcode += self.generate_gcode(subcurve, layer, max(z,curves_[key][0][1]))
+
+ gcode += gcode_comment_str("End cutting path id: %s\n\n"%curves[key][0][0])
+
+
self.export_gcode(gcode)
################################################################################
@@ -3638,7 +4660,7 @@ class Gcodetools(inkex.Effect):
################################################################################
def dxfpoints(self):
if self.selected_paths == {}:
- self.error(_("Nothing is selected. Please select something to convert to drill point (dxfpoint) or clear point sign."),"warning")
+ self.error(_("Noting is selected. Please select something to convert to drill point (dxfpoint) or clear point sign."),"warning")
for layer in self.layers :
if layer in self.selected_paths :
for path in self.selected_paths[layer]:
@@ -3679,28 +4701,38 @@ class Gcodetools(inkex.Effect):
parent = path.getparent()
style = path.get("style") if "style" in path.keys() else ""
if "d" not in path.keys() :
- self.error(_("Warning: One or more paths dont have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!"),"selection_contains_objects_that_are_not_paths")
+ self.error(_("Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!"),"selection_contains_objects_that_are_not_paths")
continue
csp = cubicsuperpath.parsePath(path.get("d"))
- csp = self.apply_transforms(path, csp)
- for subpath in csp :
+ remove = []
+ for i in range(len(csp)) :
+ subpath = [ [point[:] for point in points] for points in csp[i]]
+ subpath = self.apply_transforms(path,[subpath])[0]
bounds = csp_simple_bound([subpath])
if (bounds[2]-bounds[0])**2+(bounds[3]-bounds[1])**2 < self.options.area_find_artefacts_diameter**2:
if self.options.area_find_artefacts_action == "mark with an arrow" :
+ arrow = cubicsuperpath.parsePath( 'm %s,%s 2.9375,-6.343750000001 0.8125,1.90625 6.843748640396,-6.84374864039 0,0 0.6875,0.6875 -6.84375,6.84375 1.90625,0.812500000001 z' % (subpath[0][1][0],subpath[0][1][1]) )
+ arrow = self.apply_transforms(path,arrow,True)
inkex.etree.SubElement(parent, inkex.addNS('path','svg'),
{
- 'd': 'm %s,%s 2.9375,-6.343750000001 0.8125,1.90625 6.843748640396,-6.84374864039 0,0 0.6875,0.6875 -6.84375,6.84375 1.90625,0.812500000001 z' % (subpath[0][1][0],subpath[0][1][1]),
+ 'd': cubicsuperpath.formatPath(arrow),
'style': styles["area artefact arrow"],
'gcodetools': 'area artefact arrow',
})
- inkex.etree.SubElement(parent, inkex.addNS('path','svg'), {'d': cubicsuperpath.formatPath([subpath]), 'style': style, "gcodetools_parameter":"area artefact"})
elif self.options.area_find_artefacts_action == "mark with style" :
- inkex.etree.SubElement(parent, inkex.addNS('path','svg'), {'d': cubicsuperpath.formatPath([subpath]), 'style': styles["area artefact"]})
+ inkex.etree.SubElement(parent, inkex.addNS('path','svg'), {'d': cubicsuperpath.formatPath(csp[i]), 'style': styles["area artefact"]})
+ remove.append(i)
elif self.options.area_find_artefacts_action == "delete" :
- print_("Deleted artifact %s" % subpath )
- else :
- inkex.etree.SubElement(parent, inkex.addNS('path','svg'), {'d': cubicsuperpath.formatPath([subpath]), 'style': style})
- parent.remove(path)
+ remove.append(i)
+ print_("Deleted artefact %s" % subpath )
+ remove.reverse()
+ for i in remove :
+ del csp[i]
+ if len(csp) == 0 :
+ parent.remove(path)
+ else :
+ path.set("d", cubicsuperpath.formatPath(csp))
+
return
@@ -3781,9 +4813,12 @@ class Gcodetools(inkex.Effect):
r = self.options.area_inkscape_radius * scale
sign=1 if r>0 else -1
print_("Tool diameter = %s, r = %s" % (tool_d, r))
-
+
+ # avoiding infinite loops
+ if self.options.area_tool_overlap>0.9 : self.options.area_tool_overlap = .9
+
for i in range(self.options.max_area_curves):
- radius = - tool_d * (i+0.5) * sign
+ radius = - tool_d * (i*(1-self.options.area_tool_overlap)+0.5) * sign
if abs(radius)>abs(r):
radius = -r
@@ -3800,275 +4835,967 @@ class Gcodetools(inkex.Effect):
################################################################################
###
-### Engraving
+### Polyline to biarc
###
+### Converts Polyline to Biarc
################################################################################
- def engraving(self) :
+ def polyline_to_biarc(self):
+
+
+
+ def biarc(sm, depth=0):
+ def biarc_split(sp1,sp2, z1, z2, depth):
+ if depth<options.biarc_max_split_depth:
+ sp1,sp2,sp3 = csp_split(sp1,sp2)
+ l1, l2 = cspseglength(sp1,sp2), cspseglength(sp2,sp3)
+ if l1+l2 == 0 : zm = z1
+ else : zm = z1+(z2-z1)*l1/(l1+l2)
+ return biarc(sp1,sp2,z1,zm,depth+1)+biarc(sp2,sp3,zm,z2,depth+1)
+ else: return [ [sp1[1],'line', 0, 0, sp2[1], [z1,z2]] ]
+
+ P0, P4 = P(sp1[1]), P(sp2[1])
+ TS, TE, v = (P(sp1[2])-P0), -(P(sp2[0])-P4), P0 - P4
+ tsa, tea, va = TS.angle(), TE.angle(), v.angle()
+ if TE.mag()<straight_distance_tolerance and TS.mag()<straight_distance_tolerance:
+ # Both tangents are zerro - line straight
+ return [ [sp1[1],'line', 0, 0, sp2[1], [z1,z2]] ]
+ if TE.mag() < straight_distance_tolerance:
+ TE = -(TS+v).unit()
+ r = TS.mag()/v.mag()*2
+ elif TS.mag() < straight_distance_tolerance:
+ TS = -(TE+v).unit()
+ r = 1/( TE.mag()/v.mag()*2 )
+ else:
+ r=TS.mag()/TE.mag()
+ TS, TE = TS.unit(), TE.unit()
+ tang_are_parallel = ((tsa-tea)%math.pi<straight_tolerance or math.pi-(tsa-tea)%math.pi<straight_tolerance )
+ if ( tang_are_parallel and
+ ((v.mag()<straight_distance_tolerance or TE.mag()<straight_distance_tolerance or TS.mag()<straight_distance_tolerance) or
+ 1-abs(TS*v/(TS.mag()*v.mag()))<straight_tolerance) ):
+ # Both tangents are parallel and start and end are the same - line straight
+ # or one of tangents still smaller then tollerance
+
+ # Both tangents and v are parallel - line straight
+ return [ [sp1[1],'line', 0, 0, sp2[1], [z1,z2]] ]
+
+ c,b,a = v*v, 2*v*(r*TS+TE), 2*r*(TS*TE-1)
+ if v.mag()==0:
+ return biarc_split(sp1, sp2, z1, z2, depth)
+ asmall, bsmall, csmall = abs(a)<10**-10,abs(b)<10**-10,abs(c)<10**-10
+ if asmall and b!=0: beta = -c/b
+ elif csmall and a!=0: beta = -b/a
+ elif not asmall:
+ discr = b*b-4*a*c
+ if discr < 0: raise ValueError, (a,b,c,discr)
+ disq = discr**.5
+ beta1 = (-b - disq) / 2 / a
+ beta2 = (-b + disq) / 2 / a
+ if beta1*beta2 > 0 : raise ValueError, (a,b,c,disq,beta1,beta2)
+ beta = max(beta1, beta2)
+ elif asmall and bsmall:
+ return biarc_split(sp1, sp2, z1, z2, depth)
+ alpha = beta * r
+ ab = alpha + beta
+ P1 = P0 + alpha * TS
+ P3 = P4 - beta * TE
+ P2 = (beta / ab) * P1 + (alpha / ab) * P3
+
+
+ def calculate_arc_params(P0,P1,P2):
+ D = (P0+P2)/2
+ if (D-P1).mag()==0: return None, None
+ R = D - ( (D-P0).mag()**2/(D-P1).mag() )*(P1-D).unit()
+ p0a, p1a, p2a = (P0-R).angle()%(2*math.pi), (P1-R).angle()%(2*math.pi), (P2-R).angle()%(2*math.pi)
+ alpha = (p2a - p0a) % (2*math.pi)
+ if (p0a<p2a and (p1a<p0a or p2a<p1a)) or (p2a<p1a<p0a) :
+ alpha = -2*math.pi+alpha
+ if abs(R.x)>1000000 or abs(R.y)>1000000 or (R-P0).mag<options.min_arc_radius**2 :
+ return None, None
+ else :
+ return R, alpha
+ R1,a1 = calculate_arc_params(P0,P1,P2)
+ R2,a2 = calculate_arc_params(P2,P3,P4)
+ if R1==None or R2==None or (R1-P0).mag()<straight_tolerance or (R2-P2).mag()<straight_tolerance : return [ [sp1[1],'line', 0, 0, sp2[1], [z1,z2]] ]
+
+ d = csp_to_arc_distance(sp1,sp2, [P0,P2,R1,a1],[P2,P4,R2,a2])
+ if d > options.biarc_tolerance and depth<options.biarc_max_split_depth : return biarc_split(sp1, sp2, z1, z2, depth)
+ else:
+ if R2.mag()*a2 == 0 : zm = z2
+ else : zm = z1 + (z2-z1)*(abs(R1.mag()*a1))/(abs(R2.mag()*a2)+abs(R1.mag()*a1))
+
+ l = (P0-P2).l2()
+ if l < EMC_TOLERANCE_EQUAL**2 or l<EMC_TOLERANCE_EQUAL**2 * R1.l2() /100 :
+ # arc should be straight otherwise it could be threated as full circle
+ arc1 = [ sp1[1], 'line', 0, 0, [P2.x,P2.y], [z1,zm] ]
+ else :
+ arc1 = [ sp1[1], 'arc', [R1.x,R1.y], a1, [P2.x,P2.y], [z1,zm] ]
+
+ l = (P4-P2).l2()
+ if l < EMC_TOLERANCE_EQUAL**2 or l<EMC_TOLERANCE_EQUAL**2 * R2.l2() /100 :
+ # arc should be straight otherwise it could be threated as full circle
+ arc2 = [ [P2.x,P2.y], 'line', 0, 0, [P4.x,P4.y], [zm,z2] ]
+ else :
+ arc2 = [ [P2.x,P2.y], 'arc', [R2.x,R2.y], a2, [P4.x,P4.y], [zm,z2] ]
+
+ return [ arc1, arc2 ]
+
+
+
+
+
+ for layer in self.layers :
+ if layer in self.selected_paths :
+ for path in self.selected_paths[layer]:
+ d = path.get('d')
+ if d==None:
+ print_("omitting non-path")
+ self.error(_("Warning: omitting non-path"),"selection_contains_objects_that_are_not_paths")
+ continue
+ csp = cubicsuperpath.parsePath(d)
+ csp = self.apply_transforms(path, csp)
+ csp = self.transform_csp(csp, layer)
+
+ # lets pretend that csp is a polyline
+ poly = [ [point[1] for point in subpath] for subpath in csp ]
+
+ self.draw_csp([ [ [point,point,point] for point in subpoly] for subpoly in poly ],layer)
+
+ # lets create biarcs
+ for subpoly in poly :
+ # lets split polyline into different smooth parths.
+
+ if len(subpoly)>2 :
+ smooth = [ [subpoly[0],subpoly[1]] ]
+ for p1,p2,p3 in zip(subpoly,subpoly[1:],subpoly[2:]) :
+ # normalize p1p2 and p2p3 to get angle
+ s1,s2 = normalize( p1[0]-p2[0], p1[1]-p2[1]), normalize( p3[0]-p2[0], p3[1]-p2[1])
+ if cross(s1,s2) > corner_tolerance :
+ #it's an angle
+ smooth += [ [p2,p3] ]
+ else:
+ smooth[-1].append(p3)
+ for sm in smooth :
+ smooth_polyline_to_biarc(sm)
+
+################################################################################
+###
+### Area fill
+###
+### Fills area with lines
+################################################################################
+
+
+ def area_fill(self):
+ # convert degrees into rad
+ self.options.area_fill_angle = self.options.area_fill_angle * math.pi / 180
if len(self.selected_paths)<=0:
self.error(_("This extension requires at least one selected path."),"warning")
return
- if not self.check_dir() : return
- gcode = ''
+ for layer in self.layers :
+ if layer in self.selected_paths :
+ self.set_tool(layer)
+ if self.tools[layer][0]['diameter']<=0 :
+ self.error(_("Tool diameter must be > 0 but tool's diameter on '%s' layer is not!") % layer.get(inkex.addNS('label','inkscape')),"area_tools_diameter_error")
+ tool = self.tools[layer][0]
+ for path in self.selected_paths[layer]:
+ lines = []
+ print_(("doing path", path.get("style"), path.get("d")))
+ area_group = inkex.etree.SubElement( path.getparent(), inkex.addNS('g','svg') )
+ d = path.get('d')
+ if d==None:
+ print_("omitting non-path")
+ self.error(_("Warning: omitting non-path"),"selection_contains_objects_that_are_not_paths")
+ continue
+ csp = cubicsuperpath.parsePath(d)
+ csp = self.apply_transforms(path, csp)
+ csp = csp_close_all_subpaths(csp)
+ csp = self.transform_csp(csp, layer)
+ #maxx = max([x,y,i,j,root],maxx)
+
+ # rotate the path to get bounds in defined direction.
+ a = - self.options.area_fill_angle
+ rotated_path = [ [ [ [point[0]*math.cos(a) - point[1]*math.sin(a), point[0]*math.sin(a)+point[1]*math.cos(a)] for point in sp] for sp in subpath] for subpath in csp ]
+ bounds = csp_true_bounds(rotated_path)
+
+ # Draw the lines
+ # Get path's bounds
+ b = [0.0, 0.0, 0.0, 0.0] # [minx,miny,maxx,maxy]
+ for k in range(4):
+ i, j, t = bounds[k][2], bounds[k][3], bounds[k][4]
+ b[k] = csp_at_t(rotated_path[i][j-1],rotated_path[i][j],t)[k%2]
- def find_cutter_center((x1,y1),(nx1,ny1), sp1,sp2, tool, t3 = .5):
- ####################################################################
- ### To find center of cutter a system of non linear equations
- ### will be solved using Newton's method
- ####################################################################
- bez = (sp1[1][:],sp1[2][:],sp2[0][:],sp2[1][:])
- ax,ay,bx,by,cx,cy,dx,dy=bezmisc.bezierparameterize(bez)
- fx=ax*(t3*t3*t3)+bx*(t3*t3)+cx*t3+dx
- fy=ay*(t3*t3*t3)+by*(t3*t3)+cy*t3+dy
-
- nx2,ny2 = csp_normalized_normal(sp1,sp2,t3)
- intersection, t1, t2 = straight_segments_intersection([[x1,y1],[x1+nx1,y1+ny1]],[[fx,fy],[fx+nx2,fy+ny2]], False)
- if not intersection or intersection == "Overlap" :
- if nx1!=0 :
- t1 = t2 = (x1-fx)/nx1
- else :
- t1 = t2 = (y1-fy)/ny1
+
+ # Zig-zag
+ r = tool['diameter']*(1-self.options.area_tool_overlap)
+ if r<=0 :
+ self.error('Tools diameter must be greater than 0!', 'error')
+ return
+
+ lines += [ [] ]
+
+ if self.options.area_fill_method == 'zig-zag' :
+ i = b[0] - self.options.area_fill_shift*r
+ top = True
+ last_one = True
+ while (i<b[2] or last_one) :
+ if i>=b[2] : last_one = False
+ if lines[-1] == [] :
+ lines[-1] += [ [i,b[3]] ]
+
+ if top :
+ lines[-1] += [ [i,b[1]],[i+r,b[1]] ]
+
+ else :
+ lines[-1] += [ [i,b[3]], [i+r,b[3]] ]
+
+ top = not top
+ i += r
+ else :
+
+ w, h = b[2]-b[0] + self.options.area_fill_shift*r , b[3]-b[1] + self.options.area_fill_shift*r
+ x,y = b[0] - self.options.area_fill_shift*r, b[1] - self.options.area_fill_shift*r
+ lines[-1] += [ [x,y] ]
+ stage = 0
+ start = True
+ while w>0 and h>0 :
+ stage = (stage+1)%4
+ if stage == 0 :
+ y -= h
+ h -= r
+ elif stage == 1:
+ x += w
+ if not start:
+ w -= r
+ start = False
+ elif stage == 2 :
+ y += h
+ h -= r
+ elif stage == 3:
+ x -= w
+ w -=r
+
+ lines[-1] += [ [x,y] ]
+
+ stage = (stage+1)%4
+ if w <= 0 and h>0 :
+ y = y-h if stage == 0 else y+h
+ if h <= 0 and w>0 :
+ x = x-w if stage == 3 else x+w
+ lines[-1] += [ [x,y] ]
+ # Rotate created paths back
+ a = self.options.area_fill_angle
+ lines = [ [ [point[0]*math.cos(a) - point[1]*math.sin(a), point[0]*math.sin(a)+point[1]*math.cos(a)] for point in subpath] for subpath in lines ]
+
+ # get the intersection points
+
+ splitted_line = [ [lines[0][0]] ]
+ intersections = {}
+ for l1,l2, in zip(lines[0],lines[0][1:]):
+ ints = []
+
+ if l1[0]==l2[0] and l1[1]==l2[1] : continue
+ for i in range(len(csp)) :
+ for j in range(1,len(csp[i])) :
+ sp1,sp2 = csp[i][j-1], csp[i][j]
+ roots = csp_line_intersection(l1,l2,sp1,sp2)
+ for t in roots :
+ p = tuple(csp_at_t(sp1,sp2,t))
+ if l1[0]==l2[0] :
+ t1 = (p[1]-l1[1])/(l2[1]-l1[1])
+ else :
+ t1 = (p[0]-l1[0])/(l2[0]-l1[0])
+ if 0<=t1<=1 :
+ ints += [[t1, p[0],p[1], i,j,t]]
+ if p in intersections :
+ intersections[p] += [ [i,j,t] ]
+ else :
+ intersections[p] = [ [i,j,t] ]
+ #p = self.transform(p,layer,True)
+ #draw_pointer(p)
+ ints.sort()
+ for i in ints:
+ splitted_line[-1] +=[ [ i[1], i[2]] ]
+ splitted_line += [ [ [ i[1], i[2]] ] ]
+ splitted_line[-1] += [ l2 ]
+ i = 0
+ print_(splitted_line)
+ while i < len(splitted_line) :
+ # check if the middle point of the first lines segment is inside the path.
+ # and remove the subline if not.
+ l1,l2 = splitted_line[i][0],splitted_line[i][1]
+ p = [(l1[0]+l2[0])/2, (l1[1]+l2[1])/2]
+ if not point_inside_csp(p, csp):
+ #i +=1
+ del splitted_line[i]
+ else :
+ i += 1
+
+
+
+ # if we've used spiral method we'll try to save the order of cutting
+ do_not_change_order = self.options.area_fill_method == 'spiral'
+ # now let's try connect splitted lines
+ #while len(splitted_line)>0 :
+ #TODO
+
+ # and apply back transrormations to draw them
+ csp_line = csp_from_polyline(splitted_line)
+ csp_line = self.transform_csp(csp_line, layer, True)
+
+ self.draw_csp(csp_line, group = area_group)
+# draw_csp(lines)
- t = [ t1, t2, t3 ]
- i = 0
- F = [0.,0.,0.]
- F1 = [[0.,0.,0.],[0.,0.,0.],[0.,0.,0.]]
- while i==0 or abs(F[0])+abs(F[1])+math.sqrt(abs(F[2])) >engraving_tolerance and i<10:
- t1,t2,t3 = t[0],t[1],t[2]
- fx=ax*(t3*t3*t3)+bx*(t3*t3)+cx*t3+dx
- fy=ay*(t3*t3*t3)+by*(t3*t3)+cy*t3+dy
- f1x=3*ax*(t3*t3)+2*bx*t3+cx
- f1y=3*ay*(t3*t3)+2*by*t3+cy
- i+=1
-
- tx = fx-x1-nx1*t1
- ty = fy-y1-ny1*t1
-
- F[0] = x1+nx1*t1-fx+t2*f1y
- F[1] = y1+ny1*t1-fy-t2*f1x
- F[2] = t1*t1 - tx*tx -ty*ty
-
- F1[0][0] = nx1
- F1[0][1] = f1y
- F1[0][2] = -f1x+t2*(6*ay*t3+2*by)
-
- F1[1][0] = ny1
- F1[1][1] = -f1x
- F1[1][2] = -f1y-t2*(6*ax*t3+2*bx)
-
- F1[2][0] = 2*t1+2*nx1*tx +2*ny1*ty
- F1[2][1] = 0
- F1[2][2] = -2*f1x*tx -2*f1y*ty
- F1 = inv_3x3(F1)
-
- if ( isnan(F[0]) or isnan(F[1]) or isnan(F[2]) or
- isinf(F[0]) or isinf(F[1]) or isinf(F[2]) ):
- return t+[1e100,i]
-
- if F1!= None :
- t[0] -= F1[0][0]*F[0] + F1[0][1]*F[1] + F1[0][2]*F[2]
- t[1] -= F1[1][0]*F[0] + F1[1][1]*F[1] + F1[1][2]*F[2]
- t[2] -= F1[2][0]*F[0] + F1[2][1]*F[1] + F1[2][2]*F[2]
- else: break
-
- return t+[abs(F[0])+abs(F[1])+math.sqrt(abs(F[2])),i]
+
+
+
+
+################################################################################
+###
+### Engraving
+###
+#LT Notes to self: See wiki.inkscape.org/wiki/index.php/PythonEffectTutorial
+# To create anything in the Inkscape document, look at the XML editor for
+# details of how such an element looks in XML, then follow this model.
+#layer number n appears in XML as <svg:g id="layern" inkscape:label="layername">
+#
+#to create it, use
+#Mylayer=inkex.etree.SubElement(self.document.getroot(), 'g') #Create a generic element
+#Mylayer.set(inkex.addNS('label', 'inkscape'), "layername") #Gives it a name
+#Mylayer.set(inkex.addNS('groupmode', 'inkscape'), 'layer') #Tells Inkscape it's a layer
+#
+#group appears in XML as <svg:g id="gnnnnn"> where nnnnn is a number
+#
+#to create it, use
+#Mygroup=inkex.etree.SubElement(parent, inkex.addNS('g','svg'), {"gcodetools":"My group label"})
+# where parent may be the layer or a parent group. To get the parent group, you can use
+#parent = self.selected_paths[layer][0].getparent()
+################################################################################
+ def engraving(self) :
+ #global x1,y1,rx,ry
+ global cspm, wl
+ global nlLT, i, j
+ global gcode_3Dleft ,gcode_3Dright
+ global max_dist #minimum of tool radius and user's requested maximum distance
+ global eye_dist
+ eye_dist = 100 #3D constant. Try varying it for your eyes
+
+
+ def bisect((nx1,ny1),(nx2,ny2)) :
+ """LT Find angle bisecting the normals n1 and n2
+
+ Parameters: Normalised normals
+ Returns: nx - Normal of bisector, normalised to 1/cos(a)
+ ny -
+ sinBis2 - sin(angle turned/2): positive if turning in
+ Note that bisect(n1,n2) and bisect(n2,n1) give opposite sinBis2 results
+ If sinturn is less than the user's requested angle tolerance, I return 0
+ """
+ #We can get absolute value of cos(bisector vector)
+ #Note: Need to use max in case of rounding errors
+ cosBis = math.sqrt(max(0,(1.0+nx1*nx2-ny1*ny2)/2.0))
+ #We can get correct sign of the sin, assuming cos is positive
+ if (abs(ny1-ny2)< engraving_tolerance) or (abs(cosBis) < engraving_tolerance) :
+ if (abs(nx1-nx2)< engraving_tolerance): return(nx1,ny1,0.0)
+ sinBis = math.copysign(1,ny1)
+ else :
+ sinBis = cosBis*(nx2-nx1)/(ny1-ny2)
+ #We can correct signs by noting that the dot product
+ # of bisector and either normal must be >0
+ costurn=cosBis*nx1+sinBis*ny1
+ if costurn == 0 : return (ny1*100,-nx1*100,1) #Path doubles back on itself
+ sinturn=sinBis*nx1-cosBis*ny1
+ if costurn<0 : sinturn=-sinturn
+ if 0 < sinturn*114.6 < (180-self.options.engraving_sharp_angle_tollerance) :
+ sinturn=0 #set to zero if less than the user wants to see.
+ return (cosBis/costurn,sinBis/costurn, sinturn)
+ #end bisect
+
+ def get_radius_to_line((x1,y1),(nx1,ny1), (nx2,ny2),(x2,y2),(nx23,ny23),(x3,y3),(nx3,ny3)):
+ """LT find biggest circle we can engrave here, if constrained by line 2-3
+
+ Parameters:
+ x1,y1,nx1,ny1 coordinates and normal of the line we're currently engraving
+ nx2,ny2 angle bisector at point 2
+ x2,y2 coordinates of first point of line 2-3
+ nx23,ny23 normal to the line 2-3
+ x3,y3 coordinates of the other end
+ nx3,ny3 angle bisector at point 3
+ Returns:
+ radius or self.options.engraving_max_dist if line doesn't limit radius
+ This function can be used in three ways:
+ - With nx1=ny1=0 it finds circle centred at x1,y1
+ - with nx1,ny1 normalised, it finds circle tangential at x1,y1
+ - with nx1,ny1 scaled by 1/cos(a) it finds circle centred on an angle bisector
+ where a is the angle between the bisector and the previous/next normals
+
+ If the centre of the circle tangential to the line 2-3 is outside the
+ angle bisectors at its ends, ignore this line.
+
+ # Note that it handles corners in the conventional manner of letter cutting
+ # by mitering, not rounding.
+ # Algorithm uses dot products of normals to find radius
+ # and hence coordinates of centre
+ """
+
+ global max_dist
+
+ #Start by converting coordinates to be relative to x1,y1
+ x2,y2= x2-x1, y2-y1
+ x3,y3= x3-x1, y3-y1
+
+ #The logic uses vector arithmetic.
+ #The dot product of two vectors gives the product of their lengths
+ #multiplied by the cos of the angle between them.
+ # So, the perpendicular distance from x1y1 to the line 2-3
+ # is equal to the dot product of its normal and x2y2 or x3y3
+ #It is also equal to the projection of x1y1-xcyc on the line's normal
+ # plus the radius. But, as the normal faces inside the path we must negate it.
+
+ #Make sure the line in question is facing x1,y1 and vice versa
+ dist=-x2*nx23-y2*ny23
+ if dist<0 : return max_dist
+ denom=1.-nx23*nx1-ny23*ny1
+ if denom < engraving_tolerance : return max_dist
+
+ #radius and centre are:
+ r=dist/denom
+ cx=r*nx1
+ cy=r*ny1
+ #if c is not between the angle bisectors at the ends of the line, ignore
+ #Use vector cross products. Not sure if I need the .0001 safety margins:
+ if (x2-cx)*ny2 > (y2-cy)*nx2 +0.0001 :
+ return max_dist
+ if (x3-cx)*ny3 < (y3-cy)*nx3 -0.0001 :
+ return max_dist
+ return min(r, max_dist)
+ #end of get_radius_to_line
+
+ def get_radius_to_point((x1,y1),(nx,ny), (x2,y2)):
+ """LT find biggest circle we can engrave here, constrained by point x2,y2
+
+ This function can be used in three ways:
+ - With nx=ny=0 it finds circle centred at x1,y1
+ - with nx,ny normalised, it finds circle tangential at x1,y1
+ - with nx,ny scaled by 1/cos(a) it finds circle centred on an angle bisector
+ where a is the angle between the bisector and the previous/next normals
+
+ Note that I wrote this to replace find_cutter_centre. It is far less
+ sophisticated but, I hope, far faster.
+ It turns out that finding a circle touching a point is harder than a circle
+ touching a line.
+ """
+
+ global max_dist
+
+ #Start by converting coordinates to be relative to x1,y1
+ x2,y2= x2-x1, y2-y1
+ denom=nx**2+ny**2-1
+ if denom<=engraving_tolerance : #Not a corner bisector
+ if denom==-1 : #Find circle centre x1,y1
+ return math.sqrt(x2**2+y2**2)
+ #if x2,y2 not in front of the normal...
+ if x2*nx+y2*ny <=0 : return max_dist
+ #print_("Straight",x1,y1,nx,ny,x2,y2)
+ return (x2**2+y2**2)/(2*(x2*nx+y2*ny) )
+ #It is a corner bisector, so..
+ discriminator = (x2*nx+y2*ny)**2 - denom*(x2**2+y2**2)
+ if discriminator < 0 :
+ return max_dist #this part irrelevant
+ r=(x2*nx+y2*ny -math.sqrt(discriminator))/denom
+ #print_("Corner",x1,y1,nx,ny,x1+x2,y1+y2,discriminator,r)
+ return min(r, max_dist)
+ #end of get_radius_to_point
+
+ def bez_divide(a,b,c,d):
+ """LT recursively divide a Bezier.
+
+ Divides until difference between each
+ part and a straight line is less than some limit
+ Note that, as simple as this code is, it is mathematically correct.
+ Parameters:
+ a,b,c and d are each a list of x,y real values
+ Bezier end points a and d, control points b and c
+ Returns:
+ a list of Beziers.
+ Each Bezier is a list with four members,
+ each a list holding a coordinate pair
+ Note that the final point of one member is the same as
+ the first point of the next, and the control points
+ there are smooth and symmetrical. I use this fact later.
+ """
+ bx=b[0]-a[0]
+ by=b[1]-a[1]
+ cx=c[0]-a[0]
+ cy=c[1]-a[1]
+ dx=d[0]-a[0]
+ dy=d[1]-a[1]
+ limit=8*math.hypot(dx,dy)/self.options.engraving_newton_iterations
+ #LT This is the only limit we get from the user currently
+ if abs(dx*by-bx*dy)<limit and abs(dx*cy-cx*dy)<limit :
+ return [[a,b,c,d]]
+ abx=(a[0]+b[0])/2.0
+ aby=(a[1]+b[1])/2.0
+ bcx=(b[0]+c[0])/2.0
+ bcy=(b[1]+c[1])/2.0
+ cdx=(c[0]+d[0])/2.0
+ cdy=(c[1]+d[1])/2.0
+ abcx=(abx+bcx)/2.0
+ abcy=(aby+bcy)/2.0
+ bcdx=(bcx+cdx)/2.0
+ bcdy=(bcy+cdy)/2.0
+ m=[(abcx+bcdx)/2.0,(abcy+bcdy)/2.0]
+ return bez_divide(a,[abx,aby],[abcx,abcy],m) + bez_divide(m,[bcdx,bcdy],[cdx,cdy],d)
+ #end of bez_divide
+
+ def get_biggest((x1,y1),(nx,ny)):
+ """LT Find biggest circle we can draw inside path at point x1,y1 normal nx,ny
+
+ Parameters:
+ point - either on a line or at a reflex corner
+ normal - normalised to 1 if on a line, to 1/cos(a) at a corner
+ Returns:
+ tuple (j,i,r)
+ ..where j and i are indices of limiting segment, r is radius
+ """
+ global max_dist, nlLT, i, j
+ n1 = nlLT[j][i-1] #current node
+ jjmin = -1
+ iimin = -1
+ r = max_dist
+ # set limits within which to look for lines
+ xmin, xmax = x1+r*nx-r, x1+r*nx+r
+ ymin, ymax = y1+r*ny-r, y1+r*ny+r
+ for jj in xrange(0,len(nlLT)) : #for every subpath of this object
+ for ii in xrange(0,len(nlLT[jj])) : #for every point and line
+ if nlLT[jj][ii-1][2] : #if a point
+ if jj==j : #except this one
+ if abs(ii-i)<3 or abs(ii-i)>len(nlLT[j])-3 : continue
+ t1=get_radius_to_point((x1,y1),(nx,ny),nlLT[jj][ii-1][0] )
+ #print_("Try pt i,ii,t1,x1,y1",i,ii,t1,x1,y1)
+ else: #doing a line
+ if jj==j : #except this one
+ if abs(ii-i)<2 or abs(ii-i)==len(nlLT[j])-1 : continue
+ if abs(ii-i)==2 and nlLT[j][(ii+i)/2-1][3]<=0 : continue
+ if (abs(ii-i)==len(nlLT[j])-2) and nlLT[j][-1][3]<=0 : continue
+ nx2,ny2 = nlLT[jj][ii-2][1]
+ x2,y2 = nlLT[jj][ii-1][0]
+ nx23,ny23 = nlLT[jj][ii-1][1]
+ x3,y3 = nlLT[jj][ii][0]
+ nx3,ny3 = nlLT[jj][ii][1]
+ if nlLT[jj][ii-2][3]>0 : #acute, so use normal, not bisector
+ nx2=nx23
+ ny2=ny23
+ if nlLT[jj][ii][3]>0 : #acute, so use normal, not bisector
+ nx3=nx23
+ ny3=ny23
+ x23min,x23max=min(x2,x3),max(x2,x3)
+ y23min,y23max=min(y2,y3),max(y2,y3)
+ #see if line in range
+ if n1[2]==False and (x23max<xmin or x23min>xmax or y23max<ymin or y23min>ymax) : continue
+ t1=get_radius_to_line((x1,y1),(nx,ny), (nx2,ny2),(x2,y2),(nx23,ny23), (x3,y3),(nx3,ny3))
+ #print_("Try line i,ii,t1,x1,y1",i,ii,t1,x1,y1)
+ if 0<=t1<r :
+ r = t1
+ iimin = ii
+ jjmin = jj
+ xmin, xmax = x1+r*nx-r, x1+r*nx+r
+ ymin, ymax = y1+r*ny-r, y1+r*ny+r
+ #next ii
+ #next jj
+ return (jjmin,iimin,r)
+ #end of get_biggest
+
+ def line_divide((x0,y0),j0,i0,(x1,y1),j1,i1,(nx,ny),length):
+ """LT recursively divide a line as much as necessary
+
+ NOTE: This function is not currently used
+ By noting which other path segment is touched by the circles at each end,
+ we can see if anything is to be gained by a further subdivision, since
+ if they touch the same bit of path we can move linearly between them.
+ Also, we can handle points correctly.
+ Parameters:
+ end points and indices of limiting path, normal, length
+ Returns:
+ list of toolpath points
+ each a list of 3 reals: x, y coordinates, radius
+
+ """
+ global nlLT, i, j, lmin
+ x2=(x0+x1)/2
+ y2=(y0+y1)/2
+ j2,i2,r2=get_biggest( (x2,y2), (nx,ny))
+ if length<lmin : return [ [x2, y2, r2] ]
+ if j2==j0 and i2==i0 : #Same as left end. Don't subdivide this part any more
+ return [ [x2, y2, r2], line_divide((x2,y2),j2,i2,(x1,y1),j1,i1,(nx,ny),length/2)]
+ if j2==j1 and i2==i1 : #Same as right end. Don't subdivide this part any more
+ return [ line_divide((x0,y0),j0,i0,(x2,y2),j2,i2,(nx,ny),length/2), [x2, y2, r2] ]
+ return [ line_divide((x0,y0),j0,i0,(x2,y2),j2,i2,(nx,ny),length/2), line_divide((x2,y2),j2,i2,(x1,y1),j1,i1,(nx,ny),length/2)]
+ #end of line_divide()
+
+ def save_point((x,y),w,i,j,ii,jj):
+ """LT Save this point and delete previous one if linear
+
+ The point is, we generate tons of points but many may be in a straight 3D line.
+ There is no benefit in saving the imtermediate points.
+ """
+ global wl, cspm
+ x=round(x,4) #round to 4 decimals
+ y=round(y,4) #round to 4 decimals
+ w=round(w,4) #round to 4 decimals
+ if len(cspm)>1 :
+ xy1a,xy1,xy1b,i1,j1,ii1,jj1=cspm[-1]
+ w1=wl[-1]
+ if i==i1 and j==j1 and ii==ii1 and jj==jj1 : #one match
+ xy1a,xy2,xy1b,i1,j1,ii1,jj1=cspm[-2]
+ w2=wl[-2]
+ if i==i1 and j==j1 and ii==ii1 and jj==jj1 : #two matches. Now test linearity
+ length1=math.hypot(xy1[0]-x,xy1[1]-y)
+ length2=math.hypot(xy2[0]-x,xy2[1]-y)
+ length12=math.hypot(xy2[0]-xy1[0],xy2[1]-xy1[1])
+ #get the xy distance of point 1 from the line 0-2
+ if length2>length1 and length2>length12 : #point 1 between them
+ xydist=abs( (xy2[0]-x)*(xy1[1]-y)-(xy1[0]-x)*(xy2[1]-y) )/length2
+ if xydist<engraving_tolerance : #so far so good
+ wdist=w2+(w-w2)*length1/length2 -w1
+ if abs(wdist)<engraving_tolerance :
+ #print_("pop",j,i,xy1)
+ cspm.pop()
+ wl.pop()
+ cspm+=[ [ [x,y],[x,y],[x,y],i,j,ii,jj ] ]
+ wl+=[w]
+ #end of save_point
+
+ def draw_point((x0,y0),(x,y),w,t):
+ """LT Draw this point as a circle with a 1px dot in the middle (x,y)
+ and a 3D line from (x0,y0) down to x,y. 3D line thickness should be t/2
+
+ Note that points that are subsequently erased as being unneeded do get
+ displayed, but this helps the user see the total area covered.
+ """
+ global gcode_3Dleft ,gcode_3Dright
+ if self.options.engraving_draw_calculation_paths :
+ inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
+ {"gcodetools": "Engraving calculation toolpath", 'style': "fill:#ff00ff; fill-opacity:0.46; stroke:#000000; stroke-width:0.1;", inkex.addNS('cx','sodipodi'): str(x), inkex.addNS('cy','sodipodi'): str(y), inkex.addNS('rx','sodipodi'): str(1), inkex.addNS('ry','sodipodi'): str(1), inkex.addNS('type','sodipodi'): 'arc'})
+ #Don't draw zero radius circles
+ if w:
+ inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
+ {"gcodetools": "Engraving calculation paths", 'style': "fill:none; fill-opacity:0.46; stroke:#000000; stroke-width:0.1;", inkex.addNS('cx','sodipodi'): str(x), inkex.addNS('cy','sodipodi'): str(y),inkex.addNS('rx','sodipodi'): str(w), inkex.addNS('ry','sodipodi'): str(w), inkex.addNS('type','sodipodi'): 'arc'})
+ # Find slope direction for shading
+ s=math.atan2(y-y0,x-x0) #-pi to pi
+ # convert to 2 hex digits as a shade of red
+ s2="#{0:x}0000".format(int(101*(1.5-math.sin(s+0.5))))
+ inkex.etree.SubElement( gcode_3Dleft , inkex.addNS('path','svg'),
+ { "d": "M %f,%f L %f,%f" %(x0-eye_dist,y0,x-eye_dist-0.14*w,y),
+ 'style': "stroke:" + s2 + "; stroke-opacity:1; stroke-width:" + str(t/2) +" ; fill:none",
+ "gcodetools": "Gcode G1R"
+ })
+ inkex.etree.SubElement( gcode_3Dright , inkex.addNS('path','svg'),
+ { "d": "M %f,%f L %f,%f" %(x0+eye_dist,y0,x+eye_dist+0.14*r,y),
+ 'style': "stroke:" + s2 + "; stroke-opacity:1; stroke-width:" + str(t/2) +" ; fill:none",
+ "gcodetools": "Gcode G1L"
+ })
+ #end of draw_point
+
+ #end of subfunction definitions. engraving() starts here:
+ gcode = ''
+ r,w, wmax = 0,0,0 #theoretical and tool-radius-limited radii in pixels
+ x1,y1,nx,ny =0,0,0,0
cspe =[]
we = []
+ if len(self.selected_paths)<=0:
+ self.error(_("Please select at least one path to engrave and run again."),"warning")
+ return
+ if not self.check_dir() : return
+ #Find what units the user uses
+ unit=" mm"
+ if self.options.unit == "G20 (All units in inches)" :
+ unit=" inches"
+ elif self.options.unit != "G21 (All units in mm)" :
+ self.error(_("Unknown unit selected. mm assumed"),"warning")
+ print_("engraving_max_dist mm/inch", self.options.engraving_max_dist )
+
+ #LT See if we can use this parameter for line and Bezier subdivision:
+ bitlen=20/self.options.engraving_newton_iterations
+
for layer in self.layers :
- if layer in self.selected_paths :
+ if layer in self.selected_paths :
+ #Calculate scale in pixels per user unit (mm or inch)
+ p1=self.orientation_points[layer][0][0]
+ p2=self.orientation_points[layer][0][1]
+ ol=math.hypot(p1[0][0]-p2[0][0],p1[0][1]-p2[0][1])
+ oluu=math.hypot(p1[1][0]-p2[1][0],p1[1][1]-p2[1][1])
+ print_("Orientation2 p1 p2 ol oluu",p1,p2,ol,oluu)
+ orientation_scale = ol/oluu
+
self.set_tool(layer)
+ shape = self.tools[layer][0]['shape']
+ if re.search('w', shape) :
+ toolshape = eval('lambda w: ' + shape.strip('"'))
+ else:
+ self.error(_("Tool '%s' has no shape. 45 degree cone assumed!") % self.tools[layer][0]['name'],"Continue")
+ toolshape = lambda w: w
+ #Get tool radius in pixels
+ toolr=self.tools[layer][0]['diameter'] * orientation_scale/2
+ print_("tool radius in pixels=", toolr)
+ #max dist from path to engrave in user's units
+ max_distuu = min(self.tools[layer][0]['diameter']/2, self.options.engraving_max_dist)
+ max_dist=max_distuu*orientation_scale
+ print_("max_dist pixels", max_dist )
+
engraving_group = inkex.etree.SubElement( self.selected_paths[layer][0].getparent(), inkex.addNS('g','svg') )
+ if self.options.engraving_draw_calculation_paths and (self.my3Dlayer == None) :
+ self.my3Dlayer=inkex.etree.SubElement(self.document.getroot(), 'g') #Create a generic element at root level
+ self.my3Dlayer.set(inkex.addNS('label', 'inkscape'), "3D") #Gives it a name
+ self.my3Dlayer.set(inkex.addNS('groupmode', 'inkscape'), 'layer') #Tells Inkscape it's a layer
+ #Create groups for left and right eyes
+ if self.options.engraving_draw_calculation_paths :
+ gcode_3Dleft = inkex.etree.SubElement(self.my3Dlayer, inkex.addNS('g','svg'), {"gcodetools":"Gcode 3D L"})
+ gcode_3Dright = inkex.etree.SubElement(self.my3Dlayer, inkex.addNS('g','svg'), {"gcodetools":"Gcode 3D R"})
+
for node in self.selected_paths[layer] :
if node.tag == inkex.addNS('path','svg'):
cspi = cubicsuperpath.parsePath(node.get('d'))
-
- for j in xrange(len(cspi)):
- # Remove zerro length segments
- i = 1
+ #LT: Create my own list. n1LT[j] is for subpath j
+ nlLT = []
+ for j in xrange(len(cspi)): #LT For each subpath...
+ # Remove zero length segments, assume closed path
+ i = 0 #LT was from i=1
while i<len(cspi[j]):
if abs(cspi[j][i-1][1][0]-cspi[j][i][1][0])<engraving_tolerance and abs(cspi[j][i-1][1][1]-cspi[j][i][1][1])<engraving_tolerance:
cspi[j][i-1][2] = cspi[j][i][2]
del cspi[j][i]
else:
i += 1
- for csp in cspi:
- # Create list containing normlas and points
- nl = []
- for i in range(1,len(csp)):
- n, n1 = [], []
- sp1, sp2 = csp[i-1], csp[i]
- for ti in [.0,.25,.75,1.]:
- # Is following string is nedded or not??? (It makes t depend on form of the curve)
- #ti = bezmisc.beziertatlength(bez,ti)
- x1,y1 = csp_at_t(sp1,sp2,ti)
- nx,ny = csp_normalized_normal(sp1,sp2,ti)
- n+=[ [ [x1,y1], [nx,ny], False, False, i] ] # [point coordinates, normal, is an inner corner, is an outer corner, csp's index]
- if ti==1 and i<len(csp)-1:
- nx2, ny2 = csp_normalized_slope(csp[i],csp[i+1],0)
- nx2,ny2 = -ny2,nx2
- ang = ny2*nx-ny*nx2
- ang1 = 180-math.acos(max(-1,min(1,nx*nx2+ny*ny2)))*180/math.pi
- if ang > 0 and ang1 < self.options.engraving_sharp_angle_tollerance : # inner angle
- n[-1][2] = True
- elif ang < 0 and ang1 < self.options.engraving_sharp_angle_tollerance : # outer angle
- a = -math.acos(nx*nx2+ny*ny2)
- for t in [.0,.25,.75,1.]:
- n1 += [ [ [x1,y1], [nx*math.cos(a*t)-ny*math.sin(a*t),nx*math.sin(a*t)+ny*math.cos(a*t)], False, True, i ] ]
- nl += [ n ] + ([ n1 ] if n1!=[] else [])
- # Modify first/last points if curve is closed
- if abs(csp[-1][1][0]-csp[0][1][0])<engraving_tolerance and abs(csp[-1][1][1]-csp[0][1][1])<engraving_tolerance :
- x1,y1 = csp_at_t(csp[-2],csp[-1],1)
- nx,ny = csp_normalized_slope(csp[-2],csp[-1],1)
- nx,ny = -ny,nx
- nx2,ny2 = csp_normalized_slope(csp[0],csp[1],0)
- nx2,ny2 = -ny2,nx2
- ang = ny2*nx-ny*nx2
- if ang > 0 and 180-math.acos(nx*nx2+ny*ny2)*180/math.pi < self.options.engraving_sharp_angle_tollerance : # inner angle
- nl[-1][-1][2] = True
- elif ang < 0 and 180-math.acos(nx*nx2+ny*ny2)*180/math.pi < self.options.engraving_sharp_angle_tollerance : # outer angle
- a = -math.acos(nx*nx2+ny*ny2)
- n1 = []
- for t in [.0,.25,.75,1.]:
- n1 += [ [ [x1,y1], [nx*math.cos(a*t)-ny*math.sin(a*t),nx*math.sin(a*t)+ny*math.cos(a*t)], False, True, i ] ]
- nl += [ n1 ]
-
-
- print_(("engraving_draw_calculation_paths=",self.options.engraving_draw_calculation_paths))
- if self.options.engraving_draw_calculation_paths==True:
- for i in nl:
- for p in i:
- inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
- {
- "d": "M %f,%f L %f,%f" %(p[0][0],p[0][1],p[0][0]+p[1][0]*10,p[0][1]+p[1][1]*10),
- 'style': "stroke:#0000ff; stroke-opacity:0.46; stroke-width:0.1; fill:none",
- "gcodetools": "Engraving calculation paths"
- })
-
-
- # Calculate offset points
- csp_points = []
- for ki in xrange(len(nl)):
- p = []
- for ti in xrange(3) if ki!=len(nl)-1 else xrange(4):
- n = nl[ki][ti]
- x1,y1 = n[0]
- nx,ny = n[1]
- d, r = 0, float("inf")
- if ti==0 and nl[ki-1][-1][2] == True or ti==3 and nl[ki][ti][2] == True:
- # Point is a sharp angle r=0p
- r = 0
- else :
- for j in xrange(0,len(cspi)):
- for i in xrange(1,len(cspi[j])):
- d = csp_bound_to_point_distance(cspi[j][i-1], cspi[j][i], [x1,y1])
- if d >= self.options.engraving_max_dist*2 :
- r = min(math.sqrt(d/2),r)
+ for csp in cspi: #LT6a For each subpath...
+ #Create copies in 3D layer
+ print_("csp is zz ",csp)
+ cspl=[]
+ cspr=[]
+ #create list containing lines and points, starting with a point
+ # line members: [x,y],[nx,ny],False,i
+ # x,y is start of line. Normal on engraved side.
+ # Normal is normalised (unit length)
+ #Note that Y axis increases down the page
+ # corner members: [x,y],[nx,ny],True,sin(halfangle)
+ # if halfangle>0: radius 0 here. normal is bisector
+ # if halfangle<0. reflex angle. normal is bisector
+ # corner normals are divided by cos(halfangle)
+ #so that they will engrave correctly
+ print_("csp is",csp)
+ nlLT.append ([])
+ for i in range(0,len(csp)): #LT for each point
+ #n = []
+ sp0, sp1, sp2 = csp[i-2], csp[i-1], csp[i]
+ if self.options.engraving_draw_calculation_paths:
+ #Copy it to 3D layer objects
+ spl=[]
+ spr=[]
+ for j in range(0,3) :
+ pl=[sp2[j][0]-eye_dist,sp2[j][1]]
+ pr=[sp2[j][0]+eye_dist,sp2[j][1]]
+ spl+=[pl]
+ spr+=[pr]
+ cspl+=[spl]
+ cspr+=[spr]
+ #LT find angle between this and previous segment
+ x0,y0 = sp1[1]
+ nx1,ny1 = csp_normalized_normal(sp1,sp2,0)
+ #I don't trust this function, so test result
+ if abs(1-math.hypot(nx1,ny1))> 0.00001 :
+ print_("csp_normalised_normal error t=0",nx1,ny1,sp1,sp2)
+ self.error(_("csp_normalised_normal error. See log."),"warning")
+
+ nx0, ny0 = csp_normalized_normal(sp0,sp1,1)
+ if abs(1-math.hypot(nx0,ny0))> 0.00001 :
+ print_("csp_normalised_normal error t=1",nx0,ny0,sp1,sp2)
+ self.error(_("csp_normalised_normal error. See log."),"warning")
+ bx,by,s=bisect((nx0,ny0),(nx1,ny1))
+ #record x,y,normal,ifCorner, sin(angle-turned/2)
+ nlLT[-1] += [[ [x0,y0],[bx,by], True, s]]
+
+ #LT now do the line
+ if sp1[1]==sp1[2] and sp2[0]==sp2[1] : #straightline
+ nlLT[-1]+=[[sp1[1],[nx1,ny1],False,i]]
+ else : #Bezier. First, recursively cut it up:
+ nn=bez_divide(sp1[1],sp1[2],sp2[0],sp2[1])
+ first=True #Flag entry to divided Bezier
+ for bLT in nn : #save as two line segments
+ for seg in range(3) :
+ if seg>0 or first :
+ nx1=bLT[seg][1]-bLT[seg+1][1]
+ ny1=bLT[seg+1][0]-bLT[seg][0]
+ l1=math.hypot(nx1,ny1)
+ if l1<engraving_tolerance :
continue
- for n1 in xrange(self.options.engraving_newton_iterations):
- t = find_cutter_center((x1,y1),(nx,ny), cspi[j][i-1], cspi[j][i], self.tools[layer][0], float(n1)/(self.options.engraving_newton_iterations-1))
- print_(t)
- if t[0] > engraving_tolerance and 0<=t[2]<=1 and abs(t[3])<engraving_tolerance:
- print_("!@#!@#!@#!@#!@",t)
- t3 = t[2]
- ax,ay,bx,by,cx,cy,dx,dy=bezmisc.bezierparameterize((cspi[j][i-1][1],cspi[j][i-1][2],cspi[j][i][0],cspi[j][i][1]))
- x2=ax*(t3*t3*t3)+bx*(t3*t3)+cx*t3+dx
- y2=ay*(t3*t3*t3)+by*(t3*t3)+cy*t3+dy
- if abs(x2-x1)<engraving_tolerance and abs(y2-y1)<engraving_tolerance:
- f1x = 3*ax*(t3*t3)+2*bx*t3+cx
- f1y = 3*ay*(t3*t3)+2*by*t3+cy
- f2x = 6*ax*t3+2*bx
- f2y = 6*ay*t3+2*by
- d = f1x*f2y-f1y*f2x
- # d = curvature
- if d!=0 :
- d = math.sqrt((f1x*f1x+f1y*f1y)**3)/d
- if d>0:
- r = min( d,r) if r!=None else d
- else :
- r = min(r,self.options.engraving_max_dist) if r!=None else self.options.engraving_max_dist
- else:
- r = min(t[0],r) if r!=None else t[0]
- for j in xrange(0,len(cspi)):
- for i in xrange(0,len(cspi[j])):
- x2,y2 = cspi[j][i][1]
- if (abs(x1-x2)>engraving_tolerance or abs(y1-y2)>engraving_tolerance ) and (x2*nx - x1*nx + y2*ny - y1*ny) != 0:
- t1 = .5 * ( (x1-x2)**2+(y1-y2)**2 ) / (x2*nx - x1*nx + y2*ny - y1*ny)
- if t1>0 : r = min(t1,r) if r!=None else t1
- if self.options.engraving_draw_calculation_paths==True:
- inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
- {"gcodetools": "Engraving calculation paths", 'style': "fill:#ff00ff; fill-opacity:0.46; stroke:#000000; stroke-width:0.1;", inkex.addNS('cx','sodipodi'): str(x1+nx*r), inkex.addNS('cy','sodipodi'): str(y1+ny*r), inkex.addNS('rx','sodipodi'): str(1), inkex.addNS('ry','sodipodi'): str(1), inkex.addNS('type','sodipodi'): 'arc'})
- inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
- {"gcodetools": "Engraving calculation paths", 'style': "fill:none; fill-opacity:0.46; stroke:#000000; stroke-width:0.1;", inkex.addNS('cx','sodipodi'): str(x1+nx*r), inkex.addNS('cy','sodipodi'): str(y1+ny*r),inkex.addNS('rx','sodipodi'): str(r), inkex.addNS('ry','sodipodi'): str(r), inkex.addNS('type','sodipodi'): 'arc'})
- r = min(r, self.options.engraving_max_dist)
- w = min(r, self.tools[layer][0]['diameter'])
- p += [ [x1+nx*w,y1+ny*w,r,w] ]
-
-
-
- if len(csp_points)>0 : csp_points[-1] += [p[0]]
- csp_points += [ p ]
- # Splitting path to pieces each of them not further from path more than engraving_max_dist
- engraving_path = [ [] ]
- for p_ in csp_points :
- for p in p_:
- if p[2]<self.options.engraving_max_dist : break
- if p[2]<self.options.engraving_max_dist: engraving_path[-1] += [p_]
- else :
- if engraving_path[-1] != [] : engraving_path += [ [] ]
- if engraving_path[-1] == [] : del engraving_path[-1]
-
+ nx1=nx1/l1 #normalise them
+ ny1=ny1/l1
+ nlLT[-1]+=[[bLT[seg],[nx1,ny1], False,i]]
+ first=False
+ if seg<2 : #get outgoing bisector
+ nx0=nx1
+ ny0=ny1
+ nx1=bLT[seg+1][1]-bLT[seg+2][1]
+ ny1=bLT[seg+2][0]-bLT[seg+1][0]
+ l1=math.hypot(nx1,ny1)
+ if l1<engraving_tolerance :
+ continue
+ nx1=nx1/l1 #normalise them
+ ny1=ny1/l1
+ #bisect
+ bx,by,s=bisect((nx0,ny0),(nx1,ny1))
+ nlLT[-1] += [[bLT[seg+1],[bx,by], True, 0.]]
+ #LT for each segment - ends here.
+ print_(("engraving_draw_calculation_paths=",self.options.engraving_draw_calculation_paths))
+ if self.options.engraving_draw_calculation_paths:
+ #Copy complete paths to 3D layer
+ #print_("cspl",cspl)
+ cspl+=[cspl[0]] #Close paths
+ cspr+=[cspr[0]] #Close paths
+ inkex.etree.SubElement( gcode_3Dleft , inkex.addNS('path','svg'),
+ { "d": cubicsuperpath.formatPath([cspl]),
+ 'style': "stroke:#808080; stroke-opacity:1; stroke-width:0.6; fill:none",
+ "gcodetools": "G1L outline"
+ })
+ inkex.etree.SubElement( gcode_3Dright , inkex.addNS('path','svg'),
+ { "d": cubicsuperpath.formatPath([cspr]),
+ 'style': "stroke:#808080; stroke-opacity:1; stroke-width:0.6; fill:none",
+ "gcodetools": "G1L outline"
+ })
+
+ for p in nlLT[-1]: #For last sub-path
+ if p[2]: inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
+ { "d": "M %f,%f L %f,%f" %(p[0][0],p[0][1],p[0][0]+p[1][0]*10,p[0][1]+p[1][1]*10),
+ 'style': "stroke:#f000af; stroke-opacity:0.46; stroke-width:0.1; fill:none",
+ "gcodetools": "Engraving normals"
+ })
+ else: inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
+ { "d": "M %f,%f L %f,%f" %(p[0][0],p[0][1],p[0][0]+p[1][0]*10,p[0][1]+p[1][1]*10),
+ 'style': "stroke:#0000ff; stroke-opacity:0.46; stroke-width:0.1; fill:none",
+ "gcodetools": "Engraving bisectors"
+ })
+
+
+ #LT6a build nlLT[j] for each subpath - ends here
+ #for nnn in nlLT :
+ #print_("nlLT",nnn) #LT debug stuff
+ # Calculate offset points
+ reflex=False
+ for j in xrange(len(nlLT)): #LT6b for each subpath
+ cspm=[] #Will be my output. List of csps.
+ wl=[] #Will be my w output list
+ w = r = 0 #LT initial, as first point is an angle
+ for i in xrange(len(nlLT[j])) : #LT for each node
+ #LT Note: Python enables wrapping of array indices
+ # backwards to -1, -2, but not forwards. Hence:
+ n0 = nlLT[j][i-2] #previous node
+ n1 = nlLT[j][i-1] #current node
+ n2 = nlLT[j][i] #next node
+ #if n1[2] == True and n1[3]==0 : # A straight angle
+ #continue
+ x1a,y1a = n1[0] #this point/start of this line
+ nx,ny = n1[1]
+ x1b,y1b = n2[0] #next point/end of this line
+ if n1[2] == True : # We're at a corner
+ bits=1
+ bit0=0
+ #lastr=r #Remember r from last line
+ lastw=w #Remember w from last line
+ w = max_dist
+ if n1[3]>0 : #acute. Limit radius
+ len1=math.hypot( (n0[0][0]-n1[0][0]),( n0[0][1]-n1[0][1]) )
+ if i<(len(nlLT[j])-1) :
+ len2=math.hypot( (nlLT[j][i+1][0][0]-n1[0][0]),(nlLT[j][i+1][0][1]-n1[0][1]) )
+ else:
+ len2=math.hypot( (nlLT[j][0][0][0]-n1[0][0]),(nlLT[j][0][0][1]-n1[0][1]) )
+ #set initial r value, not to be exceeded
+ w = math.sqrt(min(len1,len2))/n1[3]
+ else: #line. Cut it up if long.
+ if n0[3]>0 and not self.options.engraving_draw_calculation_paths :
+ bit0=r*n0[3] #after acute corner
+ else : bit0=0.0
+ length=math.hypot((x1b-x1a),(y1a-y1b))
+ bit0=(min(length,bit0))
+ bits=int((length-bit0)/bitlen)
+ #split excess evenly at both ends
+ bit0+=(length-bit0-bitlen*bits)/2
+ #print_("j,i,r,bit0,bits",j,i,w,bit0,bits)
+ for b in xrange(bits) : #divide line into bits
+ x1=x1a+ny*(b*bitlen+bit0)
+ y1=y1a-nx*(b*bitlen+bit0)
+ jjmin,iimin,w=get_biggest( (x1,y1), (nx,ny))
+ print_("i,j,jjmin,iimin,w",i,j,jjmin,iimin,w)
+ #w = min(r, toolr)
+ wmax=max(wmax,w)
+ if reflex : #just after a reflex corner
+ reflex = False
+ if w<lastw : #need to adjust it
+ draw_point((x1,y1),(n0[0][0]+n0[1][0]*w,n0[0][1]+n0[1][1]*w),w, (lastw-w)/2)
+ save_point((n0[0][0]+n0[1][0]*w,n0[0][1]+n0[1][1]*w),w,i,j,iimin,jjmin)
+ if n1[2] == True : # We're at a corner
+ if n1[3]>0 : #acute
+ save_point((x1+nx*w,y1+ny*w),w,i,j,iimin,jjmin)
+ draw_point((x1,y1),(x1,y1),0,0)
+ save_point((x1,y1),0,i,j,iimin,jjmin)
+ elif n1[3]<0 : #reflex
+ if w>lastw :
+ draw_point((x1,y1),(x1+nx*lastw,y1+ny*lastw),w, (w-lastw)/2)
+ wmax=max(wmax,w)
+ save_point((x1+nx*w,y1+ny*w),w,i,j,iimin,jjmin)
+ elif b>0 and n2[3]>0 and not self.options.engraving_draw_calculation_paths : #acute corner coming up
+ if jjmin==j and iimin==i+2 : break
+ draw_point((x1,y1),(x1+nx*w,y1+ny*w),w, bitlen)
+ save_point((x1+nx*w,y1+ny*w),w,i,j,iimin,jjmin)
+
+ #LT end of for each bit of this line
+ if n1[2] == True and n1[3]<0 : #reflex angle
+ reflex=True
+ lastw = w #remember this w
+ #LT next i
+ cspm+=[cspm[0]]
+ print_("cspm",cspm)
+ wl+=[wl[0]]
+ print_("wl",wl)
+ #Note: Original csp_points was a list, each element
+ #being 4 points, with the first being the same as the
+ #last of the previous set.
+ #Each point is a list of [cx,cy,r,w]
+ #I have flattened it to a flat list of points.
- for csp_points in engraving_path :
- # Create Path that goes through this points
- cspm = []
- w = []
- m = [[0.0, 0.0, 0.0, 1.0], [0.015625, 0.140625, 0.421875, 0.421875], [0.421875, 0.421875, 0.140625, 0.015625], [1.0, 0.0, 0.0, 0.0]]
- for p in csp_points:
- m = numpy.array(m)
- xi = numpy.array( [p[i][:2] for i in range(4)])
- sp1,sp2 = [[0.,0.],[0.,0.],[0.,0.]], [[0.,0.],[0.,0.],[0.,0.]]
- a,b,c,d = numpy.linalg.solve(m, xi).tolist()
- sp1[1], sp1[0] = d, d
- sp1[2] = c
- sp2[0] = b
- sp2[1], sp2[2] = a, a
- sp3,sp4,sp5 = csp_split(sp1, sp2, .25)
- l = cspseglength(sp3,sp4)
- sp1,sp2,sp4 = csp_split(sp1, sp2, .75)
- l1 = cspseglength(sp1,sp2)
- if l1!=0:
- sp1,sp2,sp3 = csp_splitatlength(sp1, sp2, l/l1)
- if len(cspm)>0 :
- cspm[-1][2] = sp1[2]
- cspm += [sp2[:], sp3[:], sp4[:]]
- w += [p[i][3] for i in range(1,4)]
- else :
- cspm += [sp1[:], sp2[:], sp3[:], sp4[:]]
- w += [p[i][3] for i in range(4)]
- if self.options.engraving_draw_calculation_paths==True:
- node = inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'), {
- "d": cubicsuperpath.formatPath([cspm]),
- 'style': styles["biarc_style_i"]['biarc1'],
- "gcodetools": "Engraving calculation paths",
- })
- for i in xrange(len(cspm)):
- inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
- {"gcodetools": "Engraving calculation paths", 'style': "fill:none; fill-opacity:0.46; stroke:#000000; stroke-width:0.1;", inkex.addNS('cx','sodipodi'): str(cspm[i][1][0]), inkex.addNS('cy','sodipodi'): str(cspm[i][1][1]),inkex.addNS('rx','sodipodi'): str(w[i]), inkex.addNS('ry','sodipodi'): str(w[i]), inkex.addNS('type','sodipodi'): 'arc'})
- cspe += [cspm]
- we += [w]
-
- if self.tools[layer][0]['shape'] != "":
- f = eval('lambda w: ' + self.tools[layer][0]['shape'].strip('"'))
- else:
- self.error(_("Tool '%s' has no shape!") % self.tools[layer][0]['name'],"engraving_tools_shape_error")
- f = lambda w: w
-
+ if self.options.engraving_draw_calculation_paths==True:
+ node = inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'), {
+ "d": cubicsuperpath.formatPath([cspm]),
+ 'style': styles["biarc_style_i"]['biarc1'],
+ "gcodetools": "Engraving calculation paths",
+ })
+ for i in xrange(len(cspm)):
+ inkex.etree.SubElement( engraving_group, inkex.addNS('path','svg'),
+ {"gcodetools": "Engraving calculation paths", 'style': "fill:none; fill-opacity:0.46; stroke:#000000; stroke-width:0.1;", inkex.addNS('cx','sodipodi'): str(cspm[i][1][0]), inkex.addNS('cy','sodipodi'): str(cspm[i][1][1]),inkex.addNS('rx','sodipodi'): str(wl[i]), inkex.addNS('ry','sodipodi'): str(wl[i]), inkex.addNS('type','sodipodi'): 'arc'})
+ cspe += [cspm]
+ wluu = [] #width list in user units: mm/inches
+ for w in wl :
+ wluu+=[ w / orientation_scale ]
+ print_("wl in pixels",wl)
+ print_("wl in user units",wluu)
+ #LT previously, we was in pixels so gave wrong depth
+ we += [wluu]
+ #LT6b For each subpath - ends here
+ #LT5 if it is a path - ends here
+ #print_("cspe",cspe)
+ #print_("we",we)
+ #LT4 for each selected object in this layer - ends here
+
if cspe!=[]:
- curve = self.parse_curve(cspe, layer, we, f)
+ curve = self.parse_curve(cspe, layer, we, toolshape) #convert to lines
self.draw_curve(curve, layer, engraving_group)
gcode += self.generate_gcode(curve, layer, self.options.Zsurface)
+ #LT3 for layers loop ends here
if gcode!='' :
+ self.header+="(Tool diameter should be at least "+str(2*wmax/orientation_scale)+unit+ ")\n"
+ self.header+="(Depth, as a function of radius w, must be "+ self.tools[layer][0]['shape']+ ")\n"
+ self.header+="(Rapid feeds use safe Z="+ str(self.options.Zsafe) + unit + ")\n"
+ self.header+="(Material surface at Z="+ str(self.options.Zsurface) + unit + ")\n"
self.export_gcode(gcode)
else : self.error(_("No need to engrave sharp angles."),"warning")
@@ -4079,47 +5806,75 @@ class Gcodetools(inkex.Effect):
###
################################################################################
def orientation(self, layer=None) :
- print_("entering orientations")
+
if layer == None :
layer = self.current_layer if self.current_layer is not None else self.document.getroot()
- if layer in self.orientation_points:
- self.error(_("Active layer already has orientation points! Remove them or select another layer!"),"active_layer_already_has_orientation_points")
- orientation_group = inkex.etree.SubElement(layer, inkex.addNS('g','svg'), {"gcodetools":"Gcodetools orientation group"})
- doc_height = inkex.unittouu(self.document.getroot().get('height'))
- if self.document.getroot().get('height') == "100%" :
- doc_height = 1052.3622047
- print_("Overruding height from 100 percents to %s" % doc_height)
- if self.options.unit == "G21 (All units in mm)" :
- points = [[0.,0.,self.options.Zsurface],[100.,0.,self.options.Zdepth],[0.,100.,0.]]
- orientation_scale = 3.5433070660
- print_("orientation_scale < 0 ===> switching to mm units=%0.10f"%orientation_scale )
- elif self.options.unit == "G20 (All units in inches)" :
- points = [[0.,0.,self.options.Zsurface],[5.,0.,self.options.Zdepth],[0.,5.,0.]]
- orientation_scale = 90
- print_("orientation_scale < 0 ===> switching to inches units=%0.10f"%orientation_scale )
- if self.options.orientation_points_count == 2 :
- points = points[:2]
- print_(("using orientation scale",orientation_scale,"i=",points))
- for i in points :
- si = [i[0]*orientation_scale, i[1]*orientation_scale]
- g = inkex.etree.SubElement(orientation_group, inkex.addNS('g','svg'), {'gcodetools': "Gcodetools orientation point (%s points)" % self.options.orientation_points_count})
+ transform = self.get_transforms(layer)
+ if transform != [] :
+ transform = self.reverse_transform(transform)
+ transform = simpletransform.formatTransform(transform)
+
+ if self.options.orientation_points_count == "graffiti" :
+ print_(self.graffiti_reference_points)
+ print_("Inserting graffiti points")
+ if layer in self.graffiti_reference_points: graffiti_reference_points_count = len(self.graffiti_reference_points[layer])
+ else: graffiti_reference_points_count = 0
+ axis = ["X","Y","Z","A"][graffiti_reference_points_count%4]
+ attr = {'gcodetools': "Gcodetools graffiti reference point"}
+ if transform != [] :
+ attr["transform"] = transform
+ g = inkex.etree.SubElement(layer, inkex.addNS('g','svg'), attr)
inkex.etree.SubElement( g, inkex.addNS('path','svg'),
{
- 'style': "stroke:none;fill:#000000;",
- 'd':'m %s,%s 2.9375,-6.343750000001 0.8125,1.90625 6.843748640396,-6.84374864039 0,0 0.6875,0.6875 -6.84375,6.84375 1.90625,0.812500000001 z z' % (si[0], -si[1]+doc_height),
- 'gcodetools': "Gcodetools orientation point arrow"
+ 'style': "stroke:none;fill:#00ff00;",
+ 'd':'m %s,%s 2.9375,-6.343750000001 0.8125,1.90625 6.843748640396,-6.84374864039 0,0 0.6875,0.6875 -6.84375,6.84375 1.90625,0.812500000001 z z' % (graffiti_reference_points_count*100, 0),
+ 'gcodetools': "Gcodetools graffiti reference point arrow"
})
- t = inkex.etree.SubElement( g, inkex.addNS('text','svg'),
- {
- 'style': "font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;",
- inkex.addNS("space","xml"):"preserve",
- 'x': str(si[0]+10),
- 'y': str(-si[1]-10+doc_height),
- 'gcodetools': "Gcodetools orientation point text"
- })
- t.text = "(%s; %s; %s)" % (i[0],i[1],i[2])
+
+ draw_text(axis,graffiti_reference_points_count*100+10,-10, group = g, gcodetools_tag = "Gcodetools graffiti reference point text")
+
+ elif self.options.orientation_points_count == "in-out reference point" :
+ draw_pointer(group = self.current_layer, x = self.view_center, figure="arrow", pointer_type = "In-out reference point", text = "In-out point")
+ else :
+ print_("Inserting orientation points")
+
+ if layer in self.orientation_points:
+ self.error(_("Active layer already has orientation points! Remove them or select another layer!"),"active_layer_already_has_orientation_points")
+
+ attr = {"gcodetools":"Gcodetools orientation group"}
+ if transform != [] :
+ attr["transform"] = transform
+
+ orientation_group = inkex.etree.SubElement(layer, inkex.addNS('g','svg'), attr)
+ doc_height = inkex.unittouu(self.document.getroot().get('height'))
+ if self.document.getroot().get('height') == "100%" :
+ doc_height = 1052.3622047
+ print_("Overruding height from 100 percents to %s" % doc_height)
+ if self.options.unit == "G21 (All units in mm)" :
+ points = [[0.,0.,self.options.Zsurface],[100.,0.,self.options.Zdepth],[0.,100.,0.]]
+ orientation_scale = 3.5433070660
+ print_("orientation_scale < 0 ===> switching to mm units=%0.10f"%orientation_scale )
+ elif self.options.unit == "G20 (All units in inches)" :
+ points = [[0.,0.,self.options.Zsurface],[5.,0.,self.options.Zdepth],[0.,5.,0.]]
+ orientation_scale = 90
+ print_("orientation_scale < 0 ===> switching to inches units=%0.10f"%orientation_scale )
+ if self.options.orientation_points_count == "2" :
+ points = points[:2]
+ print_(("using orientation scale",orientation_scale,"i=",points))
+ for i in points :
+ si = [i[0]*orientation_scale, i[1]*orientation_scale]
+ g = inkex.etree.SubElement(orientation_group, inkex.addNS('g','svg'), {'gcodetools': "Gcodetools orientation point (%s points)" % self.options.orientation_points_count})
+ inkex.etree.SubElement( g, inkex.addNS('path','svg'),
+ {
+ 'style': "stroke:none;fill:#000000;",
+ 'd':'m %s,%s 2.9375,-6.343750000001 0.8125,1.90625 6.843748640396,-6.84374864039 0,0 0.6875,0.6875 -6.84375,6.84375 1.90625,0.812500000001 z z' % (si[0], -si[1]+doc_height),
+ 'gcodetools': "Gcodetools orientation point arrow"
+ })
+
+ draw_text("(%s; %s; %s)" % (i[0],i[1],i[2]), (si[0]+10), (-si[1]-10+doc_height), group = g, gcodetools_tag = "Gcodetools orientation point text")
+
################################################################################
###
@@ -4189,20 +5944,33 @@ class Gcodetools(inkex.Effect):
"penetration feed":100,
"feed":400,
"gcode before path":"""G31 Z-100 F500 (find metal)
-G92 Z0 (zerro z)
+G92 Z0 (zero z)
G00 Z10 F500 (going up)
M03 (turn on plasma)
G04 P0.2 (pause)
G01 Z1 (going to cutting z)\n""",
"gcode after path":"M05 (turn off plasma)\n",
}
+ elif self.options.tools_library_type == "graffiti":
+ tool = {
+ "name": "Graffiti",
+ "id": "Graffiti 0001",
+ "diameter":10,
+ "penetration feed":100,
+ "feed":400,
+ "gcode before path":"""M03 S1(Turn spray on)\n """,
+ "gcode after path":"M05 (Turn spray off)\n ",
+ "tool change gcode":"(Add G00 here to change sprayer if needed)\n",
+
+ }
+
else :
tool = self.default_tool
tool_num = sum([len(self.tools[i]) for i in self.tools])
colors = ["00ff00","0000ff","ff0000","fefe00","00fefe", "fe00fe", "fe7e00", "7efe00", "00fe7e", "007efe", "7e00fe", "fe007e"]
- tools_group = inkex.etree.SubElement(layer, inkex.addNS('g','svg'), {'gcodetools': "Gcodetools tool defenition"})
+ tools_group = inkex.etree.SubElement(layer, inkex.addNS('g','svg'), {'gcodetools': "Gcodetools tool definition"})
bg = inkex.etree.SubElement( tools_group, inkex.addNS('path','svg'),
{'style': "fill:#%s;fill-opacity:0.5;stroke:#444444; stroke-width:1px;"%colors[tool_num%len(colors)], "gcodetools":"Gcodetools tool background"})
@@ -4214,35 +5982,13 @@ G01 Z1 (going to cutting z)\n""",
if key not in keys: keys += [key]
for key in keys :
g = inkex.etree.SubElement(tools_group, inkex.addNS('g','svg'), {'gcodetools': "Gcodetools tool parameter"})
-
- t = inkex.etree.SubElement( g, inkex.addNS('text','svg'),
- {
- 'style': ("font-size:10px;" if key!="name" else "font-size:20px;") + "font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;",
- inkex.addNS("space","xml"):"preserve",
- 'x': str(0),
- 'y': str(y),
- 'gcodetools': "Gcodetools tool defention field name"
- })
- t.text = str(key)
- v = str(tool[key]).split("\n")
- t = inkex.etree.SubElement( g, inkex.addNS('text','svg'),
- {
- 'style': ("font-size:10px;" if key!="name" else "font-size:20px;") + "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;",
- 'x': str(150),
- inkex.addNS("space","xml"):"preserve",
- 'y': str(y),
- 'gcodetools': "Gcodetools tool defention field value"
- })
- for s in v :
- span = inkex.etree.SubElement( t, inkex.addNS('tspan','svg'),
- {
- 'x': str(150),
- 'y': str(+y),
- inkex.addNS("role","sodipodi"):"line",
- 'gcodetools': "Gcodetools tool defention field value"
- })
- y += 15 if key!='name' else 20
- span.text = s
+ draw_text(key, 0, y, group = g, gcodetools_tag = "Gcodetools tool definition field name", font_size = 10 if key!='name' else 20)
+ param = tool[key]
+ if type(param)==str and re.match("^\s*$",param) : param = "(None)"
+ draw_text(param, 150, y, group = g, gcodetools_tag = "Gcodetools tool definition field value", font_size = 10 if key!='name' else 20)
+ v = str(param).split("\n")
+ y += 15*len(v) if key!='name' else 20*len(v)
+
bg.set('d',"m -20,-20 l 400,0 0,%f -400,0 z " % (y+50))
tool = []
tools_group.set("transform", simpletransform.formatTransform([ [1,0,self.view_center[0]-150 ], [0,1,self.view_center[1]] ] ))
@@ -4262,15 +6008,9 @@ G01 Z1 (going to cutting z)\n""",
# Set group
group = inkex.etree.SubElement( self.selected_paths.keys()[0] if len(self.selected_paths.keys())>0 else self.layers[0], inkex.addNS('g','svg') )
trans_ = [[1,0.3,0],[0,0.5,0]]
- self.get_defs()
- # Add marker to defs if it doesnot exists
- if "CheckToolsAndOPMarker" not in self.defs :
- defs = inkex.etree.SubElement( self.document.getroot(), inkex.addNS("defs","svg"))
- marker = inkex.etree.SubElement( defs, inkex.addNS("marker","svg"), {"id":"CheckToolsAndOPMarker","orient":"auto","refX":"-8","refY":"-2.41063","style":"overflow:visible"})
- inkex.etree.SubElement( marker, inkex.addNS("path","svg"),
- { "d":"m -6.55552,-2.41063 0,0 L -13.11104,0 c 1.0473,-1.42323 1.04126,-3.37047 0,-4.82126",
- "style": "fill:#000044; fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" }
- )
+
+ self.set_markers()
+
bounds = [float('inf'),float('inf'),float('-inf'),float('-inf')]
tools_bounds = {}
for layer in self.layers :
@@ -4330,7 +6070,7 @@ G01 Z1 (going to cutting z)\n""",
alias = {"X":"I", "Y":"J", "Z":"K", "x":"i", "y":"j", "z":"k"}
i_, k_ = alias[x], alias[z]
c = [ [subpath[0][1], "move", 0, 0, 0] ]
- #csp_draw(self.transform_csp([subpath],layer,True), color = "Orange", width = .1)
+ #draw_csp(self.transform_csp([subpath],layer,True), color = "Orange", width = .1)
for sp1,sp2 in zip(subpath,subpath[1:]) :
c += biarc(sp1,sp2,0,0)
for i in range(1,len(c)) : # Just in case check end point of each segment
@@ -4344,7 +6084,7 @@ G01 Z1 (going to cutting z)\n""",
gcode += ("G01 %s %f %s %f" % (x, s[4][0], z, s[4][1]) ) + feed + "\n"
elif s[1] == 'arc':
r = [(s[2][0]-s[0][0]), (s[2][1]-s[0][1])]
- if (r[0]**2 + r[1]**2)>self.options.min_arc_radius:
+ if (r[0]**2 + r[1]**2)>self.options.min_arc_radius**2:
r1, r2 = (P(s[0])-P(s[2])), (P(s[4])-P(s[2]))
if abs(r1.mag()-r2.mag()) < 0.001 :
gcode += ("G02" if s[3]*flip_angle<0 else "G03") + (" %s %f %s %f %s %f %s %f" % (x,s[4][0],z,s[4][1],i_,(s[2][0]-s[0][0]), k_, (s[2][1]-s[0][1]) ) ) + feed + "\n"
@@ -4381,7 +6121,6 @@ G01 Z1 (going to cutting z)\n""",
self.tool["passing feed"] = float(self.tool["passing feed"] if "passing feed" in self.tool else self.tool["feed"])
self.tool["feed"] = float(self.tool["feed"])
self.tool["fine feed"] = float(self.tool["fine feed"] if "fine feed" in self.tool else self.tool["feed"])
-
gcode += ( "(Change tool to %s)\n" % re.sub("\"'\(\)\\\\"," ",self.tool["name"]) ) + self.tool["tool change gcode"] + "\n"
for path in paths[layer]:
@@ -4392,21 +6131,24 @@ G01 Z1 (going to cutting z)\n""",
fine_cut = subpath[:]
if self.options.lathe_fine_cut_width>0 :
r = self.options.lathe_fine_cut_width
- # Close the path to make offset correct
- bound = csp_simple_bound([subpath])
- minx,miny,maxx,maxy = csp_true_bounds([subpath])
- offsetted_subpath = csp_subpath_line_to(subpath[:], [ [subpath[-1][1][0], miny[1]-r*10 ], [subpath[0][1][0], miny[1]-r*10 ], [subpath[0][1][0], subpath[0][1][1] ] ])
- left,right = subpath[-1][1][0], subpath[0][1][0]
- if left>right : left, right = right,left
- offsetted_subpath = csp_offset([offsetted_subpath], r if not csp_subpath_ccw(offsetted_subpath) else -r )
- offsetted_subpath = csp_clip_by_line(offsetted_subpath, [left,10], [left,0] )
- offsetted_subpath = csp_clip_by_line(offsetted_subpath, [right,0], [right,10] )
- offsetted_subpath = csp_clip_by_line(offsetted_subpath, [0, miny[1]-r], [10, miny[1]-r] )
- #csp_draw(self.transform_csp(offsetted_subpath,layer,True), color = "Green", width = 1)
- # Join offsetted_subpath together
- # Hope there wont be any cicles
- subpath = csp_join_subpaths(offsetted_subpath)[0]
-
+ if self.options.lathe_create_fine_cut_using == "Move path" :
+ subpath = [ [ [i2[0],i2[1]+r] for i2 in i1] for i1 in subpath]
+ else :
+ # Close the path to make offset correct
+ bound = csp_simple_bound([subpath])
+ minx,miny,maxx,maxy = csp_true_bounds([subpath])
+ offsetted_subpath = csp_subpath_line_to(subpath[:], [ [subpath[-1][1][0], miny[1]-r*10 ], [subpath[0][1][0], miny[1]-r*10 ], [subpath[0][1][0], subpath[0][1][1] ] ])
+ left,right = subpath[-1][1][0], subpath[0][1][0]
+ if left>right : left, right = right,left
+ offsetted_subpath = csp_offset([offsetted_subpath], r if not csp_subpath_ccw(offsetted_subpath) else -r )
+ offsetted_subpath = csp_clip_by_line(offsetted_subpath, [left,10], [left,0] )
+ offsetted_subpath = csp_clip_by_line(offsetted_subpath, [right,0], [right,10] )
+ offsetted_subpath = csp_clip_by_line(offsetted_subpath, [0, miny[1]-r], [10, miny[1]-r] )
+ #draw_csp(self.transform_csp(offsetted_subpath,layer,True), color = "Green", width = 1)
+ # Join offsetted_subpath together
+ # Hope there wont be any cicles
+ subpath = csp_join_subpaths(offsetted_subpath)[0]
+
# Create solid object from path and lathe_width
bound = csp_simple_bound([subpath])
top_start, top_end = [subpath[0][1][0], self.options.lathe_width+self.options.Zsafe+self.options.lathe_fine_cut_width], [subpath[-1][1][0], self.options.lathe_width+self.options.Zsafe+self.options.lathe_fine_cut_width]
@@ -4471,10 +6213,88 @@ G01 Z1 (going to cutting z)\n""",
gcode += ("G01 %s %f F %f \n" % (z, top_start[1], self.tool["passing feed"]) )
gcode += ("G01 %s %f %s %f F %f \n" % (x, top_start[0], z, top_start[1], self.tool["passing feed"]) )
-
-
self.export_gcode(gcode)
+
+################################################################################
+###
+### Lathe modify path
+### Modifies path to fit current cutter. As for now straight rect cutter.
+###
+################################################################################
+
+ def lathe_modify_path(self):
+ if self.selected_paths == {} and self.options.auto_select_paths:
+ paths=self.paths
+ self.error(_("No paths are selected! Trying to work on all available paths."),"warning")
+ else :
+ paths = self.selected_paths
+
+ for layer in self.layers :
+ if layer in paths :
+ width = self.options.lathe_rectangular_cutter_width
+ #self.set_tool(layer)
+ for path in paths[layer]:
+ csp = self.transform_csp(cubicsuperpath.parsePath(path.get("d")),layer)
+ new_csp = []
+ for subpath in csp:
+ orientation = subpath[-1][1][0]>subpath[0][1][0]
+ last_n = None
+ last_o = 0
+ new_subpath = []
+
+ # Split segment at x' and y' == 0
+ for sp1, sp2 in zip(subpath[:],subpath[1:]):
+ ax,ay,bx,by,cx,cy,dx,dy = csp_parameterize(sp1,sp2)
+ roots = cubic_solver_real(0, 3*ax, 2*bx, cx)
+ roots += cubic_solver_real(0, 3*ay, 2*by, cy)
+ new_subpath = csp_concat_subpaths(new_subpath, csp_seg_split(sp1,sp2,roots))
+ subpath = new_subpath
+ new_subpath = []
+ first_seg = True
+ for sp1, sp2 in zip(subpath[:],subpath[1:]):
+ n = csp_normalized_normal(sp1,sp2,0)
+ a = math.atan2(n[0],n[1])
+ if a == 0 or a == math.pi :
+ n = csp_normalized_normal(sp1,sp2,1)
+ a = math.atan2(n[0],n[1])
+ if a!=0 and a!=math.pi:
+ o = 0 if 0<a<=math.pi/2 or -math.pi<a<-math.pi/2 else 1
+ if not orientation: o = 1-o
+
+ # Add first horisontal straight line if needed
+ if not first_seg and new_subpath==[] : new_subpath = [ [[subpath[0][i][0] - width*o ,subpath[0][i][1]] for i in range(3)] ]
+
+ new_subpath = csp_concat_subpaths(
+ new_subpath,
+ [
+ [[sp1[i][0] - width*o ,sp1[i][1]] for i in range(3)],
+ [[sp2[i][0] - width*o ,sp2[i][1]] for i in range(3)]
+ ]
+ )
+ first_seg = False
+
+ # Add last horisontal straigth line if needed
+ if a==0 or a==math.pi :
+ new_subpath += [ [[subpath[-1][i][0] - width*o ,subpath[-1][i][1]] for i in range(3)] ]
+
+ new_csp += [new_subpath]
+ self.draw_csp(new_csp,layer)
+#
+# o = (1 if cross(n, [0,1])>0 else -1)*orientation
+# new_subpath += [ [sp1[i][0] - width*o,sp1[i][1]] for i in range(3) ]
+# n = csp_normalized_normal(sp1,sp2,1)
+# o = (1 if cross(n, [0,1])>0 else -1)*orientation
+# new_subpath += [ [sp2[i][0] - width*o,sp2[i][1]] for i in range(3) ]
+
+
+################################################################################
+###
+### Update function
+###
+### Gets file containing version information from the web and compaares it with.
+### current version.
+################################################################################
def update(self) :
try :
@@ -4494,6 +6314,309 @@ G01 Z1 (going to cutting z)\n""",
except :
self.error("Can not check the latest version. You can check it manualy at \nhttp://www.cnc-club.ru/gcodetools (English version). \nhttp://www.cnc-club.ru/gcodetools_ru (Russian version). \nCurrent version is Gcodetools %s"%gcodetools_current_version,"Warning")
+
+
+################################################################################
+### Graffiti function generates Gcode for graffiti drawer
+################################################################################
+ def graffiti(self) :
+ # Get reference points.
+
+ def get_gcode_coordinates(point,layer):
+ gcode = ''
+ pos = []
+ for ref_point in self.graffiti_reference_points[layer] :
+ c = math.sqrt((point[0]-ref_point[0][0])**2 + (point[1]-ref_point[0][1])**2)
+ gcode += " %s %f"%(ref_point[1], c)
+ pos += [c]
+ return pos, gcode
+
+
+ def graffiti_preview_draw_point(x1,y1,color,radius=.5):
+ self.graffiti_preview = self.graffiti_preview
+ r,g,b,a_ = color
+ for x in range(int(x1-1-math.ceil(radius)), int(x1+1+math.ceil(radius)+1)):
+ for y in range(int(y1-1-math.ceil(radius)), int(y1+1+math.ceil(radius)+1)):
+ if x>=0 and y>=0 and y<len(self.graffiti_preview) and x*4<len(self.graffiti_preview[0]) :
+ d = math.sqrt( (x1-x)**2 +(y1-y)**2 )
+ a = float(a_)*( max(0,(1-(d-radius))) if d>radius else 1 )/256
+ self.graffiti_preview[y][x*4] = int(r*a + (1-a)*self.graffiti_preview[y][x*4])
+ self.graffiti_preview[y][x*4+1] = int(g*a + (1-a)*self.graffiti_preview[y][x*4+1])
+ self.graffiti_preview[y][x*4+2] = int(g*b + (1-a)*self.graffiti_preview[y][x*4+2])
+ self.graffiti_preview[y][x*4+3] = min(255,int(self.graffiti_preview[y][x*4+3]+a*256))
+
+ def graffiti_preview_transform(x,y):
+ tr = self.graffiti_preview_transform
+ d = max(tr[2]-tr[0]+2,tr[3]-tr[1]+2)
+ return [(x-tr[0]+1)*self.options.graffiti_preview_size/d, self.options.graffiti_preview_size - (y-tr[1]+1)*self.options.graffiti_preview_size/d]
+
+
+ def draw_graffiti_segment(layer,start,end,feed,color=(0,255,0,40),emmit=1000):
+ # Emit = dots per second
+ l = math.sqrt(sum([(start[i]-end[i])**2 for i in range(len(start))]))
+ time_ = l/feed
+ c1,c2 = self.graffiti_reference_points[layer][0][0],self.graffiti_reference_points[layer][1][0]
+ d = math.sqrt( (c1[0]-c2[0])**2 + (c1[1]-c2[1])**2 )
+ if d == 0 : raise ValueError, "Error! Reference points should not be the same!"
+ for i in range(int(time_*emmit+1)) :
+ t = i/(time_*emmit)
+ r1,r2 = start[0]*(1-t) + end[0]*t, start[1]*(1-t) + end[1]*t
+ a = (r1**2-r2**2+d**2)/(2*d)
+ h = math.sqrt(r1**2 - a**2)
+ xa = c1[0] + a*(c2[0]-c1[0])/d
+ ya = c1[1] + a*(c2[1]-c1[1])/d
+
+ x1 = xa + h*(c2[1]-c1[1])/d
+ x2 = xa - h*(c2[1]-c1[1])/d
+ y1 = ya - h*(c2[0]-c1[0])/d
+ y2 = ya + h*(c2[0]-c1[0])/d
+
+ x = x1 if y1<y2 else x2
+ y = min(y1,y2)
+ x,y = graffiti_preview_transform(x,y)
+ graffiti_preview_draw_point(x,y,color)
+
+ def create_connector(p1,p2,t1,t2):
+ P1,P2 = P(p1), P(p2)
+ N1, N2 = P(rotate_ccw(t1)), P(rotate_ccw(t2))
+ r = self.options.graffiti_min_radius
+ C1,C2 = P1+N1*r, P2+N2*r
+ # Get closest possible centers of arcs, also we define that arcs are both ccw or both not.
+ dc, N1, N2, m = (
+ (
+ (((P2-N1*r) - (P1-N2*r)).l2(),-N1,-N2, 1)
+ if vectors_ccw(t1,t2) else
+ (((P2+N1*r) - (P1+N2*r)).l2(), N1, N2,-1)
+ )
+ if vectors_ccw((P1-C1).to_list(),t1) == vectors_ccw((P2-C2).to_list(),t2) else
+ (
+ (((P2+N1*r) - (P1-N2*r)).l2(), N1,-N2, 1)
+ if vectors_ccw(t1,t2) else
+ (((P2-N1*r) - (P1+N2*r)).l2(),-N1, N2, 1)
+ )
+ )
+ dc = math.sqrt(dc)
+ C1,C2 = P1+N1*r, P2+N2*r
+ Dc = C2-C1
+
+ if dc == 0 :
+ # can be joined by one arc
+ return csp_from_arc(p1, p2, C1.to_list(), r, t1)
+
+ cos, sin = Dc.x/dc, Dc.y/dc
+ #draw_csp(self.transform_csp([[ [[C1.x-r*sin,C1.y+r*cos]]*3,[[C2.x-r*sin,C2.y+r*cos]]*3 ]],layer,reverse=True), color = "#00ff00;" )
+ #draw_pointer(self.transform(C1.to_list(),layer,reverse=True))
+ #draw_pointer(self.transform(C2.to_list(),layer,reverse=True))
+
+ p1_end = [C1.x-r*sin*m,C1.y+r*cos*m]
+ p2_st = [C2.x-r*sin*m,C2.y+r*cos*m]
+ if point_to_point_d2(p1,p1_end)<0.0001 and point_to_point_d2(p2,p2_st)<0.0001 :
+ return ([[p1,p1,p1],[p2,p2,p2]])
+
+ arc1 = csp_from_arc(p1, p1_end, C1.to_list(), r, t1)
+ arc2 = csp_from_arc(p2_st, p2, C2.to_list(), r, [cos,sin])
+ return csp_concat_subpaths(arc1,arc2)
+
+ if not self.check_dir() : return
+ if self.selected_paths == {} and self.options.auto_select_paths:
+ paths=self.paths
+ self.error(_("No paths are selected! Trying to work on all available paths."),"warning")
+ else :
+ paths = self.selected_paths
+ self.tool = []
+ gcode = """(Header)
+(Generated by gcodetools from Inkscape.)
+(Using graffiti extension.)
+(Header end.)"""
+
+ minx,miny,maxx,maxy = float("inf"),float("inf"),float("-inf"),float("-inf")
+
+ # Get all reference points and path's bounds to make preview
+
+ for layer in self.layers :
+ if layer in paths :
+ # Set reference points
+ if layer not in self.graffiti_reference_points:
+ reference_points = None
+ for i in range(self.layers.index(layer),-1,-1):
+ if self.layers[i] in self.graffiti_reference_points :
+ reference_points = self.graffiti_reference_points[self.layers[i]]
+ self.graffiti_reference_points[layer] = self.graffiti_reference_points[self.layers[i]]
+ break
+ if reference_points == None :
+ self.error('There are no graffiti reference points for layer %s'%layer,"error")
+
+ # Transform reference points
+ for i in range(len(self.graffiti_reference_points[layer])):
+ self.graffiti_reference_points[layer][i][0] = self.transform(self.graffiti_reference_points[layer][i][0], layer)
+ point = self.graffiti_reference_points[layer][i]
+ gcode += "(Reference point %f;%f for %s axis)\n"%(point[0][0],point[0][1],point[1])
+
+ if self.options.graffiti_create_preview :
+ for point in self.graffiti_reference_points[layer]:
+ minx,miny,maxx,maxy = min(minx,point[0][0]), min(miny,point[0][1]), max(maxx,point[0][0]), max(maxy,point[0][1])
+ for path in paths[layer]:
+ csp = cubicsuperpath.parsePath(path.get("d"))
+ csp = self.apply_transforms(path, csp)
+ csp = self.transform_csp(csp, layer)
+ bounds = csp_simple_bound(csp)
+ minx,miny,maxx,maxy = min(minx,bounds[0]), min(miny,bounds[1]), max(maxx,bounds[2]), max(maxy,bounds[3])
+
+ if self.options.graffiti_create_preview :
+ self.graffiti_preview = list([ [255]*(4*self.options.graffiti_preview_size) for i in range(self.options.graffiti_preview_size)])
+ self.graffiti_preview_transform = [minx,miny,maxx,maxy]
+
+ for layer in self.layers :
+ if layer in paths :
+
+ r = re.match("\s*\(\s*([0-9\-,.]+)\s*;\s*([0-9\-,.]+)\s*\)\s*",self.options.graffiti_start_pos)
+ if r :
+ start_point = [float(r.group(1)),float(r.group(2))]
+ else :
+ start_point = [0.,0.]
+ last_sp1 = [[start_point[0],start_point[1]-10] for i in range(3)]
+ last_sp2 = [start_point for i in range(3)]
+
+ self.set_tool(layer)
+ self.tool = self.tools[layer][0]
+ # Change tool every layer. (Probably layer = color so it'll be
+ # better to change it even if the tool has not been changed)
+ gcode += ( "(Change tool to %s)\n" % re.sub("\"'\(\)\\\\"," ",self.tool["name"]) ) + self.tool["tool change gcode"] + "\n"
+
+ subpaths = []
+ for path in paths[layer]:
+ # Rebuild the paths to polyline.
+ csp = cubicsuperpath.parsePath(path.get("d"))
+ csp = self.apply_transforms(path, csp)
+ csp = self.transform_csp(csp, layer)
+ subpaths += csp
+ polylines = []
+ while len(subpaths)>0:
+ i = min( [( point_to_point_d2(last_sp2[1],subpaths[i][0][1]),i) for i in range(len(subpaths))] )[1]
+ subpath = subpaths[i][:]
+ del subpaths[i]
+ polylines += [
+ ['connector', create_connector(
+ last_sp2[1],
+ subpath[0][1],
+ csp_normalized_slope(last_sp1,last_sp2,1.),
+ csp_normalized_slope(subpath[0],subpath[1],0.),
+ )]
+ ]
+ polyline = []
+ spl = None
+
+ # remove zerro length segments
+ i = 0
+ while i<len(subpath)-1:
+ if (cspseglength(subpath[i],subpath[i+1])<0.00000001 ) :
+ subpath[i][2] = subpath[i+1][2]
+ del subpath[i+1]
+ else :
+ i += 1
+
+ for sp1, sp2 in zip(subpath,subpath[1:]) :
+ if spl != None and abs(cross( csp_normalized_slope(spl,sp1,1.),csp_normalized_slope(sp1,sp2,0.) )) > 0.1 : # TODO add coefficient into inx
+ # We've got sharp angle at sp1.
+ polyline += [sp1]
+ polylines += [['draw',polyline[:]]]
+ polylines += [
+ ['connector', create_connector(
+ sp1[1],
+ sp1[1],
+ csp_normalized_slope(spl,sp1,1.),
+ csp_normalized_slope(sp1,sp2,0.),
+ )]
+ ]
+ polyline = []
+ # max_segment_length
+ polyline += [ sp1 ]
+ print_(polyline)
+ print_(sp1)
+
+ spl = sp1
+ polyline += [ sp2 ]
+ polylines += [ ['draw',polyline[:]] ]
+
+ last_sp1, last_sp2 = sp1,sp2
+
+
+ # Add return to start_point
+ if polylines == [] : continue
+ polylines += [ ["connect1", [ [polylines[-1][1][-1][1] for i in range(3)],[start_point for i in range(3)] ] ] ]
+
+ # Make polilynes from polylines. They are still csp.
+ for i in range(len(polylines)) :
+ polyline = []
+ l = 0
+ print_("polylines",polylines)
+ print_(polylines[i])
+ for sp1,sp2 in zip(polylines[i][1],polylines[i][1][1:]) :
+ print_(sp1,sp2)
+ l = cspseglength(sp1,sp2)
+ if l>0.00000001 :
+ polyline += [sp1[1]]
+ parts = int(math.ceil(l/self.options.graffiti_max_seg_length))
+ for j in range(1,parts):
+ polyline += [csp_at_length(sp1,sp2,float(j)/parts) ]
+ if l>0.00000001 :
+ polyline += [sp2[1]]
+ print_(i)
+ polylines[i][1] = polyline
+
+ t = 0
+ last_state = None
+ for polyline_ in polylines:
+ polyline = polyline_[1]
+ # Draw linearization
+ if self.options.graffiti_create_linearization_preview :
+ t += 1
+ csp = [ [polyline[i],polyline[i],polyline[i]] for i in range(len(polyline))]
+ draw_csp(self.transform_csp([csp],layer,reverse=True), color = "#00cc00;" if polyline_[0]=='draw' else "#ff5555;")
+
+
+ # Export polyline to gcode
+ # we are making trnsform from XYZA coordinates to R1...Rn
+ # where R1...Rn are radius vectors from grafiti reference points
+ # to current (x,y) point. Also we need to assign custom feed rate
+ # for each segment. And we'll use only G01 gcode.
+ last_real_pos, g = get_gcode_coordinates(polyline[0],layer)
+ last_pos = polyline[0]
+ if polyline_[0] == "draw" and last_state!="draw":
+ gcode += self.tool['gcode before path']+"\n"
+ for point in polyline :
+ real_pos, g = get_gcode_coordinates(point,layer)
+ real_l = sum([(real_pos[i]-last_real_pos[i])**2 for i in range(len(last_real_pos))])
+ l = (last_pos[0]-point[0])**2 + (last_pos[1]-point[1])**2
+ if l!=0:
+ feed = self.tool['feed']*math.sqrt(real_l/l)
+ gcode += "G01 " + g + " F %f\n"%feed
+ if self.options.graffiti_create_preview :
+ draw_graffiti_segment(layer,real_pos,last_real_pos,feed,color=(0,0,255,200) if polyline_[0] == "draw" else (255,0,0,200),emmit=self.options.graffiti_preview_emmit)
+ last_real_pos = real_pos
+ last_pos = point[:]
+ if polyline_[0] == "draw" and last_state!="draw" :
+ gcode += self.tool['gcode after path']+"\n"
+ last_state = polyline_[0]
+ self.export_gcode(gcode, no_headers=True)
+ if self.options.graffiti_create_preview :
+ try :
+ # Draw reference points
+ for layer in self.graffiti_reference_points:
+ for point in self.graffiti_reference_points[layer] :
+ x, y = graffiti_preview_transform(point[0][0],point[0][1])
+ graffiti_preview_draw_point(x,y,(0,255,0,255),radius=5)
+
+ import png
+ writer = png.Writer(width=self.options.graffiti_preview_size, height=self.options.graffiti_preview_size, size=None, greyscale=False, alpha=True, bitdepth=8, palette=None, transparent=None, background=None, gamma=None, compression=None, interlace=False, bytes_per_sample=None, planes=None, colormap=None, maxval=None, chunk_limit=1048576)
+ f = open(self.options.directory+self.options.file+".png", 'wb')
+ writer.write(f,self.graffiti_preview)
+ f.close()
+
+ except :
+ self.error("Png module have not been found!","warning")
+
+
################################################################################
###
@@ -4503,6 +6626,7 @@ G01 Z1 (going to cutting z)\n""",
###
################################################################################
def effect(self) :
+ start_time = time.time()
global options
options = self.options
options.self = self
@@ -4523,12 +6647,19 @@ G01 Z1 (going to cutting z)\n""",
if self.options.active_tab == '"help"' :
self.help()
return
- elif self.options.active_tab not in ['"dxfpoints"','"path-to-gcode"', '"area"', '"area_artefacts"', '"engraving"', '"orientation"', '"tools_library"', '"lathe"', '"offset"', '"arrangement"', '"update"']:
- self.error(_("Select one of the active tabs - Path to Gcode, Area, Engraving, DXF points, Orientation, Offset, Lathe or Tools library."),"error")
+ elif self.options.active_tab == '"about"' :
+ self.help()
+ return
+
+ elif self.options.active_tab == '"test"' :
+ self.test()
+
+ elif self.options.active_tab not in ['"dxfpoints"','"path-to-gcode"', '"area_fill"', '"area"', '"area_artefacts"', '"engraving"', '"orientation"', '"tools_library"', '"lathe"', '"offset"', '"arrangement"', '"update"', '"graffiti"', '"lathe_modify_path"', '"plasma-prepare-path"']:
+ self.error(_("Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, Orientation, Offset, Lathe or Tools library.\n Current active tab id is %s" % self.options.active_tab),"error")
else:
# Get all Gcodetools data from the scene.
self.get_info()
- if self.options.active_tab in ['"dxfpoints"','"path-to-gcode"', '"area"', '"area_artefacts"', '"engraving"', '"lathe"']:
+ if self.options.active_tab in ['"dxfpoints"','"path-to-gcode"', '"area_fill"', '"area"', '"area_artefacts"', '"engraving"', '"lathe"', '"graffiti"', '"plasma-prepare-path"']:
if self.orientation_points == {} :
self.error(_("Orientation points have not been defined! A default set of orientation points has been automatically added."),"warning")
self.orientation( self.layers[min(1,len(self.layers)-1)] )
@@ -4540,6 +6671,8 @@ G01 Z1 (going to cutting z)\n""",
self.get_info()
if self.options.active_tab == '"path-to-gcode"':
self.path_to_gcode()
+ elif self.options.active_tab == '"area_fill"':
+ self.area_fill()
elif self.options.active_tab == '"area"':
self.area()
elif self.options.active_tab == '"area_artefacts"':
@@ -4550,6 +6683,8 @@ G01 Z1 (going to cutting z)\n""",
self.engraving()
elif self.options.active_tab == '"orientation"':
self.orientation()
+ elif self.options.active_tab == '"graffiti"':
+ self.graffiti()
elif self.options.active_tab == '"tools_library"':
if self.options.tools_library_type != "check":
self.tools_library()
@@ -4557,6 +6692,8 @@ G01 Z1 (going to cutting z)\n""",
self.check_tools_and_op()
elif self.options.active_tab == '"lathe"':
self.lathe()
+ elif self.options.active_tab == '"lathe_modify_path"':
+ self.lathe_modify_path()
elif self.options.active_tab == '"update"':
self.update()
elif self.options.active_tab == '"offset"':
@@ -4582,7 +6719,7 @@ G01 Z1 (going to cutting z)\n""",
offsets_count += 1
if offset_ != [] :
for iii in offset_ :
- csp_draw([iii], color="Green", width=1)
+ draw_csp([iii], color="Green", width=1)
#print_(offset_)
else :
print_("------------Reached empty offset at radius %s"% offset )
@@ -4597,7 +6734,17 @@ G01 Z1 (going to cutting z)\n""",
print_("Total offsets count %s"%offsets_count)
elif self.options.active_tab == '"arrangement"':
self.arrangement()
+
+ elif self.options.active_tab == '"plasma-prepare-path"':
+ self.plasma_prepare_path()
+
+
+ print_("------------------------------------------")
+ print_("Done in %f seconds"%(time.time()-start_time))
+ print_("End at %s."%time.strftime("%d.%m.%Y %H:%M:%S"))
+
+
#
-e = Gcodetools()
-e.affect()
+gcodetools = Gcodetools()
+gcodetools.affect()
diff --git a/share/extensions/gcodetools_about.inx b/share/extensions/gcodetools_about.inx
new file mode 100644
index 000000000..3dd983835
--- /dev/null
+++ b/share/extensions/gcodetools_about.inx
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <name>About</name>
+ <id>ru.cnc-club.filter.gcodetools_about_no_options_no_preferences</id>
+ <dependency type="executable" location="extensions">gcodetools.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <param name='active-tab' type="notebook">
+
+ <page name='about' _gui-text='About'>
+ <_param name="help" type="description">Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode is a special format which is used in most of CNC machines. So Gcodetools allows you to use Inkscape as CAM program.
+
+It can be use with a lot of machone types:
+ Mills
+ Lathes
+ Laser and Palsma cutters and engravers
+ Mill engravers
+ Plotters
+ etc.
+
+To get more info visit developers page at http://www.cnc-club.ru/gcodetools</_param>
+ </page>
+
+ <page name='help' _gui-text='Help'>
+ <_param name="fullhelp" type="description">
+Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.
+This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed.
+
+Tutorials, manuals and support can be found at
+English support forum:
+ http://www.cnc-club.ru/gcodetools
+
+and Russian support forum:
+ http://www.cnc-club.ru/gcodetoolsru
+
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
+
+Gcodetools ver. 1.7
+</_param>
+
+ </page>
+
+ </param>
+ <effect>
+ <effects-menu>
+ <submenu _name="Gcodetools"/>
+ </effects-menu>
+ <object-type>path</object-type>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">gcodetools.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/gcodetools_all_in_one.inx b/share/extensions/gcodetools_all_in_one.inx
deleted file mode 100644
index 85d7cfbee..000000000
--- a/share/extensions/gcodetools_all_in_one.inx
+++ /dev/null
@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>All in one</_name>
- <id>ru.cnc-club.filter.gcodetools_ptg_area_area_artefacts_engraving_dxfpoints_tools_library_orientation</id>
- <dependency type="executable" location="extensions">gcodetools.py</dependency>
- <dependency type="executable" location="extensions">inkex.py</dependency>
- <param name='active-tab' type="notebook">
-
- <page name='path-to-gcode' _gui-text='Path to Gcode'>
- <param name="biarc-tolerance" type='float' precision="5" _gui-text='Biarc interpolation tolerance:'>1</param>
- <param name="biarc-max-split-depth" type="int" _gui-text="Maximum splitting depth:">4</param>
- <_param name="help" type="description">
-Biarc interpolation tolerance is the maximum distance between path and its approximation.
-The segment will be split into two segments if the distance between path's segment and it's approximation exceeds biarc interpolation tolerance.
-</_param>
- </page>
-
- <page name='area' msgctxt="gcodetools extension" _gui-text='Area'>
- <param name="max-area-curves" type="int" min="0" max="1000" _gui-text="Maximum area cutting curves:">100</param>
- <param name="area-inkscape-radius" type="float" min="-1000" max="1000" _gui-text="Area width:">-10</param>
-
- <_param name="help" type="description">
-"Create area offset": creates several Inkscape path offsets to fill original path's area up to "Area radius" value.
-
-Outlines start from "1/2 D" up to "Area width" total width with "D" steps where D is taken from the nearest tool definition ("Tool diameter" value).
-Only one offset will be created if the "Area width" is equal to "1/2 D".
- </_param>
- </page>
-
- <page name='area_artefacts' _gui-text='Area artefacts'>
- <param name="area-find-artefacts-diameter" type="float" min="0.01" max="1000" _gui-text="Artefact diameter:">5.0</param>
- <param name="area-find-artefacts-action" type="optiongroup" _gui-text="Action:">
- <_option value="mark with an arrow">mark with an arrow</_option>
- <_option value="mark with style">mark with style</_option>
- <_option value="delete">delete</_option>
- </param>
- <_param name="help" type="description">
-Usage:
-1. Select all Area Offsets (gray outlines)
-2. Object/Ungroup (Shift+Ctrl+G)
-3. Press Apply
-
-Suspected small objects will be marked out by colored arrows.
- </_param>
- </page>
-
- <page name='engraving' _gui-text='Engraving'>
- <param name="engraving-sharp-angle-tollerance" type="float" precision="5" min="0" max="180" _gui-text="Sharp angle tolerance:">150</param>
- <param name="engraving-max-dist" type="float" precision="5" min="0" max="1000" _gui-text="Maximum distance for engraving:">10</param>
- <param name="engraving-newton-iterations" type="int" min="2" max="10" _gui-text="Number of sample points used to calculate distance:">4</param>
- <param name="engraving-draw-calculation-paths" type="boolean" _gui-text="Draw additional graphics to debug engraving path:">false</param>
-
- <_param name="help" type="description">
-This function creates path to engrave sharp angles.
-Cutter's shape function is defined by the tool. Some simple shapes:
-
-cone....(45 degrees)...........: w
-cone....(height/diameter=10/3).: 10/3 w
-sphere..("r" diameter).........: math.sqrt(max(0,r**2-w**2))
-ellipse.(R1=r and R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4</_param>
- </page>
-
- <page name='dxfpoints' _gui-text='DXF points'>
- <_param name="help" type="description">
-
-Convert selected objects to drill points (as dxf_import plugin does). Also you can save original shape. Only the start point of each curve will be used.
-
-Also you can manually select object, open XML editor (Shift+Ctrl+X) and add or remove XML tag 'dxfpoint' with any value.
- </_param>
- <param type='optiongroup' name='dxfpoints-action' _gui-text="Convert selection:">
-<_option value='save'>set as dxfpoint and save shape</_option>
-<_option value='replace'>set as dxfpoint and draw arrow</_option>
-<_option value='clear'>clear dxfpoint sign</_option>
- </param>
-
- </page>
-
- <page name='tools_library' _gui-text='Tools library'>
-
- <param type='optiongroup' name='tools-library-type' _gui-text="Tools type:">
-<_option value='default tool'>default</_option>
-<_option value='cylinder cutter'>cylinder</_option>
-<_option value='cone cutter'>cone</_option>
-<_option value='plasma cutter'>plasma</_option>
-<_option value='tangent knife'>tangent knife</_option>
-<_option value='lathe cutter'>lathe cutter</_option>
-
-<_option value='check'>Just check tools</_option>
-
- </param>
-
- <_param name="help" type="description">
-Selected tool type fills appropriate default values. You can change these values using the Text tool later on.
-
-The topmost (z order) tool in the active layer is used. If there is no tool inside the current layer it is taken from the upper layer.
-
-Press Apply to create new tool.
- </_param>
- </page>
-
- <page name='orientation' _gui-text='Orientation'>
-
- <param name="orientation-points-count" type="optiongroup" _gui-text="Orientation type:">
-<_option value="2">2-points mode
-(move and rotate,
-maintained aspect ratio X/Y)</_option>
-<_option value="3">3-points mode
-(move, rotate and mirror,
-different X/Y scale)</_option>
- </param>
- <param name="Zsurface" type="float" precision="5" min="-1000" max="1000" _gui-text="Z surface:">0</param>
- <param name="Zdepth" type="float" precision="5" min="-1000" max="1000" _gui-text="Z depth:">-1</param>
- <param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
- </param>
-
- <_param name="help" type="description">
-Orientation points are used to calculate transformation (offset,scale,mirror,rotation in XY plane) of the path.
-3-points mode only: do not put all three into one line (use 2-points mode instead).
-
-You can modify Z surface, Z depth values later using text tool (3rd coordinates).
-
-If there are no orientation points inside current layer they are taken from the upper layer.
-
-Do not ungroup orientation points! You can select them using double click to enter the group or by Ctrl+Click.
-
-Now press apply to create control points (independent set for each layer).
- </_param>
- </page>
-
- <page name='options' _gui-text='Options'>
- <param name="Zscale" type="float" precision="5" min="-100000" max="100000" _gui-text="Scale along Z axis:">1</param>
- <param name="Zoffset" type="float" precision="5" min="-100000" max="100000" _gui-text="Offset along Z axis:">0.0</param>
- <param name="auto_select_paths" type="boolean" _gui-text="Select all paths if nothing is selected">true</param>
- <param name="min-arc-radius" type="float" precision="5" min="-1000" max="1000" _gui-text="Minimum arc radius:">0.05</param>
- </page>
-
- <page name='preferences' _gui-text='Preferences'>
- <param name="filename" type="string" _gui-text="File:">output.ngc</param>
- <param name="add-numeric-suffix-to-filename" type="boolean" _gui-text="Add numeric suffix to filename">true</param>
-
- <param name="directory" type="string" _gui-text="Directory:">/home</param>
-
- <param name="Zsafe" type="float" precision="5" min="-1000" max="1000" _gui-text="Z safe height for G00 move over blank:">5</param>
- <param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
- </param>
- <param name="postprocessor" type="enum" _gui-text="Post-processor:">
- <item value=" ">None</item>
- <item value="parameterize();">Parameterize Gcode</item>
- <item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</item>
- <item value="round(4);">Round all values to 4 digits</item>
- </param>
- <param name="postprocessor-custom" type="string" _gui-text="Additional post-processor:"></param>
-
-
- <param name="create-log" type="boolean" _gui-text="Generate log file">false</param>
- <param name="log-filename" type="string" _gui-text="Full path to log file:"></param>
-
- </page>
-
- <page name='help' _gui-text='Help'>
- <_param name="fullhelp" type="description">
-Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.
-This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed.
-
-Tutorials, manuals and support can be found at
-English support forum:
- http://www.cnc-club.ru/gcodetools
-
-and Russian support forum:
- http://www.cnc-club.ru/gcodetoolsru
-
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
-
-Gcodetools ver. 1.6.01
-</_param>
-
- </page>
-
- </param>
- <effect>
- <effects-menu>
- <submenu _name="Gcodetools"/>
- </effects-menu>
- <object-type>path</object-type>
- </effect>
- <script>
- <command reldir="extensions" interpreter="python">gcodetools.py</command>
- </script>
-
-</inkscape-extension>
diff --git a/share/extensions/gcodetools_area.inx b/share/extensions/gcodetools_area.inx
index 53ceeafaa..9f4a083d4 100644
--- a/share/extensions/gcodetools_area.inx
+++ b/share/extensions/gcodetools_area.inx
@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Area</_name>
- <id>ru.cnc-club.filter.gcodetools_area_area_artefacts_ptg</id>
+ <name>Area</name>
+ <id>ru.cnc-club.filter.gcodetools_area_area_fill_area_artefacts_ptg</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<param name='active-tab' type="notebook">
- <page name='area' msgctxt="gcodetools extension" _gui-text='Area'>
+ <page name='area' _gui-text='Area'>
<param name="max-area-curves" type="int" min="0" max="1000" _gui-text="Maximum area cutting curves:">100</param>
<param name="area-inkscape-radius" type="float" min="-1000" max="1000" _gui-text="Area width:">-10</param>
+ <param name="area-tool-overlap" type="float" min="0" max="1" _gui-text="Area tool overlap (0..0.9):">0</param>
<_param name="help" type="description">
"Create area offset": creates several Inkscape path offsets to fill original path's area up to "Area radius" value.
@@ -18,8 +20,18 @@ Only one offset will be created if the "Area width" is equal to "1/2 D".
</_param>
</page>
- <page name='area_artefacts' _gui-text='Area artefacts'>
- <param name="area-find-artefacts-diameter" type="float" min="0.01" max="1000" _gui-text="Artefact diameter:">5.0</param>
+ <page name='area_fill' _gui-text='Fill area'>
+ <param name="area-fill-angle" type="float" min="-360" max="360" _gui-text="Area fill anlge">0</param>
+ <param name="area-fill-shift" type="float" min="-1" max="1" _gui-text="Area fill shift">0</param>
+ <param name="area-fill-method" type="float" min="-1" max="1" _gui-text="Area fill shift">0</param>
+ <param name="area-fill-method" _gui-text="Filling method" type="optiongroup">
+ <_option value="zig-zag">Zig zag</_option>
+ <_option value="spiral">Spiral</_option>
+ </param>
+ </page>
+
+ <page name='area_artefacts' _gui-text='Area artifacts'>
+ <param name="area-find-artefacts-diameter" type="float" min="0.01" max="1000" _gui-text="Artifact diameter:">5.0</param>
<param name="area-find-artefacts-action" type="optiongroup" _gui-text="Action:">
<_option value="mark with an arrow">mark with an arrow</_option>
<_option value="mark with style">mark with style</_option>
@@ -38,9 +50,19 @@ Suspected small objects will be marked out by colored arrows.
<page name='path-to-gcode' _gui-text='Path to Gcode'>
<param name="biarc-tolerance" type='float' precision="5" _gui-text='Biarc interpolation tolerance:'>1</param>
<param name="biarc-max-split-depth" type="int" _gui-text="Maximum splitting depth:">4</param>
+ <param name="path-to-gcode-order" _gui-text="Cutting order" type="optiongroup" appearance="minimal">
+ <_option value="subpath by subpath">Subpath by subpath</_option>
+ <_option value="path by path">Path by path</_option>
+ <_option value="pass by pass">Pass by Pass</_option>
+ </param>
+
+ <param name="path-to-gcode-depth-function" type="string" _gui-text="Depth function:">d</param>
+ <param name="path-to-gcode-sort-paths" type="boolean" _gui-text="Sort paths to reduse rapid distance">True</param>
+
<_param name="help" type="description">
Biarc interpolation tolerance is the maximum distance between path and its approximation.
-The segment will be split into two segments if the distance between path's segment and it's approximation exceeds biarc interpolation tolerance.
+The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance.
+For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points.
</_param>
</page>
@@ -49,6 +71,9 @@ The segment will be split into two segments if the distance between path's segme
<param name="Zoffset" type="float" precision="5" min="-100000" max="100000" _gui-text="Offset along Z axis:">0.0</param>
<param name="auto_select_paths" type="boolean" _gui-text="Select all paths if nothing is selected">true</param>
<param name="min-arc-radius" type="float" precision="5" min="-1000" max="1000" _gui-text="Minimum arc radius:">0.05</param>
+ <param name="comment-gcode" type="string" _gui-text="Comment Gcode:"></param>
+ <param name="comment-gcode-from-properties" type="boolean" _gui-text="Get additional comments from object's properties">False</param>
+
</page>
<page name='preferences' _gui-text='Preferences'>
@@ -59,14 +84,15 @@ The segment will be split into two segments if the distance between path's segme
<param name="Zsafe" type="float" precision="5" min="-1000" max="1000" _gui-text="Z safe height for G00 move over blank:">5</param>
<param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
</param>
<param name="postprocessor" type="enum" _gui-text="Post-processor:">
- <item value=" ">None</item>
- <item value="parameterize();">Parameterize Gcode</item>
- <item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</item>
- <item value="round(4);">Round all values to 4 digits</item>
+ <_item value=" ">None</_item>
+ <_item value="parameterize();">Parameterize Gcode</_item>
+ <_item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</_item>
+ <_item value="round(4);">Round all values to 4 digits</_item>
+ <_item value='regex("G01 Z([0-9\.\-]+).*\(Penetrate\)", lambda match: "G00 Z%f (Fast pre-penetrate)\n%s" %(float(match.group(1))+5, match.group(0)));'>Fast pre-penetrate</_item>
</param>
<param name="postprocessor-custom" type="string" _gui-text="Additional post-processor:"></param>
@@ -88,9 +114,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -105,5 +131,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/gcodetools_check_for_updates.inx b/share/extensions/gcodetools_check_for_updates.inx
index 728f5d1e6..ef0313ecf 100644
--- a/share/extensions/gcodetools_check_for_updates.inx
+++ b/share/extensions/gcodetools_check_for_updates.inx
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Check for updates</_name>
+ <name>Check for updates</name>
<id>ru.cnc-club.filter.gcodetools_update_no_options_no_preferences</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
@@ -22,9 +23,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -39,5 +40,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/gcodetools_dxf_points.inx b/share/extensions/gcodetools_dxf_points.inx
index 7283853f9..cccd64497 100644
--- a/share/extensions/gcodetools_dxf_points.inx
+++ b/share/extensions/gcodetools_dxf_points.inx
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>DXF Points</_name>
+ <name>DXF Points</name>
<id>ru.cnc-club.filter.gcodetools_dxfpoints_no_options</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
@@ -29,14 +30,15 @@ Also you can manually select object, open XML editor (Shift+Ctrl+X) and add or r
<param name="Zsafe" type="float" precision="5" min="-1000" max="1000" _gui-text="Z safe height for G00 move over blank:">5</param>
<param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
</param>
<param name="postprocessor" type="enum" _gui-text="Post-processor:">
- <item value=" ">None</item>
- <item value="parameterize();">Parameterize Gcode</item>
- <item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</item>
- <item value="round(4);">Round all values to 4 digits</item>
+ <_item value=" ">None</_item>
+ <_item value="parameterize();">Parameterize Gcode</_item>
+ <_item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</_item>
+ <_item value="round(4);">Round all values to 4 digits</_item>
+ <_item value='regex("G01 Z([0-9\.\-]+).*\(Penetrate\)", lambda match: "G00 Z%f (Fast pre-penetrate)\n%s" %(float(match.group(1))+5, match.group(0)));'>Fast pre-penetrate</_item>
</param>
<param name="postprocessor-custom" type="string" _gui-text="Additional post-processor:"></param>
@@ -58,9 +60,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -75,5 +77,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/gcodetools_engraving.inx b/share/extensions/gcodetools_engraving.inx
index 8645faa27..e278f64bc 100644
--- a/share/extensions/gcodetools_engraving.inx
+++ b/share/extensions/gcodetools_engraving.inx
@@ -1,25 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Engraving</_name>
+ <name>Engraving</name>
<id>ru.cnc-club.filter.gcodetools_engraving</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<param name='active-tab' type="notebook">
<page name='engraving' _gui-text='Engraving'>
- <param name="engraving-sharp-angle-tollerance" type="float" precision="5" min="0" max="180" _gui-text="Sharp angle tolerance:">150</param>
- <param name="engraving-max-dist" type="float" precision="5" min="0" max="1000" _gui-text="Maximum distance for engraving:">10</param>
- <param name="engraving-newton-iterations" type="int" min="2" max="10" _gui-text="Number of sample points used to calculate distance:">4</param>
- <param name="engraving-draw-calculation-paths" type="boolean" _gui-text="Draw additional graphics to debug engraving path">false</param>
+ <param name="engraving-sharp-angle-tollerance" type="float" precision="5" min="150" max="180" _gui-text="Smooth convex corners between this value and 180 degrees:">175</param>
+ <param name="engraving-max-dist" type="float" precision="5" min="0" max="1000" _gui-text="Maximum distance for engraving (mm/inch):">10</param>
+ <param name="engraving-newton-iterations" type="int" min="2" max="10" _gui-text="Accuracy factor (2 low to 10 high):">4</param>
+ <param name="engraving-draw-calculation-paths" type="boolean" _gui-text="Draw additional graphics to see engraving path">false</param>
<_param name="help" type="description">
-This function creates path to engrave sharp angles.
-Cutter's shape function is defined by the tool. Some simple shapes:
+This function creates path to engrave letters or any shape with sharp angles.
+Cutter's depth as a function of radius is defined by the tool.
+Depth may be any Python expression. For instance:
-cone....(45 degrees)...........: w
-cone....(height/diameter=10/3).: 10/3 w
-sphere..("r" diameter).........: math.sqrt(max(0,r**2-w**2))
-ellipse.(R1=r and R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4</_param>
+cone....(45 degrees)......................: w
+cone....(height/diameter=10/3)..: 10*w/3
+sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2))
+ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4</_param>
</page>
<page name='options' _gui-text='Options'>
@@ -27,6 +29,9 @@ ellipse.(R1=r and R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4</_param>
<param name="Zoffset" type="float" precision="5" min="-100000" max="100000" _gui-text="Offset along Z axis:">0.0</param>
<param name="auto_select_paths" type="boolean" _gui-text="Select all paths if nothing is selected">true</param>
<param name="min-arc-radius" type="float" precision="5" min="-1000" max="1000" _gui-text="Minimum arc radius:">0.05</param>
+ <param name="comment-gcode" type="string" _gui-text="Comment Gcode:"></param>
+ <param name="comment-gcode-from-properties" type="boolean" _gui-text="Get additional comments from object's properties">False</param>
+
</page>
<page name='preferences' _gui-text='Preferences'>
@@ -37,14 +42,15 @@ ellipse.(R1=r and R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4</_param>
<param name="Zsafe" type="float" precision="5" min="-1000" max="1000" _gui-text="Z safe height for G00 move over blank:">5</param>
<param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
</param>
<param name="postprocessor" type="enum" _gui-text="Post-processor:">
- <item value=" ">None</item>
- <item value="parameterize();">Parameterize Gcode</item>
- <item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</item>
- <item value="round(4);">Round all values to 4 digits</item>
+ <_item value=" ">None</_item>
+ <_item value="parameterize();">Parameterize Gcode</_item>
+ <_item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</_item>
+ <_item value="round(4);">Round all values to 4 digits</_item>
+ <_item value='regex("G01 Z([0-9\.\-]+).*\(Penetrate\)", lambda match: "G00 Z%f (Fast pre-penetrate)\n%s" %(float(match.group(1))+5, match.group(0)));'>Fast pre-penetrate</_item>
</param>
<param name="postprocessor-custom" type="string" _gui-text="Additional post-processor:"></param>
@@ -66,9 +72,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -83,5 +89,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/gcodetools_graffiti.inx b/share/extensions/gcodetools_graffiti.inx
new file mode 100644
index 000000000..73235ee16
--- /dev/null
+++ b/share/extensions/gcodetools_graffiti.inx
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <name>Graffiti</name>
+ <id>ru.cnc-club.filter.gcodetools_graffiti_orientation</id>
+ <dependency type="executable" location="extensions">gcodetools.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <param name='active-tab' type="notebook">
+
+ <page name='graffiti' _gui-text='Graffiti'>
+ <param name="graffiti-max-seg-length" type="float" precision="5" min="0" max="1000" _gui-text="Maximum segment length:">10</param>
+ <param name="graffiti-min-radius" type="float" precision="5" min="0" max="1000" _gui-text="Minimal connector radius:">10</param>
+ <param name="graffiti-start-pos" type="string" _gui-text="Start position (x;y):">(0.0;0.0)</param>
+ <param name="graffiti-create-preview" type="boolean" _gui-text="Create preview">true</param>
+ <param name="graffiti-create-linearization-preview" type="boolean" _gui-text="Create linearization preview">true</param>
+ <param name="graffiti-preview-size" type="int" min="100" max="10000" _gui-text="Preview's size (px):">800</param>
+ <param name="graffiti-preview-emmit" type="int" min="100" max="10000" _gui-text="Preview's paint emmit (pts/s):">1000</param>
+ </page>
+
+ <page name='orientation' _gui-text='Orientation'>
+
+ <param name="orientation-points-count" type="optiongroup" _gui-text="Orientation type:">
+<_option value="2">2-points mode
+(move and rotate,
+maintained aspect ratio X/Y)</_option>
+<_option value="3">3-points mode
+(move, rotate and mirror,
+different X/Y scale)</_option>
+<_option value="graffiti">graffiti points</_option>
+<_option value="in-out reference point">in-out reference point</_option>
+
+ </param>
+ <param name="Zsurface" type="float" precision="5" min="-1000" max="1000" _gui-text="Z surface:">0</param>
+ <param name="Zdepth" type="float" precision="5" min="-1000" max="1000" _gui-text="Z depth:">-1</param>
+ <param name="unit" type="enum" _gui-text="Units (mm or in):">
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
+ </param>
+
+ <_param name="help" type="description">
+Orientation points are used to calculate transformation (offset,scale,mirror,rotation in XY plane) of the path.
+3-points mode only: do not put all three into one line (use 2-points mode instead).
+
+You can modify Z surface, Z depth values later using text tool (3rd coordinates).
+
+If there are no orientation points inside current layer they are taken from the upper layer.
+
+Do not ungroup orientation points! You can select them using double click to enter the group or by Ctrl+Click.
+
+Now press apply to create control points (independent set for each layer).
+ </_param>
+ </page>
+
+ <page name='options' _gui-text='Options'>
+ <param name="Zscale" type="float" precision="5" min="-100000" max="100000" _gui-text="Scale along Z axis:">1</param>
+ <param name="Zoffset" type="float" precision="5" min="-100000" max="100000" _gui-text="Offset along Z axis:">0.0</param>
+ <param name="auto_select_paths" type="boolean" _gui-text="Select all paths if nothing is selected">true</param>
+ <param name="min-arc-radius" type="float" precision="5" min="-1000" max="1000" _gui-text="Minimum arc radius:">0.05</param>
+ <param name="comment-gcode" type="string" _gui-text="Comment Gcode:"></param>
+ <param name="comment-gcode-from-properties" type="boolean" _gui-text="Get additional comments from object's properties">False</param>
+
+ </page>
+
+ <page name='preferences' _gui-text='Preferences'>
+ <param name="filename" type="string" _gui-text="File:">output.ngc</param>
+ <param name="add-numeric-suffix-to-filename" type="boolean" _gui-text="Add numeric suffix to filename">true</param>
+
+ <param name="directory" type="string" _gui-text="Directory:">/home</param>
+
+ <param name="Zsafe" type="float" precision="5" min="-1000" max="1000" _gui-text="Z safe height for G00 move over blank:">5</param>
+ <param name="unit" type="enum" _gui-text="Units (mm or in):">
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
+ </param>
+ <param name="postprocessor" type="enum" _gui-text="Post-processor:">
+ <_item value=" ">None</_item>
+ <_item value="parameterize();">Parameterize Gcode</_item>
+ <_item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</_item>
+ <_item value="round(4);">Round all values to 4 digits</_item>
+ <_item value='regex("G01 Z([0-9\.\-]+).*\(Penetrate\)", lambda match: "G00 Z%f (Fast pre-penetrate)\n%s" %(float(match.group(1))+5, match.group(0)));'>Fast pre-penetrate</_item>
+ </param>
+ <param name="postprocessor-custom" type="string" _gui-text="Additional post-processor:"></param>
+
+
+ <param name="create-log" type="boolean" _gui-text="Generate log file">false</param>
+ <param name="log-filename" type="string" _gui-text="Full path to log file:"></param>
+
+ </page>
+
+ <page name='help' _gui-text='Help'>
+ <_param name="fullhelp" type="description">
+Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.
+This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed.
+
+Tutorials, manuals and support can be found at
+English support forum:
+ http://www.cnc-club.ru/gcodetools
+
+and Russian support forum:
+ http://www.cnc-club.ru/gcodetoolsru
+
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
+
+Gcodetools ver. 1.7
+</_param>
+
+ </page>
+
+ </param>
+ <effect>
+ <effects-menu>
+ <submenu _name="Gcodetools"/>
+ </effects-menu>
+ <object-type>path</object-type>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">gcodetools.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/gcodetools_lathe.inx b/share/extensions/gcodetools_lathe.inx
index 933073649..a45896f3e 100644
--- a/share/extensions/gcodetools_lathe.inx
+++ b/share/extensions/gcodetools_lathe.inx
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Lathe</_name>
- <id>ru.cnc-club.filter.gcodetools_lathe_ptg</id>
+ <name>Lathe</name>
+ <id>ru.cnc-club.filter.gcodetools_lathe_lathe_modify_path_ptg</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<param name='active-tab' type="notebook">
@@ -11,21 +12,37 @@
<param name="lathe-fine-cut-width" type="float" precision="5" min="0" max="1000" _gui-text="Fine cut width:">1</param>
<param name="lathe-fine-cut-count" type="int" min="0" max="1000" _gui-text="Fine cut count:">1</param>
<param name="lathe-create-fine-cut-using" _gui-text="Create fine cut using:" type="optiongroup" appearance="minimal">
- <option value="Move path">Move path</option>
- <option value="Offset path">Offset path</option>
+ <_option value="Move path">Move path</_option>
+ <_option value="Offset path">Offset path</_option>
</param>
<param name="lathe-x-axis-remap" type="string" _gui-text="Lathe X axis remap:">X</param>
<param name="lathe-z-axis-remap" type="string" _gui-text="Lathe Z axis remap:">Z</param>
+ </page>
-
+ <page name='lathe_modify_path' _gui-text='Lathe modify path'>
+ <_param name="help" type="description">
+ This function modifies path so it will be able to be cut with the rectangular cutter.
+ </_param>
+ <param name="lathe-rectangular-cutter-width" type="float" precision="5" min="0" max="1000" _gui-text="Lathe width:">4</param>
</page>
+
<page name='path-to-gcode' _gui-text='Path to Gcode'>
<param name="biarc-tolerance" type='float' precision="5" _gui-text='Biarc interpolation tolerance:'>1</param>
<param name="biarc-max-split-depth" type="int" _gui-text="Maximum splitting depth:">4</param>
+ <param name="path-to-gcode-order" _gui-text="Cutting order" type="optiongroup" appearance="minimal">
+ <_option value="subpath by subpath">Subpath by subpath</_option>
+ <_option value="path by path">Path by path</_option>
+ <_option value="pass by pass">Pass by Pass</_option>
+ </param>
+
+ <param name="path-to-gcode-depth-function" type="string" _gui-text="Depth function:">d</param>
+ <param name="path-to-gcode-sort-paths" type="boolean" _gui-text="Sort paths to reduse rapid distance">True</param>
+
<_param name="help" type="description">
Biarc interpolation tolerance is the maximum distance between path and its approximation.
-The segment will be split into two segments if the distance between path's segment and it's approximation exceeds biarc interpolation tolerance.
+The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance.
+For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points.
</_param>
</page>
@@ -34,24 +51,28 @@ The segment will be split into two segments if the distance between path's segme
<param name="Zoffset" type="float" precision="5" min="-100000" max="100000" _gui-text="Offset along Z axis:">0.0</param>
<param name="auto_select_paths" type="boolean" _gui-text="Select all paths if nothing is selected">true</param>
<param name="min-arc-radius" type="float" precision="5" min="-1000" max="1000" _gui-text="Minimum arc radius:">0.05</param>
+ <param name="comment-gcode" type="string" _gui-text="Comment Gcode:"></param>
+ <param name="comment-gcode-from-properties" type="boolean" _gui-text="Get additional comments from object's properties">False</param>
+
</page>
<page name='preferences' _gui-text='Preferences'>
- <param name="filename" type="string" _gui-text="File">output.ngc</param>
+ <param name="filename" type="string" _gui-text="File:">output.ngc</param>
<param name="add-numeric-suffix-to-filename" type="boolean" _gui-text="Add numeric suffix to filename">true</param>
<param name="directory" type="string" _gui-text="Directory:">/home</param>
<param name="Zsafe" type="float" precision="5" min="-1000" max="1000" _gui-text="Z safe height for G00 move over blank:">5</param>
<param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
</param>
<param name="postprocessor" type="enum" _gui-text="Post-processor:">
- <item value=" ">None</item>
- <item value="parameterize();">Parameterize Gcode</item>
- <item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</item>
- <item value="round(4);">Round all values to 4 digits</item>
+ <_item value=" ">None</_item>
+ <_item value="parameterize();">Parameterize Gcode</_item>
+ <_item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</_item>
+ <_item value="round(4);">Round all values to 4 digits</_item>
+ <_item value='regex("G01 Z([0-9\.\-]+).*\(Penetrate\)", lambda match: "G00 Z%f (Fast pre-penetrate)\n%s" %(float(match.group(1))+5, match.group(0)));'>Fast pre-penetrate</_item>
</param>
<param name="postprocessor-custom" type="string" _gui-text="Additional post-processor:"></param>
@@ -73,9 +94,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -90,5 +111,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/gcodetools_orientation_points.inx b/share/extensions/gcodetools_orientation_points.inx
index 997b24d9b..3de8ba594 100644
--- a/share/extensions/gcodetools_orientation_points.inx
+++ b/share/extensions/gcodetools_orientation_points.inx
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Orientation points</_name>
+ <name>Orientation points</name>
<id>ru.cnc-club.filter.gcodetools_orientation_no_options_no_preferences</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
@@ -15,12 +16,15 @@ maintained aspect ratio X/Y)</_option>
<_option value="3">3-points mode
(move, rotate and mirror,
different X/Y scale)</_option>
+<_option value="graffiti">graffiti points</_option>
+<_option value="in-out reference point">in-out reference point</_option>
+
</param>
<param name="Zsurface" type="float" precision="5" min="-1000" max="1000" _gui-text="Z surface:">0</param>
<param name="Zdepth" type="float" precision="5" min="-1000" max="1000" _gui-text="Z depth:">-1</param>
<param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
</param>
<_param name="help" type="description">
@@ -49,9 +53,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -66,5 +70,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/gcodetools_path_to_gcode.inx b/share/extensions/gcodetools_path_to_gcode.inx
index 1be758370..16ac68ab8 100644
--- a/share/extensions/gcodetools_path_to_gcode.inx
+++ b/share/extensions/gcodetools_path_to_gcode.inx
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Path to Gcode</_name>
+ <name>Path to Gcode</name>
<id>ru.cnc-club.filter.gcodetools_ptg</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
@@ -9,9 +10,19 @@
<page name='path-to-gcode' _gui-text='Path to Gcode'>
<param name="biarc-tolerance" type='float' precision="5" _gui-text='Biarc interpolation tolerance:'>1</param>
<param name="biarc-max-split-depth" type="int" _gui-text="Maximum splitting depth:">4</param>
+ <param name="path-to-gcode-order" _gui-text="Cutting order" type="optiongroup" appearance="minimal">
+ <_option value="subpath by subpath">Subpath by subpath</_option>
+ <_option value="path by path">Path by path</_option>
+ <_option value="pass by pass">Pass by Pass</_option>
+ </param>
+
+ <param name="path-to-gcode-depth-function" type="string" _gui-text="Depth function:">d</param>
+ <param name="path-to-gcode-sort-paths" type="boolean" _gui-text="Sort paths to reduse rapid distance">True</param>
+
<_param name="help" type="description">
Biarc interpolation tolerance is the maximum distance between path and its approximation.
-The segment will be split into two segments if the distance between path's segment and it's approximation exceeds biarc interpolation tolerance.
+The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance.
+For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points.
</_param>
</page>
@@ -20,6 +31,9 @@ The segment will be split into two segments if the distance between path's segme
<param name="Zoffset" type="float" precision="5" min="-100000" max="100000" _gui-text="Offset along Z axis:">0.0</param>
<param name="auto_select_paths" type="boolean" _gui-text="Select all paths if nothing is selected">true</param>
<param name="min-arc-radius" type="float" precision="5" min="-1000" max="1000" _gui-text="Minimum arc radius:">0.05</param>
+ <param name="comment-gcode" type="string" _gui-text="Comment Gcode:"></param>
+ <param name="comment-gcode-from-properties" type="boolean" _gui-text="Get additional comments from object's properties">False</param>
+
</page>
<page name='preferences' _gui-text='Preferences'>
@@ -30,14 +44,15 @@ The segment will be split into two segments if the distance between path's segme
<param name="Zsafe" type="float" precision="5" min="-1000" max="1000" _gui-text="Z safe height for G00 move over blank:">5</param>
<param name="unit" type="enum" _gui-text="Units (mm or in):">
- <item value="G21 (All units in mm)">mm</item>
- <item value="G20 (All units in inches)">in</item>
+ <_item value="G21 (All units in mm)">mm</_item>
+ <_item value="G20 (All units in inches)">in</_item>
</param>
<param name="postprocessor" type="enum" _gui-text="Post-processor:">
- <item value=" ">None</item>
- <item value="parameterize();">Parameterize Gcode</item>
- <item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</item>
- <item value="round(4);">Round all values to 4 digits</item>
+ <_item value=" ">None</_item>
+ <_item value="parameterize();">Parameterize Gcode</_item>
+ <_item value="flip(y);parameterize();">Flip y axis and parameterize Gcode</_item>
+ <_item value="round(4);">Round all values to 4 digits</_item>
+ <_item value='regex("G01 Z([0-9\.\-]+).*\(Penetrate\)", lambda match: "G00 Z%f (Fast pre-penetrate)\n%s" %(float(match.group(1))+5, match.group(0)));'>Fast pre-penetrate</_item>
</param>
<param name="postprocessor-custom" type="string" _gui-text="Additional post-processor:"></param>
@@ -59,9 +74,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -76,5 +91,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/gcodetools_prepare_path_for_plasma.inx b/share/extensions/gcodetools_prepare_path_for_plasma.inx
new file mode 100644
index 000000000..c3e46c8ac
--- /dev/null
+++ b/share/extensions/gcodetools_prepare_path_for_plasma.inx
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <name>Prepare path for plasma</name>
+ <id>ru.cnc-club.filter.gcodetools_plasma-prepare-path_no_options_no_preferences</id>
+ <dependency type="executable" location="extensions">gcodetools.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <param name='active-tab' type="notebook">
+
+ <page name='plasma-prepare-path' _gui-text='Prepare path for plasma or laser cuters'>
+ <param name='in-out-path' type="boolean" _gui-text="Create in-out paths" >True</param>
+ <param name='in-out-path-len' type="float" precision="5" min="0" max="1000000" _gui-text='In-out path length:'>10</param>
+ <param name='in-out-path-point-max-dist' type="float" precision="5" min="0" max="1000000" _gui-text='In-out path max distance to reference point:'>10</param>
+ <param name="in-out-path-type" _gui-text="In-out path type:" type="optiongroup" appearance="minimal">
+ <_option value="Round">Round</_option>
+ <_option value="Perpendicular">Perpendicular</_option>
+ <_option value="Tangent">Tangent</_option>
+ </param>
+ <param name='in-out-path-radius' type="float" precision="5" min="0" max="1000000" _gui-text='In-out path radius for round path:'>10</param>
+ <param name='in-out-path-replace-original-path' type="boolean" _gui-text="Replace original path" >False</param>
+ <param name='in-out-path-do-not-add-reference-point' type="boolean" _gui-text="Do not add in-out reference points" >False</param>
+
+ <_param name="help" type="description">-------------------------------------------------</_param>
+ <param name='plasma-prepare-corners' type="boolean" _gui-text="Prepare corners" >True</param>
+ <param name='plasma-prepare-corners-distance' type="float" precision="5" min="0" max="1000000" _gui-text='Stepout distance for corners:'>10</param>
+ <param name='plasma-prepare-corners-tolerance' type="float" precision="5" min="0" max="180" _gui-text='Maximum angle for corner (0-180 deg):'>140</param>
+
+
+
+ </page>
+
+ <page name='help' _gui-text='Help'>
+ <_param name="fullhelp" type="description">
+Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.
+This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed.
+
+Tutorials, manuals and support can be found at
+English support forum:
+ http://www.cnc-club.ru/gcodetools
+
+and Russian support forum:
+ http://www.cnc-club.ru/gcodetoolsru
+
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
+
+Gcodetools ver. 1.7
+</_param>
+
+ </page>
+
+ </param>
+ <effect>
+ <effects-menu>
+ <submenu _name="Gcodetools"/>
+ </effects-menu>
+ <object-type>path</object-type>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">gcodetools.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/gcodetools_tools_library.inx b/share/extensions/gcodetools_tools_library.inx
index 4d15dc52c..aefd4b896 100644
--- a/share/extensions/gcodetools_tools_library.inx
+++ b/share/extensions/gcodetools_tools_library.inx
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Tools library</_name>
+ <name>Tools library</name>
<id>ru.cnc-club.filter.gcodetools_tools_library_no_options_no_preferences</id>
<dependency type="executable" location="extensions">gcodetools.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
@@ -15,6 +16,8 @@
<_option value='plasma cutter'>plasma</_option>
<_option value='tangent knife'>tangent knife</_option>
<_option value='lathe cutter'>lathe cutter</_option>
+<_option value='graffiti'>graffiti</_option>
+
<_option value='check'>Just check tools</_option>
@@ -41,9 +44,9 @@ English support forum:
and Russian support forum:
http://www.cnc-club.ru/gcodetoolsru
-Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas.
+Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor.
-Gcodetools ver. 1.6.01
+Gcodetools ver. 1.7
</_param>
</page>
@@ -58,5 +61,4 @@ Gcodetools ver. 1.6.01
<script>
<command reldir="extensions" interpreter="python">gcodetools.py</command>
</script>
-
</inkscape-extension>
diff --git a/share/extensions/ink2canvas.inx b/share/extensions/ink2canvas.inx
new file mode 100644
index 000000000..c76c6a946
--- /dev/null
+++ b/share/extensions/ink2canvas.inx
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <_name>Convert to html5 canvas</_name>
+ <id>org.inkscape.output.html5canvas</id>
+ <dependency type="executable" location="extensions">ink2canvas.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <output>
+ <extension>.html</extension>
+ <mimetype>text/html</mimetype>
+ <_filetypename>HTML 5 canvas (*.html)</_filetypename>
+ <_filetypetooltip>HTML 5 canvas code</_filetypetooltip>
+ </output>
+ <script>
+ <command reldir="extensions" interpreter="python">ink2canvas.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/ink2canvas.py b/share/extensions/ink2canvas.py
new file mode 100755
index 000000000..7d2ee6a7f
--- /dev/null
+++ b/share/extensions/ink2canvas.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2011 Karlisson Bezerra <contact@hacktoon.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import inkex
+from ink2canvas.canvas import Canvas
+import ink2canvas.svg as svg
+
+log = inkex.debug #alias to debug method
+
+
+class Ink2Canvas(inkex.Effect):
+ def __init__(self):
+ inkex.Effect.__init__(self)
+ self.canvas = None
+
+ def output(self):
+ import sys
+ sys.stdout.write(self.canvas.output())
+
+ def get_tag_name(self, node):
+ # remove namespace part from "{http://www.w3.org/2000/svg}elem"
+ return node.tag.split("}")[1]
+
+ def get_gradient_defs(self, elem):
+ url_id = elem.get_gradient_href()
+ # get the gradient element
+ gradient = self.xpathSingle("//*[@id='%s']" % url_id)
+ # get the color stops
+ url_stops = gradient.get(inkex.addNS("href", "xlink"))
+ gstops = self.xpathSingle("//svg:linearGradient[@id='%s']" % url_stops[1:])
+ colors = []
+ for stop in gstops:
+ colors.append(stop.get("style"))
+ if gradient.get("r"):
+ return svg.RadialGradientDef(gradient, colors)
+ else:
+ return svg.LinearGradientDef(gradient, colors)
+
+ def get_clip_defs(self, elem):
+ if elem.has_clip():
+ pass
+ return
+
+ def walk_tree(self, root):
+ for node in root:
+ tag = self.get_tag_name(node)
+ class_name = tag.capitalize()
+ if not hasattr(svg, class_name):
+ continue
+ gradient = None
+ clip = None
+ # creates a instance of 'elem'
+ # similar to 'elem = Rect(tag, node, ctx)'
+ elem = getattr(svg, class_name)(tag, node, self.canvas)
+ if elem.has_gradient():
+ gradient = self.get_gradient_defs(elem)
+ elem.start(gradient)
+ elem.draw()
+ self.walk_tree(node)
+ elem.end()
+
+ def effect(self):
+ """Applies the effect"""
+ svg_root = self.document.getroot()
+ width = inkex.unittouu(svg_root.get("width"))
+ height = inkex.unittouu(svg_root.get("height"))
+ self.canvas = Canvas(width, height)
+ self.walk_tree(svg_root)
+
+
+if __name__ == "__main__":
+ ink = Ink2Canvas()
+ ink.affect()
diff --git a/share/extensions/ink2canvas/Makefile.am b/share/extensions/ink2canvas/Makefile.am
new file mode 100644
index 000000000..ab6e7661d
--- /dev/null
+++ b/share/extensions/ink2canvas/Makefile.am
@@ -0,0 +1,9 @@
+
+ink2canvasdir = $(datadir)/inkscape/extensions/ink2canvas
+
+ink2canvas_DATA = \
+ __init__.py \
+ canvas.py \
+ svg.py
+
+EXTRA_DIST = $(ink2canvas_DATA)
diff --git a/share/extensions/ink2canvas/__init__.py b/share/extensions/ink2canvas/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/share/extensions/ink2canvas/__init__.py
diff --git a/share/extensions/ink2canvas/canvas.py b/share/extensions/ink2canvas/canvas.py
new file mode 100644
index 000000000..80ec4fd43
--- /dev/null
+++ b/share/extensions/ink2canvas/canvas.py
@@ -0,0 +1,194 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2011 Karlisson Bezerra <contact@hacktoon.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import inkex
+import simplestyle
+
+class Canvas:
+ """Canvas API helper class"""
+
+ def __init__(self, width, height, context = "ctx"):
+ self.obj = context
+ self.code = [] #stores the code
+ self.style = {}
+ self.styleCache = {} #stores the previous style applied
+ self.width = width
+ self.height = height
+
+ def write(self, text):
+ self.code.append("\t" + text.replace("ctx", self.obj) + "\n")
+
+ def output(self):
+ from textwrap import dedent
+ html = """
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Inkscape Output</title>
+ </head>
+ <body>
+ <canvas id='canvas' width='%d' height='%d'></canvas>
+ <script>
+ var %s = document.getElementById("canvas").getContext("2d");
+ %s
+ </script>
+ </body>
+ </html>
+ """
+ return dedent(html) % (self.width, self.height, self.obj, "".join(self.code))
+
+ def equalStyle(self, style, key):
+ """Checks if the last style used is the same or there's no style yet"""
+ if key in self.styleCache:
+ return True
+ if key not in style:
+ return True
+ return style[key] == self.styleCache[key]
+
+ def beginPath(self):
+ self.write("ctx.beginPath();")
+
+ def createLinearGradient(self, href, x1, y1, x2, y2):
+ data = (href, x1, y1, x2, y2)
+ self.write("var %s = \
+ ctx.createLinearGradient(%f,%f,%f,%f);" % data)
+
+ def createRadialGradient(self, href, cx1, cy1, rx, cx2, cy2, ry):
+ data = (href, cx1, cy1, rx, cx2, cy2, ry)
+ self.write("var %s = ctx.createRadialGradient\
+ (%f,%f,%f,%f,%f,%f);" % data)
+
+ def addColorStop(self, href, pos, color):
+ self.write("%s.addColorStop(%f, %s);" % (href, pos, color))
+
+ def getColor(self, rgb, a):
+ r, g, b = simplestyle.parseColor(rgb)
+ a = float(a)
+ if a < 1:
+ return "'rgba(%d, %d, %d, %.1f)'" % (r, g, b, a)
+ else:
+ return "'rgb(%d, %d, %d)'" % (r, g, b)
+
+ def setGradient(self, href):
+ """
+ for stop in gstops:
+ style = simplestyle.parseStyle(stop.get("style"))
+ stop_color = style["stop-color"]
+ opacity = style["stop-opacity"]
+ color = self.getColor(stop_color, opacity)
+ pos = float(stop.get("offset"))
+ self.addColorStop(href, pos, color)
+ """
+ return None #href
+
+ def setOpacity(self, value):
+ self.write("ctx.globalAlpha = %.1f;" % float(value))
+
+ def setFill(self, value):
+ try:
+ alpha = self.style["fill-opacity"]
+ except:
+ alpha = 1
+ if not value.startswith("url("):
+ fill = self.getColor(value, alpha)
+ self.write("ctx.fillStyle = %s;" % fill)
+
+ def setStroke(self, value):
+ try:
+ alpha = self.style["stroke-opacity"]
+ except:
+ alpha = 1
+ self.write("ctx.strokeStyle = %s;" % self.getColor(value, alpha))
+
+ def setStrokeWidth(self, value):
+ self.write("ctx.lineWidth = %f;" % inkex.unittouu(value))
+
+ def setStrokeLinecap(self, value):
+ self.write("ctx.lineCap = '%s';" % value)
+
+ def setStrokeLinejoin(self, value):
+ self.write("ctx.lineJoin = '%s';" % value)
+
+ def setStrokeMiterlimit(self, value):
+ self.write("ctx.miterLimit = %s;" % value)
+
+ def setFont(self, value):
+ self.write("ctx.font = \"%s\";" % value)
+
+ def moveTo(self, x, y):
+ self.write("ctx.moveTo(%f, %f);" % (x, y))
+
+ def lineTo(self, x, y):
+ self.write("ctx.lineTo(%f, %f);" % (x, y))
+
+ def quadraticCurveTo(self, cpx, cpy, x, y):
+ data = (cpx, cpy, x, y)
+ self.write("ctx.quadraticCurveTo(%f, %f, %f, %f);" % data)
+
+ def bezierCurveTo(self, x1, y1, x2, y2, x, y):
+ data = (x1, y1, x2, y2, x, y)
+ self.write("ctx.bezierCurveTo(%f, %f, %f, %f, %f, %f);" % data)
+
+ def rect(self, x, y, w, h, rx = 0, ry = 0):
+ if rx or ry:
+ #rounded rectangle, starts top-left anticlockwise
+ self.moveTo(x, y + ry)
+ self.lineTo(x, y+h-ry)
+ self.quadraticCurveTo(x, y+h, x+rx, y+h)
+ self.lineTo(x+w-rx, y+h)
+ self.quadraticCurveTo(x+w, y+h, x+w, y+h-ry)
+ self.lineTo(x+w, y+ry)
+ self.quadraticCurveTo(x+w, y, x+w-rx, y)
+ self.lineTo(x+rx, y)
+ self.quadraticCurveTo(x, y, x, y+ry)
+ else:
+ self.write("ctx.rect(%f, %f, %f, %f);" % (x, y, w, h))
+
+ def arc(self, x, y, r, a1, a2, flag):
+ data = (x, y, r, a1, a2, flag)
+ self.write("ctx.arc(%f, %f, %f, %f, %.8f, %d);" % data)
+
+ def fillText(self, text, x, y):
+ self.write("ctx.fillText(\"%s\", %f, %f);" % (text, x, y))
+
+ def translate(self, cx, cy):
+ self.write("ctx.translate(%f, %f);" % (cx, cy))
+
+ def rotate(self, angle):
+ self.write("ctx.rotate(%f);" % angle)
+
+ def scale(self, rx, ry):
+ self.write("ctx.scale(%f, %f);" % (rx, ry))
+
+ def transform(self, m11, m12, m21, m22, dx, dy):
+ data = (m11, m12, m21, m22, dx, dy)
+ self.write("ctx.transform(%f, %f, %f, %f, %f, %f);" % data)
+
+ def save(self):
+ self.write("ctx.save();")
+
+ def restore(self):
+ self.write("ctx.restore();")
+
+ def closePath(self):
+ if "fill" in self.style and self.style["fill"] != "none":
+ self.write("ctx.fill();")
+ if "stroke" in self.style and self.style["stroke"] != "none":
+ self.write("ctx.stroke();")
+ #self.write("%s.closePath();" % self.obj)
diff --git a/share/extensions/ink2canvas/svg.py b/share/extensions/ink2canvas/svg.py
new file mode 100644
index 000000000..7f3769e3c
--- /dev/null
+++ b/share/extensions/ink2canvas/svg.py
@@ -0,0 +1,373 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2011 Karlisson Bezerra <contact@hacktoon.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import inkex
+import simplestyle
+from simplepath import parsePath
+from simpletransform import parseTransform
+
+class Element:
+ def attr(self, val, ns=""):
+ if ns:
+ val = inkex.addNS(val, ns)
+ try:
+ attr = float(self.node.get(val))
+ except:
+ attr = self.node.get(val)
+ return attr
+
+
+class GradientDef(Element):
+ def __init__(self, node, stops):
+ self.node = node
+ self.stops = stops
+
+
+class LinearGradientDef(GradientDef):
+ def get_data(self):
+ x1 = self.attr("x1")
+ y1 = self.attr("y1")
+ x2 = self.attr("x2")
+ y2 = self.attr("y2")
+ #self.createLinearGradient(href, x1, y1, x2, y2)
+
+ def draw(self):
+ pass
+
+
+class RadialGradientDef(GradientDef):
+ def get_data(self):
+ cx = self.attr("cx")
+ cy = self.attr("cy")
+ r = self.attr("r")
+ #self.createRadialGradient(href, cx, cy, r, cx, cy, r)
+
+ def draw(self):
+ pass
+
+class AbstractShape(Element):
+ def __init__(self, command, node, ctx):
+ self.node = node
+ self.command = command
+ self.ctx = ctx
+
+ def get_data(self):
+ return
+
+ def get_style(self):
+ style = simplestyle.parseStyle(self.attr("style"))
+ #remove any trailing space in dict keys/values
+ style = dict([(str.strip(k), str.strip(v)) for k,v in style.items()])
+ return style
+
+ def set_style(self, style):
+ """Translates style properties names into method calls"""
+ self.ctx.style = style
+ for key in style:
+ tmp_list = map(str.capitalize, key.split("-"))
+ method = "set" + "".join(tmp_list)
+ if hasattr(self.ctx, method) and style[key] != "none":
+ getattr(self.ctx, method)(style[key])
+ #saves style to compare in next iteration
+ self.ctx.style_cache = style
+
+ def has_transform(self):
+ return bool(self.attr("transform"))
+
+ def get_transform(self):
+ data = self.node.get("transform")
+ if not data:
+ return
+ matrix = parseTransform(data)
+ m11, m21, dx = matrix[0]
+ m12, m22, dy = matrix[1]
+ return m11, m12, m21, m22, dx, dy
+
+ def has_gradient(self):
+ style = self.get_style()
+ if "fill" in style:
+ fill = style["fill"]
+ return fill.startswith("url(#linear") or \
+ fill.startswith("url(#radial")
+ return False
+
+ def get_gradient_href(self):
+ style = self.get_style()
+ if "fill" in style:
+ return style["fill"][5:-1]
+ return
+
+ def has_clip(self):
+ return bool(self.attr("clip-path"))
+
+ def start(self, gradient):
+ self.gradient = gradient
+ self.ctx.write("\n// #%s" % self.attr("id"))
+ if self.has_transform() or self.has_clip():
+ self.ctx.save()
+
+ def draw(self):
+ data = self.get_data()
+ style = self.get_style()
+ self.ctx.beginPath()
+ if self.has_transform():
+ trans_matrix = self.get_transform()
+ self.ctx.transform(*trans_matrix) # unpacks argument list
+ if self.has_gradient():
+ self.gradient.draw()
+ self.set_style(style)
+ # unpacks "data" in parameters to given method
+ getattr(self.ctx, self.command)(*data)
+ self.ctx.closePath()
+
+ def end(self):
+ if self.has_transform() or self.has_clip():
+ self.ctx.restore()
+
+
+class G(AbstractShape):
+ def draw(self):
+ #get layer label, if exists
+ gtype = self.attr("groupmode", "inkscape") or "group"
+ if self.has_transform():
+ trans_matrix = self.get_transform()
+ self.ctx.transform(*trans_matrix)
+
+
+class Rect(AbstractShape):
+ def get_data(self):
+ x = self.attr("x")
+ y = self.attr("y")
+ w = self.attr("width")
+ h = self.attr("height")
+ rx = self.attr("rx") or 0
+ ry = self.attr("ry") or 0
+ return x, y, w, h, rx, ry
+
+
+class Circle(AbstractShape):
+ def __init__(self, command, node, ctx):
+ AbstractShape.__init__(self, command, node, ctx)
+ self.command = "arc"
+
+ def get_data(self):
+ import math
+ cx = self.attr("cx")
+ cy = self.attr("cy")
+ r = self.attr("r")
+ return cx, cy, r, 0, math.pi * 2, True
+
+
+class Ellipse(AbstractShape):
+ def get_data(self):
+ cx = self.attr("cx")
+ cy = self.attr("cy")
+ rx = self.attr("rx")
+ ry = self.attr("ry")
+ return cx, cy, rx, ry
+
+ def draw(self):
+ import math
+ cx, cy, rx, ry = self.get_data()
+ style = self.get_style()
+ self.ctx.beginPath()
+ if self.has_transform():
+ trans_matrix = self.get_transform()
+ self.ctx.transform(*trans_matrix) # unpacks argument list
+ self.set_style(style)
+
+ KAPPA = 4 * ((math.sqrt(2) - 1) / 3)
+ self.ctx.moveTo(cx, cy - ry)
+ self.ctx.bezierCurveTo(cx + (KAPPA * rx), cy - ry, cx + rx, cy - (KAPPA * ry), cx + rx, cy)
+ self.ctx.bezierCurveTo(cx + rx, cy + (KAPPA * ry), cx + (KAPPA * rx), cy + ry, cx, cy + ry)
+ self.ctx.bezierCurveTo(cx - (KAPPA * rx), cy + ry, cx - rx, cy + (KAPPA * ry), cx - rx, cy)
+ self.ctx.bezierCurveTo(cx - rx, cy - (KAPPA * ry), cx - (KAPPA * rx), cy - ry, cx, cy - ry)
+ self.ctx.closePath()
+
+
+class Path(AbstractShape):
+ def get_data(self):
+ #path data is already converted to float
+ return parsePath(self.attr("d"))
+
+ def pathMoveTo(self, data):
+ self.ctx.moveTo(data[0], data[1])
+ self.currentPosition = data[0], data[1]
+
+ def pathLineTo(self, data):
+ self.ctx.lineTo(data[0], data[1])
+ self.currentPosition = data[0], data[1]
+
+ def pathCurveTo(self, data):
+ x1, y1, x2, y2 = data[0], data[1], data[2], data[3]
+ x, y = data[4], data[5]
+ self.ctx.bezierCurveTo(x1, y1, x2, y2, x, y)
+ self.currentPosition = x, y
+
+ def pathArcTo(self, data):
+ #http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
+ # code adapted from http://code.google.com/p/canvg/
+ import math
+ x1 = self.currentPosition[0]
+ y1 = self.currentPosition[1]
+ x2 = data[5]
+ y2 = data[6]
+ rx = data[0]
+ ry = data[1]
+ angle = data[2] * (math.pi / 180.0)
+ arcflag = data[3]
+ sweepflag = data[4]
+
+ #compute (x1', y1')
+ _x1 = math.cos(angle) * (x1 - x2) / 2.0 + math.sin(angle) * (y1 - y2) / 2.0
+ _y1 = -math.sin(angle) * (x1 - x2) / 2.0 + math.cos(angle) * (y1 - y2) / 2.0
+
+ #adjust radii
+ l = _x1**2 / rx**2 + _y1**2 / ry**2
+ if l > 1:
+ rx *= math.sqrt(l)
+ ry *= math.sqrt(l)
+
+ #compute (cx', cy')
+ numr = (rx**2 * ry**2) - (rx**2 * _y1**2) - (ry**2 * _x1**2)
+ demr = (rx**2 * _y1**2) + (ry**2 * _x1**2)
+ sig = -1 if arcflag == sweepflag else 1
+ sig = sig * math.sqrt(numr / demr)
+ if math.isnan(sig): sig = 0;
+ _cx = sig * rx * _y1 / ry
+ _cy = sig * -ry * _x1 / rx
+
+ #compute (cx, cy) from (cx', cy')
+ cx = (x1 + x2) / 2.0 + math.cos(angle) * _cx - math.sin(angle) * _cy
+ cy = (y1 + y2) / 2.0 + math.sin(angle) * _cx + math.cos(angle) * _cy
+
+ #compute startAngle & endAngle
+ #vector magnitude
+ m = lambda v: math.sqrt(v[0]**2 + v[1]**2)
+ #ratio between two vectors
+ r = lambda u, v: (u[0] * v[0] + u[1] * v[1]) / (m(u) * m(v))
+ #angle between two vectors
+ a = lambda u, v: (-1 if u[0]*v[1] < u[1]*v[0] else 1) * math.acos(r(u,v))
+ #initial angle
+ a1 = a([1,0], [(_x1 - _cx) / rx, (_y1 - _cy)/ry])
+ #angle delta
+ u = [(_x1 - _cx) / rx, (_y1 - _cy) / ry]
+ v = [(-_x1 - _cx) / rx, (-_y1 - _cy) / ry]
+ ad = a(u, v)
+ if r(u,v) <= -1: ad = math.pi
+ if r(u,v) >= 1: ad = 0
+
+ if sweepflag == 0 and ad > 0: ad = ad - 2 * math.pi;
+ if sweepflag == 1 and ad < 0: ad = ad + 2 * math.pi;
+
+ r = rx if rx > ry else ry
+ sx = 1 if rx > ry else rx / ry
+ sy = ry / rx if rx > ry else 1
+
+ self.ctx.translate(cx, cy)
+ self.ctx.rotate(angle)
+ self.ctx.scale(sx, sy)
+ self.ctx.arc(0, 0, r, a1, a1 + ad, 1 - sweepflag)
+ self.ctx.scale(1/sx, 1/sy)
+ self.ctx.rotate(-angle)
+ self.ctx.translate(-cx, -cy)
+ self.currentPosition = x2, y2
+
+ def draw(self):
+ path = self.get_data()
+ style = self.get_style()
+ """Gets the node type and calls the given method"""
+ self.ctx.beginPath()
+ if self.has_transform():
+ trans_matrix = self.get_transform()
+ self.ctx.transform(*trans_matrix) # unpacks argument list
+ self.set_style(style)
+
+ """Draws path commands"""
+ path_command = {"M": self.pathMoveTo,
+ "L": self.pathLineTo,
+ "C": self.pathCurveTo,
+ "A": self.pathArcTo}
+ for pt in path:
+ comm, data = pt
+ if comm in path_command:
+ path_command[comm](data)
+
+ self.ctx.closePath()
+
+
+class Line(Path):
+ def get_data(self):
+ x1 = self.attr("x1")
+ y1 = self.attr("y1")
+ x2 = self.attr("x2")
+ y2 = self.attr("y2")
+ return (("M", (x1, y1)), ("L", (x2, y2)))
+
+
+class Polygon(Path):
+ def get_data(self):
+ points = self.attr("points").strip().split(" ")
+ points = map(lambda x: x.split(","), points)
+ comm = []
+ for pt in points: # creating path command similar
+ pt = map(float, pt)
+ comm.append(["L", pt])
+ comm[0][0] = "M" # first command must be a 'M' => moveTo
+ return comm
+
+
+class Polyline(Polygon):
+ pass
+
+
+class Text(AbstractShape):
+ def text_helper(self, tspan):
+ if not len(tspan):
+ return unicode(tspan.text)
+ for ts in tspan:
+ return ts.text + self.text_helper(ts) + ts.tail
+
+ def set_text_style(self, style):
+ keys = ("font-style", "font-weight", "font-size", "font-family")
+ text = []
+ for key in keys:
+ if key in style:
+ text.append(style[key])
+ self.ctx.setFont(" ".join(text))
+
+ def get_data(self):
+ x = self.attr("x")
+ y = self.attr("y")
+ return x, y
+
+ def draw(self):
+ x, y = self.get_data()
+ style = self.get_style()
+ if self.has_transform():
+ trans_matrix = self.get_transform()
+ self.ctx.transform(*trans_matrix) # unpacks argument list
+ self.set_style(style)
+ self.set_text_style(style)
+
+ for tspan in self.node:
+ text = self.text_helper(tspan)
+ _x = float(tspan.get("x"))
+ _y = float(tspan.get("y"))
+ self.ctx.fillText(text, _x, _y)
diff --git a/share/extensions/interp.py b/share/extensions/interp.py
index 8ca7f6aeb..9e10f30d8 100755
--- a/share/extensions/interp.py
+++ b/share/extensions/interp.py
@@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
'''
-import inkex, cubicsuperpath, simplestyle, copy, math, bezmisc
+import inkex, cubicsuperpath, simplestyle, copy, math, bezmisc, simpletransform
def numsegs(csp):
return sum([len(p)-1 for p in csp])
@@ -125,6 +125,9 @@ class Interp(inkex.Effect):
if node.tag ==inkex.addNS('path','svg'):
paths[id] = cubicsuperpath.parsePath(node.get('d'))
styles[id] = simplestyle.parseStyle(node.get('style'))
+ trans = node.get('transform')
+ if trans:
+ simpletransform.applyTransformToPath(simpletransform.parseTransform(trans), paths[id])
else:
self.options.ids.remove(id)
diff --git a/share/extensions/measure.py b/share/extensions/measure.py
index 147027fb6..e1f8eab1d 100644
--- a/share/extensions/measure.py
+++ b/share/extensions/measure.py
@@ -30,7 +30,7 @@ TODO:
2. check direction >90 or <-90 Degrees
3. rotate by 180 degrees around text center
'''
-import inkex, simplestyle, simplepath, sys, cubicsuperpath, bezmisc, locale
+import inkex, simplestyle, simplepath, simpletransform, sys, cubicsuperpath, bezmisc, locale
# Set current system locale
locale.setlocale(locale.LC_ALL, '')
@@ -73,23 +73,16 @@ def csplength(csp):
return lengths, total
def csparea(csp):
area = 0.0
- n0 = 0.0
- x0 = 0.0
- y0 = 0.0
for sp in csp:
for i in range(len(sp)): # calculate polygon area
area += 0.5*sp[i-1][1][0]*(sp[i][1][1] - sp[i-2][1][1])
- if abs(sp[i-1][1][0]-sp[i][1][0]) > 0.001 or abs(sp[i-1][1][1]-sp[i][1][1]) > 0.001:
- n0 += 1.0
- x0 += sp[i][1][0]
- y0 += sp[i][1][1]
for i in range(1, len(sp)): # add contribution from cubic Bezier
bezarea = ( 0.0*sp[i-1][1][1] + 2.0*sp[i-1][2][1] + 1.0*sp[i][0][1] - 3.0*sp[i][1][1])*sp[i-1][1][0]
bezarea += (-2.0*sp[i-1][1][1] + 0.0*sp[i-1][2][1] + 1.0*sp[i][0][1] + 1.0*sp[i][1][1])*sp[i-1][2][0]
bezarea += (-1.0*sp[i-1][1][1] - 1.0*sp[i-1][2][1] + 0.0*sp[i][0][1] + 2.0*sp[i][1][1])*sp[i][0][0]
bezarea += ( 3.0*sp[i-1][1][1] - 1.0*sp[i-1][2][1] - 2.0*sp[i][0][1] + 0.0*sp[i][1][1])*sp[i][1][0]
area += 0.15*bezarea
- return abs(area), x0/n0, y0/n0
+ return abs(area)
class Length(inkex.Effect):
def __init__(self):
@@ -134,12 +127,20 @@ class Length(inkex.Effect):
def effect(self):
# get number of digits
prec = int(self.options.precision)
+ factor = 1.0
+ doc = self.document.getroot()
+ if doc.get('viewBox'):
+ [viewx, viewy, vieww, viewh] = doc.get('viewBox').split(' ')
+ factor = float(doc.get('width'))/float(vieww)
+ if float(doc.get('height'))/float(viewh) < factor:
+ factor = float(doc.get('height'))/float(viewh)
+ self.options.fontsize /= factor
# loop over all selected paths
for id, node in self.selected.iteritems():
if node.tag == inkex.addNS('path','svg'):
self.group = inkex.etree.SubElement(node.getparent(),inkex.addNS('text','svg'))
- t = node.get('transform')
+ # t = node.get('transform')
# Removed to fix LP #308183
# (Measure Path text shifted when used with a copied object)
#if t:
@@ -147,31 +148,30 @@ class Length(inkex.Effect):
a =[]
+ mat = simpletransform.composeParents(node, [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
p = cubicsuperpath.parsePath(node.get('d'))
- num = 1
- factor = 1.0/inkex.unittouu('1'+self.options.unit)
+ simpletransform.applyTransformToPath(mat, p)
+ factor = factor/inkex.unittouu('1'+self.options.unit)
if self.options.type == "length":
slengths, stotal = csplength(p)
else:
- stotal,x0,y0 = csparea(p)
- stotal *= factor*self.options.scale
+ stotal = csparea(p)*factor*self.options.scale
# Format the length as string
lenstr = locale.format("%(len)25."+str(prec)+"f",{'len':round(stotal*factor*self.options.scale,prec)}).strip()
if self.options.type == "length":
- self.addTextOnPath(self.group,0, 0,lenstr+' '+self.options.unit, id, self.options.offset)
+ self.addTextOnPath(self.group, 0, 0, lenstr+' '+self.options.unit, id, 'start', '50%', self.options.offset)
else:
- self.addTextWithTspan(self.group,x0,y0,lenstr+' '+self.options.unit+'^2', id, self.options.offset)
+ self.addTextOnPath(self.group, 0, 0, lenstr+' '+self.options.unit+'^2', id, 'start', '0%', self.options.offset)
-
- def addTextOnPath(self,node,x,y,text, id,dy=0):
+ def addTextOnPath(self, node, x, y, text, id, anchor, startOffset, dy = 0):
new = inkex.etree.SubElement(node,inkex.addNS('textPath','svg'))
s = {'text-align': 'center', 'vertical-align': 'bottom',
- 'text-anchor': 'middle', 'font-size': str(self.options.fontsize),
+ 'text-anchor': anchor, 'font-size': str(self.options.fontsize),
'fill-opacity': '1.0', 'stroke': 'none',
'font-weight': 'normal', 'font-style': 'normal', 'fill': '#000000'}
new.set('style', simplestyle.formatStyle(s))
new.set(inkex.addNS('href','xlink'), '#'+id)
- new.set('startOffset', "50%")
+ new.set('startOffset', startOffset)
new.set('dy', str(dy)) # dubious merit
#new.append(tp)
new.text = str(text)
@@ -179,20 +179,6 @@ class Length(inkex.Effect):
node.set('x', str(x))
node.set('y', str(y))
- def addTextWithTspan(self,node,x,y,text,id,dy=0):
- new = inkex.etree.SubElement(node,inkex.addNS('tspan','svg'), {inkex.addNS('role','sodipodi'): 'line'})
- s = {'text-align': 'center', 'vertical-align': 'bottom',
- 'text-anchor': 'middle', 'font-size': str(self.options.fontsize),
- 'fill-opacity': '1.0', 'stroke': 'none',
- 'font-weight': 'normal', 'font-style': 'normal', 'fill': '#000000'}
- new.set('style', simplestyle.formatStyle(s))
- new.set(inkex.addNS('href','xlink'), '#'+id)
- new.set('startOffset', "50%")
- new.set('dy', str(dy))
- new.text = str(text)
- node.set('x', str(x))
- node.set('y', str(y))
-
if __name__ == '__main__':
e = Length()
e.affect()
diff --git a/share/extensions/perspective.py b/share/extensions/perspective.py
index 4caaa68a1..733fb121a 100755
--- a/share/extensions/perspective.py
+++ b/share/extensions/perspective.py
@@ -18,7 +18,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Perspective approach & math by Dmitry Platonov, shadowjack@mail.ru, 2006
"""
-import sys, inkex, os, re, simplepath, cubicsuperpath
+import sys, inkex, os, re, simplepath, cubicsuperpath, simpletransform, voronoi2svg
import gettext
_ = gettext.gettext
from ffgeom import *
@@ -69,10 +69,12 @@ class Project(inkex.Effect):
exit()
if obj.tag == inkex.addNS('path','svg') or obj.tag == inkex.addNS('g','svg'):
if envelope.tag == inkex.addNS('path','svg'):
+ mat = simpletransform.composeParents(envelope, [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
path = cubicsuperpath.parsePath(envelope.get('d'))
if len(path) < 1 or len(path[0]) < 4:
inkex.errormsg(_("This extension requires that the second selected path be four nodes long."))
exit()
+ simpletransform.applyTransformToPath(mat, path)
dp = zeros((4,2), dtype=float64)
for i in range(4):
dp[i][0] = path[0][i][1][0]
@@ -127,7 +129,6 @@ class Project(inkex.Effect):
if obj.tag == inkex.addNS("g",'svg'):
self.process_group(obj,projmatrix)
-
def process_group(self,group,m):
for node in group:
if node.tag == inkex.addNS('path','svg'):
@@ -135,19 +136,20 @@ class Project(inkex.Effect):
if node.tag == inkex.addNS('g','svg'):
self.process_group(node,m)
-
def process_path(self,path,m):
+ mat = simpletransform.composeParents(path, [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
d = path.get('d')
p = cubicsuperpath.parsePath(d)
+ simpletransform.applyTransformToPath(mat, p)
for subs in p:
for csp in subs:
csp[0] = self.project_point(csp[0],m)
csp[1] = self.project_point(csp[1],m)
csp[2] = self.project_point(csp[2],m)
+ mat = voronoi2svg.Voronoi2svg().invertTransform(mat)
+ simpletransform.applyTransformToPath(mat, p)
path.set('d',cubicsuperpath.formatPath(p))
-
-
def project_point(self,p,m):
x = p[0]
y = p[1]
diff --git a/share/extensions/simpletransform.py b/share/extensions/simpletransform.py
index 8f8a811dc..5bb30070d 100644
--- a/share/extensions/simpletransform.py
+++ b/share/extensions/simpletransform.py
@@ -89,6 +89,14 @@ def composeTransform(M1,M2):
v2 = M1[1][0]*M2[0][2] + M1[1][1]*M2[1][2] + M1[1][2]
return [[a11,a12,v1],[a21,a22,v2]]
+def composeParents(node, mat):
+ trans = node.get('transform')
+ if trans:
+ mat = composeTransform(parseTransform(trans), mat)
+ if node.getparent().tag == inkex.addNS('g','svg'):
+ mat = composeParents(node.getparent(), mat)
+ return mat
+
def applyTransformToNode(mat,node):
m=parseTransform(node.get("transform"))
newtransf=formatTransform(composeTransform(mat,m))
diff --git a/share/extensions/summersnight.py b/share/extensions/summersnight.py
index 7f4ffb1b0..d3521d285 100755
--- a/share/extensions/summersnight.py
+++ b/share/extensions/summersnight.py
@@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
-import inkex, os, simplepath, cubicsuperpath
+import inkex, os, simplepath, cubicsuperpath, simpletransform, voronoi2svg
from ffgeom import *
import gettext
_ = gettext.gettext
@@ -45,10 +45,12 @@ class Project(inkex.Effect):
if obj.tag == inkex.addNS('path','svg') or obj.tag == inkex.addNS('g','svg'):
if trafo.tag == inkex.addNS('path','svg'):
#distil trafo into four node points
+ mat = simpletransform.composeParents(trafo, [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
trafo = cubicsuperpath.parsePath(trafo.get('d'))
if len(trafo[0]) < 4:
inkex.errormsg(_("This extension requires that the second selected path be four nodes long."))
exit()
+ simpletransform.applyTransformToPath(mat, trafo)
trafo = [[Point(csp[1][0],csp[1][1]) for csp in subs] for subs in trafo][0][:4]
#vectors pointing away from the trafo origin
@@ -95,13 +97,17 @@ class Project(inkex.Effect):
self.process_group(node)
def process_path(self,path):
+ mat = simpletransform.composeParents(path, [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
d = path.get('d')
p = cubicsuperpath.parsePath(d)
+ simpletransform.applyTransformToPath(mat, p)
for subs in p:
for csp in subs:
csp[0] = self.trafopoint(csp[0])
csp[1] = self.trafopoint(csp[1])
csp[2] = self.trafopoint(csp[2])
+ mat = voronoi2svg.Voronoi2svg().invertTransform(mat)
+ simpletransform.applyTransformToPath(mat, p)
path.set('d',cubicsuperpath.formatPath(p))
def trafopoint(self,(x,y)):
diff --git a/share/extensions/xaml2svg/animation.xsl b/share/extensions/xaml2svg/animation.xsl
index 6e7578cd2..e51a430ba 100644
--- a/share/extensions/xaml2svg/animation.xsl
+++ b/share/extensions/xaml2svg/animation.xsl
@@ -1,141 +1,141 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
--->
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:xlink="http://www.w3.org/1999/xlink"
-xmlns:svg="http://www.w3.org/2000/svg"
-xmlns:def="Definition"
-exclude-result-prefixes="def">
-<xsl:strip-space elements="*" />
-<xsl:output method="xml" encoding="ISO-8859-1"/>
-
-<xsl:template name="template_animation">
- <xsl:if test="@From"><xsl:attribute name="from"><xsl:value-of select="@From" /></xsl:attribute></xsl:if>
- <xsl:if test="@To"><xsl:attribute name="to"><xsl:value-of select="@To" /></xsl:attribute></xsl:if>
- <xsl:if test="@Duration"><xsl:attribute name="dur"><xsl:value-of select="@Duration" /></xsl:attribute></xsl:if>
- <xsl:if test="@RepeatDuration"><xsl:attribute name="repeatDur"><xsl:value-of select="translate(@RepeatDuration, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" /></xsl:attribute></xsl:if>
- <xsl:if test="@RepeatCount"><xsl:attribute name="repeatCount"><xsl:value-of select="@RepeatCount" /></xsl:attribute></xsl:if>
- <xsl:if test="@AutoReverse">
- <xsl:attribute name="fill">
- <xsl:choose>
- <xsl:when test="@AutoReverse = 'True'">remove</xsl:when>
- <xsl:otherwise>freeze</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<xsl:template name="template_timeline_animations">
- <xsl:variable name="id" select="@ID" />
- <xsl:variable name="name" select="@Name" />
- <xsl:apply-templates select="//*[name(.) = 'SetterTimeline' and ($id = @TargetID or $name = @TargetName)]" />
-</xsl:template>
-
-<xsl:template name="template_animation_path">
- <xsl:param name="target" />
- <xsl:choose>
- <xsl:when test="$target = '(Line.X2)'">x2</xsl:when>
- <xsl:when test="$target = '(Rectangle.Opacity)'">opacity</xsl:when>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="*[name(.) = concat(name(..), '.Storyboards')]">
- <!--xsl:apply-templates /-->
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'ParallelTimeLine']">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'SetterTimeline']">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'ByteAnimationCollection' or name(.) = 'DecimalAnimationCollection' or name(.) = 'DoubleAnimationCollection' or name(.) = 'Int16AnimationCollection' or name(.) = 'Int32AnimationCollection' or name(.) = 'Int64AnimationCollection' or name(.) = 'LengthAnimationCollection' or name(.) = 'SingleAnimationCollection' or name(.) = 'SizeAnimationCollection' or name(.) = 'ThicknessAnimationCollection']">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'ByteAnimation' or name(.) = 'DecimalAnimation' or name(.) = 'DoubleAnimation' or name(.) = 'Int16Animation' or name(.) = 'Int32Animation' or name(.) = 'Int64Animation' or name(.) = 'LengthAnimation' or name(.) = 'SingleAnimation' or name(.) = 'SizeAnimation' or name(.) = 'ThicknessAnimation']">
- <xsl:choose>
- <xsl:when test="../@Path">
- <animate>
- <xsl:attribute name="attributeName"><xsl:call-template name="template_animation_path"><xsl:with-param name="target" select="../@Path" /></xsl:call-template></xsl:attribute>
- <xsl:call-template name="template_animation" />
- </animate>
- </xsl:when>
- <xsl:when test="name(..) = concat(name(.), 'Collection')">
- <animate>
- <xsl:attribute name="attributeName"><xsl:value-of select="translate(substring-after(name(../..), concat(name(../../..), '.')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" /></xsl:attribute>
- <xsl:call-template name="template_animation" />
- </animate>
- </xsl:when>
- <xsl:when test="name(..) = concat(name(../..), '.AngleAnimations')">
- <animateTransform attributeName="transform" type="rotate">
- <xsl:call-template name="template_animation" />
- </animateTransform>
- </xsl:when>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="*[name(.) = concat(name(..), '.ColorAnimations')]">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = concat(name(..), '.AngleAnimations')]">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'ColorAnimation']">
- <animateColor>
- <xsl:if test="../@Path">
- <xsl:attribute name="attributeName"><xsl:call-template name="template_animation_path"><xsl:with-param name="target" select="../@Path" /></xsl:call-template></xsl:attribute>
- </xsl:if>
- <xsl:if test="name(..) = concat(name(../..), '.ColorAnimations')">
- <xsl:choose>
- <xsl:when test="name(../..) = 'SolidColorBrush'">
- <xsl:attribute name="attributeName">
- <xsl:value-of select="translate(substring-after(name(../../..), concat(name(../../../..), '.')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" />
- </xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- <xsl:call-template name="template_animation" />
- </animateColor>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'PointAnimation']">
- <animateMotion>
- <xsl:if test="../@Path">
- <xsl:attribute name="attributeName"><xsl:call-template name="template_animation_path"><xsl:with-param name="target" select="../@Path" /></xsl:call-template></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="template_animation" />
- </animateMotion>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'RectAnimation']">
-<!-- -->
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+-->
+
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:svg="http://www.w3.org/2000/svg"
+xmlns:def="Definition"
+exclude-result-prefixes="def">
+<xsl:strip-space elements="*" />
+<xsl:output method="xml" encoding="ISO-8859-1"/>
+
+<xsl:template name="template_animation">
+ <xsl:if test="@From"><xsl:attribute name="from"><xsl:value-of select="@From" /></xsl:attribute></xsl:if>
+ <xsl:if test="@To"><xsl:attribute name="to"><xsl:value-of select="@To" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Duration"><xsl:attribute name="dur"><xsl:value-of select="@Duration" /></xsl:attribute></xsl:if>
+ <xsl:if test="@RepeatDuration"><xsl:attribute name="repeatDur"><xsl:value-of select="translate(@RepeatDuration, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" /></xsl:attribute></xsl:if>
+ <xsl:if test="@RepeatCount"><xsl:attribute name="repeatCount"><xsl:value-of select="@RepeatCount" /></xsl:attribute></xsl:if>
+ <xsl:if test="@AutoReverse">
+ <xsl:attribute name="fill">
+ <xsl:choose>
+ <xsl:when test="@AutoReverse = 'True'">remove</xsl:when>
+ <xsl:otherwise>freeze</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="template_timeline_animations">
+ <xsl:variable name="id" select="@ID" />
+ <xsl:variable name="name" select="@Name" />
+ <xsl:apply-templates select="//*[name(.) = 'SetterTimeline' and ($id = @TargetID or $name = @TargetName)]" />
+</xsl:template>
+
+<xsl:template name="template_animation_path">
+ <xsl:param name="target" />
+ <xsl:choose>
+ <xsl:when test="$target = '(Line.X2)'">x2</xsl:when>
+ <xsl:when test="$target = '(Rectangle.Opacity)'">opacity</xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*[name(.) = concat(name(..), '.Storyboards')]">
+ <!--xsl:apply-templates /-->
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'ParallelTimeLine']">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'SetterTimeline']">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'ByteAnimationCollection' or name(.) = 'DecimalAnimationCollection' or name(.) = 'DoubleAnimationCollection' or name(.) = 'Int16AnimationCollection' or name(.) = 'Int32AnimationCollection' or name(.) = 'Int64AnimationCollection' or name(.) = 'LengthAnimationCollection' or name(.) = 'SingleAnimationCollection' or name(.) = 'SizeAnimationCollection' or name(.) = 'ThicknessAnimationCollection']">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'ByteAnimation' or name(.) = 'DecimalAnimation' or name(.) = 'DoubleAnimation' or name(.) = 'Int16Animation' or name(.) = 'Int32Animation' or name(.) = 'Int64Animation' or name(.) = 'LengthAnimation' or name(.) = 'SingleAnimation' or name(.) = 'SizeAnimation' or name(.) = 'ThicknessAnimation']">
+ <xsl:choose>
+ <xsl:when test="../@Path">
+ <animate>
+ <xsl:attribute name="attributeName"><xsl:call-template name="template_animation_path"><xsl:with-param name="target" select="../@Path" /></xsl:call-template></xsl:attribute>
+ <xsl:call-template name="template_animation" />
+ </animate>
+ </xsl:when>
+ <xsl:when test="name(..) = concat(name(.), 'Collection')">
+ <animate>
+ <xsl:attribute name="attributeName"><xsl:value-of select="translate(substring-after(name(../..), concat(name(../../..), '.')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" /></xsl:attribute>
+ <xsl:call-template name="template_animation" />
+ </animate>
+ </xsl:when>
+ <xsl:when test="name(..) = concat(name(../..), '.AngleAnimations')">
+ <animateTransform attributeName="transform" type="rotate">
+ <xsl:call-template name="template_animation" />
+ </animateTransform>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*[name(.) = concat(name(..), '.ColorAnimations')]">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = concat(name(..), '.AngleAnimations')]">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'ColorAnimation']">
+ <animateColor>
+ <xsl:if test="../@Path">
+ <xsl:attribute name="attributeName"><xsl:call-template name="template_animation_path"><xsl:with-param name="target" select="../@Path" /></xsl:call-template></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="name(..) = concat(name(../..), '.ColorAnimations')">
+ <xsl:choose>
+ <xsl:when test="name(../..) = 'SolidColorBrush'">
+ <xsl:attribute name="attributeName">
+ <xsl:value-of select="translate(substring-after(name(../../..), concat(name(../../../..), '.')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" />
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:call-template name="template_animation" />
+ </animateColor>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'PointAnimation']">
+ <animateMotion>
+ <xsl:if test="../@Path">
+ <xsl:attribute name="attributeName"><xsl:call-template name="template_animation_path"><xsl:with-param name="target" select="../@Path" /></xsl:call-template></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="template_animation" />
+ </animateMotion>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'RectAnimation']">
+<!-- -->
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/share/extensions/xaml2svg/brushes.xsl b/share/extensions/xaml2svg/brushes.xsl
index a5d20e12d..884d6db35 100644
--- a/share/extensions/xaml2svg/brushes.xsl
+++ b/share/extensions/xaml2svg/brushes.xsl
@@ -1,244 +1,244 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
--->
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:xlink="http://www.w3.org/1999/xlink"
-xmlns:svg="http://www.w3.org/2000/svg"
-xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-exclude-result-prefixes="x">
-<xsl:strip-space elements="*" />
-<xsl:output method="xml" encoding="ISO-8859-1"/>
-
-<xsl:template mode="forward" match="*[name(.) = 'LinearGradientBrush']">
- <linearGradient>
- <xsl:attribute name="id">
- <xsl:choose>
- <xsl:when test="@x:Key"><xsl:value-of select="@x:Key" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <xsl:attribute name="gradientUnits">
- <xsl:choose>
- <xsl:when test="@MappingMode = 'RelativeToBoundingBox' or not(@StartPoint and @EndPoint)"><xsl:value-of select="'boundingBox'" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="'userSpaceOnUse'" /></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <xsl:if test="@SpreadMethod">
- <xsl:attribute name="spreadMethod">
- <xsl:value-of select="translate(@SpreadMethod, 'PR', 'pr')" />
- </xsl:attribute>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="@MappingMode = 'Absolute' and @StartPoint and @EndPoint">
- <xsl:attribute name="x1"><xsl:value-of select="substring-before(@StartPoint,',')" /></xsl:attribute>
- <xsl:attribute name="x1"><xsl:value-of select="substring-before(@StartPoint,',')" /></xsl:attribute>
- <xsl:attribute name="y1"><xsl:value-of select="substring-after(@StartPoint,',')" /></xsl:attribute>
- <xsl:attribute name="x2"><xsl:value-of select="substring-before(@EndPoint,',')" /></xsl:attribute>
- <xsl:attribute name="y2"><xsl:value-of select="substring-after(@EndPoint,',')" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@StartPoint and @EndPoint">
- <xsl:attribute name="x1"><xsl:value-of select="concat(100 * number(substring-before(@StartPoint,',')), '%')" /></xsl:attribute>
- <xsl:attribute name="y1"><xsl:value-of select="concat(100 * number(substring-after(@StartPoint,',')), '%')" /></xsl:attribute>
- <xsl:attribute name="x2"><xsl:value-of select="concat(100 * number(substring-before(@EndPoint,',')), '%')" /></xsl:attribute>
- <xsl:attribute name="y2"><xsl:value-of select="concat(100 * number(substring-after(@EndPoint,',')), '%')" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="x1"><xsl:value-of select="0" /></xsl:attribute>
- <xsl:attribute name="y1"><xsl:value-of select="0" /></xsl:attribute>
- <xsl:attribute name="x2"><xsl:value-of select="'100%'" /></xsl:attribute>
- <xsl:attribute name="y2"><xsl:value-of select="'100%'" /></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="template_gradienttransform" />
- <xsl:apply-templates select="*[name(.) != 'Brush.Transform' and name(.) != concat(name(..), '.Transform') and name(.) != 'Brush.RelativeTransform' and name(.) != concat(name(..), '.RelativeTransform')]" />
- </linearGradient>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'RadialGradientBrush']">
- <radialGradient>
- <xsl:attribute name="id">
- <xsl:choose>
- <xsl:when test="@x:Key"><xsl:value-of select="@x:Key" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <xsl:attribute name="gradientUnits">
- <xsl:choose>
- <xsl:when test="@MappingMode = 'RelativeToBoundingBox' or not(@StartPoint and @EndPoint)"><xsl:value-of select="'boundingBox'" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="'userSpaceOnUse'" /></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <xsl:if test="@SpreadMethod">
- <xsl:attribute name="spreadMethod">
- <xsl:value-of select="translate(@SpreadMethod, 'PR', 'pr')" />
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@Center">
- <xsl:attribute name="cx"><xsl:value-of select="substring-before(@Center, ',')" /></xsl:attribute>
- <xsl:attribute name="cy"><xsl:value-of select="substring-after(@Center, ',')" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@GradientOrigin">
- <xsl:attribute name="fx"><xsl:value-of select="substring-before(@GradientOrigin, ',')" /></xsl:attribute>
- <xsl:attribute name="fy"><xsl:value-of select="substring-after(@GradientOrigin, ',')" /></xsl:attribute>
- </xsl:if>
- <!-- Xamlon uses Focus -->
- <xsl:if test="@Focus">
- <xsl:attribute name="fx"><xsl:value-of select="substring-before(@Focus, ',')" /></xsl:attribute>
- <xsl:attribute name="fy"><xsl:value-of select="substring-after(@Focus, ',')" /></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="r"><xsl:value-of select="@RadiusX" /></xsl:attribute>
- <xsl:call-template name="template_gradienttransform" />
- <xsl:apply-templates select="*[name(.) != 'Brush.Transform' and name(.) != concat(name(..), '.Transform') and name(.) != 'Brush.RelativeTransform' and name(.) != concat(name(..), '.RelativeTransform')]" />
- </radialGradient>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'GradientStopCollection' or name(.) = 'GradientBrush.GradientStops' or name(.) = concat(name(..), '.GradientStops')]">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'GradientStop']">
- <stop>
- <xsl:if test="@Offset"><xsl:attribute name="offset"><xsl:value-of select="@Offset" /></xsl:attribute></xsl:if>
- <xsl:if test="@Color">
- <xsl:attribute name="stop-color"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:attribute>
- <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:variable>
- <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="stop-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
- </xsl:if>
- </stop>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'SolidColorBrush']">
- <xsl:call-template name="template_properties" />
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'ImageBrush']">
- <defs>
- <pattern>
- <xsl:choose>
- <xsl:when test="@TileMode != 'none' and @Viewport and @ViewportUnits = 'Absolute'">
- <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
- <xsl:attribute name="x"><xsl:value-of select="substring-before(@Viewport, ',')" /></xsl:attribute>
- <xsl:attribute name="y"><xsl:value-of select="substring-before(substring-after(@Viewport, ','), ',')" /></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@TileMode != 'none' and @Viewport">
- <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
- <xsl:attribute name="x"><xsl:value-of select="concat(100 * number(substring-before(@Viewport, ',')), '%')" /></xsl:attribute>
- <xsl:attribute name="y"><xsl:value-of select="concat(100 * number(substring-before(substring-after(@Viewport, ','), ',')), '%')" /></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="concat(100 * number(substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="concat(100 * number(substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@Viewport and ../../@Width and ../../@Height">
- <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
- <xsl:attribute name="x">0</xsl:attribute>
- <xsl:attribute name="y">0</xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="../../@Width" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="../../@Height" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="patternUnits">boundingBox </xsl:attribute>
- <xsl:attribute name="x">0</xsl:attribute>
- <xsl:attribute name="y">0</xsl:attribute>
- <xsl:attribute name="width">100%</xsl:attribute>
- <xsl:attribute name="height">100%</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:attribute name="id"><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:attribute>
- <image>
- <xsl:attribute name="xlink:href"><xsl:value-of select="@ImageSource" /></xsl:attribute>
- <xsl:choose>
- <xsl:when test="@Viewport and @ViewportUnits = 'Absolute'">
- <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
- <xsl:attribute name="x"><xsl:value-of select="0" /></xsl:attribute>
- <xsl:attribute name="y"><xsl:value-of select="0" /></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@Viewport">
- <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
- <xsl:attribute name="x"><xsl:value-of select="0" /></xsl:attribute>
- <xsl:attribute name="y"><xsl:value-of select="0" /></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="concat(100 * number(substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="concat(100 * number(substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
- <xsl:attribute name="x">0</xsl:attribute>
- <xsl:attribute name="y">0</xsl:attribute>
- <xsl:attribute name="width">100%</xsl:attribute>
- <xsl:attribute name="height">100%</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:attribute name="style">opacity:1</xsl:attribute>
- <xsl:attribute name="image-rendering">optimizeSpeed</xsl:attribute>
- </image>
- </pattern>
- </defs>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'DrawingBrush']">
- <pattern>
- <xsl:choose>
- <xsl:when test="@TileMode != 'none' and @Viewport and @ViewportUnits = 'Absolute'">
- <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
- <xsl:attribute name="x"><xsl:value-of select="substring-before(@Viewport, ',')" /></xsl:attribute>
- <xsl:attribute name="y"><xsl:value-of select="substring-before(substring-after(@Viewport, ','), ',')" /></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@TileMode != 'none' and @Viewport">
- <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
- <xsl:attribute name="x"><xsl:value-of select="concat(100 * number(substring-before(@Viewport, ',')), '%')" /></xsl:attribute>
- <xsl:attribute name="y"><xsl:value-of select="concat(100 * number(substring-before(substring-after(@Viewport, ','), ',')), '%')" /></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="concat(100 * number(substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="concat(100 * number(substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@Viewport and ../../@Width and ../../@Height">
- <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
- <xsl:attribute name="x">0</xsl:attribute>
- <xsl:attribute name="y">0</xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="../../@Width" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="../../@Height" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
- <xsl:attribute name="x">0</xsl:attribute>
- <xsl:attribute name="y">0</xsl:attribute>
- <xsl:attribute name="width">100%</xsl:attribute>
- <xsl:attribute name="height">100%</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:attribute name="id"><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:attribute>
- <xsl:apply-templates mode="forward" />
- </pattern>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'DrawingBrush.Drawing']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+-->
+
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:svg="http://www.w3.org/2000/svg"
+xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+exclude-result-prefixes="x">
+<xsl:strip-space elements="*" />
+<xsl:output method="xml" encoding="ISO-8859-1"/>
+
+<xsl:template mode="forward" match="*[name(.) = 'LinearGradientBrush']">
+ <linearGradient>
+ <xsl:attribute name="id">
+ <xsl:choose>
+ <xsl:when test="@x:Key"><xsl:value-of select="@x:Key" /></xsl:when>
+ <xsl:otherwise><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="gradientUnits">
+ <xsl:choose>
+ <xsl:when test="@MappingMode = 'RelativeToBoundingBox' or not(@StartPoint and @EndPoint)"><xsl:value-of select="'boundingBox'" /></xsl:when>
+ <xsl:otherwise><xsl:value-of select="'userSpaceOnUse'" /></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:if test="@SpreadMethod">
+ <xsl:attribute name="spreadMethod">
+ <xsl:value-of select="translate(@SpreadMethod, 'PR', 'pr')" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@MappingMode = 'Absolute' and @StartPoint and @EndPoint">
+ <xsl:attribute name="x1"><xsl:value-of select="substring-before(@StartPoint,',')" /></xsl:attribute>
+ <xsl:attribute name="x1"><xsl:value-of select="substring-before(@StartPoint,',')" /></xsl:attribute>
+ <xsl:attribute name="y1"><xsl:value-of select="substring-after(@StartPoint,',')" /></xsl:attribute>
+ <xsl:attribute name="x2"><xsl:value-of select="substring-before(@EndPoint,',')" /></xsl:attribute>
+ <xsl:attribute name="y2"><xsl:value-of select="substring-after(@EndPoint,',')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@StartPoint and @EndPoint">
+ <xsl:attribute name="x1"><xsl:value-of select="concat(100 * number(substring-before(@StartPoint,',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="y1"><xsl:value-of select="concat(100 * number(substring-after(@StartPoint,',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="x2"><xsl:value-of select="concat(100 * number(substring-before(@EndPoint,',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="y2"><xsl:value-of select="concat(100 * number(substring-after(@EndPoint,',')), '%')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="x1"><xsl:value-of select="0" /></xsl:attribute>
+ <xsl:attribute name="y1"><xsl:value-of select="0" /></xsl:attribute>
+ <xsl:attribute name="x2"><xsl:value-of select="'100%'" /></xsl:attribute>
+ <xsl:attribute name="y2"><xsl:value-of select="'100%'" /></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="template_gradienttransform" />
+ <xsl:apply-templates select="*[name(.) != 'Brush.Transform' and name(.) != concat(name(..), '.Transform') and name(.) != 'Brush.RelativeTransform' and name(.) != concat(name(..), '.RelativeTransform')]" />
+ </linearGradient>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'RadialGradientBrush']">
+ <radialGradient>
+ <xsl:attribute name="id">
+ <xsl:choose>
+ <xsl:when test="@x:Key"><xsl:value-of select="@x:Key" /></xsl:when>
+ <xsl:otherwise><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="gradientUnits">
+ <xsl:choose>
+ <xsl:when test="@MappingMode = 'RelativeToBoundingBox' or not(@StartPoint and @EndPoint)"><xsl:value-of select="'boundingBox'" /></xsl:when>
+ <xsl:otherwise><xsl:value-of select="'userSpaceOnUse'" /></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:if test="@SpreadMethod">
+ <xsl:attribute name="spreadMethod">
+ <xsl:value-of select="translate(@SpreadMethod, 'PR', 'pr')" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@Center">
+ <xsl:attribute name="cx"><xsl:value-of select="substring-before(@Center, ',')" /></xsl:attribute>
+ <xsl:attribute name="cy"><xsl:value-of select="substring-after(@Center, ',')" /></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@GradientOrigin">
+ <xsl:attribute name="fx"><xsl:value-of select="substring-before(@GradientOrigin, ',')" /></xsl:attribute>
+ <xsl:attribute name="fy"><xsl:value-of select="substring-after(@GradientOrigin, ',')" /></xsl:attribute>
+ </xsl:if>
+ <!-- Xamlon uses Focus -->
+ <xsl:if test="@Focus">
+ <xsl:attribute name="fx"><xsl:value-of select="substring-before(@Focus, ',')" /></xsl:attribute>
+ <xsl:attribute name="fy"><xsl:value-of select="substring-after(@Focus, ',')" /></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="r"><xsl:value-of select="@RadiusX" /></xsl:attribute>
+ <xsl:call-template name="template_gradienttransform" />
+ <xsl:apply-templates select="*[name(.) != 'Brush.Transform' and name(.) != concat(name(..), '.Transform') and name(.) != 'Brush.RelativeTransform' and name(.) != concat(name(..), '.RelativeTransform')]" />
+ </radialGradient>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'GradientStopCollection' or name(.) = 'GradientBrush.GradientStops' or name(.) = concat(name(..), '.GradientStops')]">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'GradientStop']">
+ <stop>
+ <xsl:if test="@Offset"><xsl:attribute name="offset"><xsl:value-of select="@Offset" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Color">
+ <xsl:attribute name="stop-color"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:attribute>
+ <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:variable>
+ <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="stop-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
+ </xsl:if>
+ </stop>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'SolidColorBrush']">
+ <xsl:call-template name="template_properties" />
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'ImageBrush']">
+ <defs>
+ <pattern>
+ <xsl:choose>
+ <xsl:when test="@TileMode != 'none' and @Viewport and @ViewportUnits = 'Absolute'">
+ <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
+ <xsl:attribute name="x"><xsl:value-of select="substring-before(@Viewport, ',')" /></xsl:attribute>
+ <xsl:attribute name="y"><xsl:value-of select="substring-before(substring-after(@Viewport, ','), ',')" /></xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@TileMode != 'none' and @Viewport">
+ <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
+ <xsl:attribute name="x"><xsl:value-of select="concat(100 * number(substring-before(@Viewport, ',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="y"><xsl:value-of select="concat(100 * number(substring-before(substring-after(@Viewport, ','), ',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="concat(100 * number(substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="concat(100 * number(substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@Viewport and ../../@Width and ../../@Height">
+ <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
+ <xsl:attribute name="x">0</xsl:attribute>
+ <xsl:attribute name="y">0</xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="../../@Width" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="../../@Height" /></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="patternUnits">boundingBox </xsl:attribute>
+ <xsl:attribute name="x">0</xsl:attribute>
+ <xsl:attribute name="y">0</xsl:attribute>
+ <xsl:attribute name="width">100%</xsl:attribute>
+ <xsl:attribute name="height">100%</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="id"><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:attribute>
+ <image>
+ <xsl:attribute name="xlink:href"><xsl:value-of select="@ImageSource" /></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@Viewport and @ViewportUnits = 'Absolute'">
+ <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
+ <xsl:attribute name="x"><xsl:value-of select="0" /></xsl:attribute>
+ <xsl:attribute name="y"><xsl:value-of select="0" /></xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@Viewport">
+ <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
+ <xsl:attribute name="x"><xsl:value-of select="0" /></xsl:attribute>
+ <xsl:attribute name="y"><xsl:value-of select="0" /></xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="concat(100 * number(substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="concat(100 * number(substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
+ <xsl:attribute name="x">0</xsl:attribute>
+ <xsl:attribute name="y">0</xsl:attribute>
+ <xsl:attribute name="width">100%</xsl:attribute>
+ <xsl:attribute name="height">100%</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="style">opacity:1</xsl:attribute>
+ <xsl:attribute name="image-rendering">optimizeSpeed</xsl:attribute>
+ </image>
+ </pattern>
+ </defs>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'DrawingBrush']">
+ <pattern>
+ <xsl:choose>
+ <xsl:when test="@TileMode != 'none' and @Viewport and @ViewportUnits = 'Absolute'">
+ <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
+ <xsl:attribute name="x"><xsl:value-of select="substring-before(@Viewport, ',')" /></xsl:attribute>
+ <xsl:attribute name="y"><xsl:value-of select="substring-before(substring-after(@Viewport, ','), ',')" /></xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@TileMode != 'none' and @Viewport">
+ <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
+ <xsl:attribute name="x"><xsl:value-of select="concat(100 * number(substring-before(@Viewport, ',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="y"><xsl:value-of select="concat(100 * number(substring-before(substring-after(@Viewport, ','), ',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="concat(100 * number(substring-before(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="concat(100 * number(substring-after(substring-after(substring-after(@Viewport, ','), ','), ',')), '%')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@Viewport and ../../@Width and ../../@Height">
+ <xsl:attribute name="patternUnits">userSpaceOnUse</xsl:attribute>
+ <xsl:attribute name="x">0</xsl:attribute>
+ <xsl:attribute name="y">0</xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="../../@Width" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="../../@Height" /></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="patternUnits">boundingBox</xsl:attribute>
+ <xsl:attribute name="x">0</xsl:attribute>
+ <xsl:attribute name="y">0</xsl:attribute>
+ <xsl:attribute name="width">100%</xsl:attribute>
+ <xsl:attribute name="height">100%</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="id"><xsl:value-of select="concat('id_', generate-id(..))" /></xsl:attribute>
+ <xsl:apply-templates mode="forward" />
+ </pattern>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'DrawingBrush.Drawing']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/share/extensions/xaml2svg/canvas.xsl b/share/extensions/xaml2svg/canvas.xsl
index 0438bde67..e67f0e225 100644
--- a/share/extensions/xaml2svg/canvas.xsl
+++ b/share/extensions/xaml2svg/canvas.xsl
@@ -1,80 +1,80 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
--->
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:xlink="http://www.w3.org/1999/xlink"
-xmlns:svg="http://www.w3.org/2000/svg"
-xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-<xsl:strip-space elements="*" />
-<xsl:output method="xml" encoding="ISO-8859-1"/>
-
-<xsl:template mode="forward" match="*[name(.) = 'Canvas' or name(.) = 'Window' or name(.) = 'StackPanel']">
- <svg>
- <xsl:choose>
- <!--
- <xsl:when test="@ID"><xsl:attribute name="id"><xsl:value-of select="@ID" /></xsl:attribute></xsl:when>
- -->
- <xsl:when test="@x:Key"><xsl:attribute name="id"><xsl:value-of select="@x:Key" /></xsl:attribute></xsl:when>
- <xsl:when test="@Name"><xsl:attribute name="id"><xsl:value-of select="@Name" /></xsl:attribute></xsl:when>
- </xsl:choose>
- <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
- <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
- <xsl:if test="@Canvas.Left"><xsl:attribute name="x"><xsl:value-of select="@Canvas.Left" /></xsl:attribute></xsl:if>
- <xsl:if test="@Canvas.Top"><xsl:attribute name="y"><xsl:value-of select="@Canvas.Top" /></xsl:attribute></xsl:if>
- <xsl:call-template name="template_properties" />
- <xsl:choose>
- <xsl:when test="@Transform or *[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]">
- <g>
- <xsl:call-template name="template_transform" />
- <xsl:apply-templates select="*[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]" />
- <xsl:apply-templates mode="svg" />
- </g>
- </xsl:when>
- <xsl:otherwise><xsl:apply-templates mode="svg" /></xsl:otherwise>
- </xsl:choose>
- </svg>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Border']">
- <rect>
- <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
- <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
- <xsl:if test="@BorderThickness"><xsl:attribute name="stroke-width"><xsl:value-of select="@BorderThickness" /></xsl:attribute></xsl:if>
- <xsl:if test="@Background">
- <xsl:attribute name="fill"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Background" /></xsl:call-template></xsl:attribute>
- <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Background" /></xsl:call-template></xsl:variable>
- <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="fill-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
- </xsl:if>
- <xsl:if test="@BorderBrush">
- <xsl:attribute name="stroke"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@BorderBrush" /></xsl:call-template></xsl:attribute>
- <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@BorderBrush" /></xsl:call-template></xsl:variable>
- <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="stroke-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
- </xsl:if>
- <xsl:call-template name="template_properties" />
- </rect>
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+-->
+
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:svg="http://www.w3.org/2000/svg"
+xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+<xsl:strip-space elements="*" />
+<xsl:output method="xml" encoding="ISO-8859-1"/>
+
+<xsl:template mode="forward" match="*[name(.) = 'Canvas' or name(.) = 'Window' or name(.) = 'StackPanel']">
+ <svg>
+ <xsl:choose>
+ <!--
+ <xsl:when test="@ID"><xsl:attribute name="id"><xsl:value-of select="@ID" /></xsl:attribute></xsl:when>
+ -->
+ <xsl:when test="@x:Key"><xsl:attribute name="id"><xsl:value-of select="@x:Key" /></xsl:attribute></xsl:when>
+ <xsl:when test="@Name"><xsl:attribute name="id"><xsl:value-of select="@Name" /></xsl:attribute></xsl:when>
+ </xsl:choose>
+ <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Canvas.Left"><xsl:attribute name="x"><xsl:value-of select="@Canvas.Left" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Canvas.Top"><xsl:attribute name="y"><xsl:value-of select="@Canvas.Top" /></xsl:attribute></xsl:if>
+ <xsl:call-template name="template_properties" />
+ <xsl:choose>
+ <xsl:when test="@Transform or *[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]">
+ <g>
+ <xsl:call-template name="template_transform" />
+ <xsl:apply-templates select="*[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]" />
+ <xsl:apply-templates mode="svg" />
+ </g>
+ </xsl:when>
+ <xsl:otherwise><xsl:apply-templates mode="svg" /></xsl:otherwise>
+ </xsl:choose>
+ </svg>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Border']">
+ <rect>
+ <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
+ <xsl:if test="@BorderThickness"><xsl:attribute name="stroke-width"><xsl:value-of select="@BorderThickness" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Background">
+ <xsl:attribute name="fill"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Background" /></xsl:call-template></xsl:attribute>
+ <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Background" /></xsl:call-template></xsl:variable>
+ <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="fill-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
+ </xsl:if>
+ <xsl:if test="@BorderBrush">
+ <xsl:attribute name="stroke"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@BorderBrush" /></xsl:call-template></xsl:attribute>
+ <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@BorderBrush" /></xsl:call-template></xsl:variable>
+ <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="stroke-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
+ </xsl:if>
+ <xsl:call-template name="template_properties" />
+ </rect>
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/share/extensions/xaml2svg/geometry.xsl b/share/extensions/xaml2svg/geometry.xsl
index 4468ef4ff..c28e6a67c 100644
--- a/share/extensions/xaml2svg/geometry.xsl
+++ b/share/extensions/xaml2svg/geometry.xsl
@@ -1,272 +1,272 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
--->
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:xlink="http://www.w3.org/1999/xlink"
-xmlns:svg="http://www.w3.org/2000/svg"
-xmlns:def="Definition"
-exclude-result-prefixes="def">
-<xsl:strip-space elements="*" />
-<xsl:output method="xml" encoding="ISO-8859-1"/>
-
-<xsl:template mode="forward" match="*[name(.) = 'ClipGeometry']">
-<!-- -->
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'GlyphRunDrawing']">
-<!-- -->
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'ImageDrawing']">
- <image>
- <xsl:if test="@ImageSource"><xsl:attribute name="xlink:href"><xsl:value-of select="@ImageSource" /></xsl:attribute></xsl:if>
- <xsl:if test="@Rect">
- <xsl:attribute name="x"><xsl:value-of select="substring-before(@Rect, ',')" /></xsl:attribute>
- <xsl:attribute name="y"><xsl:value-of select="substring-before(substring-after(@Rect, ','), ',')" /></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Rect, ','), ','), ',')" /></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Rect, ','), ','), ',')" /></xsl:attribute>
- </xsl:if>
- </image>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'DrawingGroup']">
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'EllipseGeometry']">
- <xsl:variable name="cx" select="substring-before(@Center, ',')" />
- <xsl:variable name="cy" select="substring-after(@Center, ',')" />
- <xsl:value-of select="concat('M ', $cx + @RadiusX, ',', $cy, ' ')" />
- <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx, ',', $cy + @RadiusY, ' ')" />
- <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx - @RadiusX, ',', $cy, ' ')" />
- <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx, ',', $cy - @RadiusY, ' ')" />
- <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx + @RadiusX, ',', $cy, ' ')" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'LineGeometry']">
- <xsl:value-of select="concat('M ', @StartPoint, ' ')" />
- <xsl:value-of select="concat('L ', @EndPoint, ' ')" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PathGeometry']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PathGeometry.Figures']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PathFigureCollection']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PathFigure']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PathFigure.Segments']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PathSegmentCollection']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'StartSegment']">
- <xsl:value-of select="concat('M ', @Point, ' ')" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'CloseSegment']">
- <xsl:value-of select="'z '" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'LineSegment']">
- <xsl:value-of select="concat('L ', @Point, ' ')" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'ArcSegment']">
- <xsl:value-of select="concat('A ', substring-before(@Size, ','), ',', substring-after(@Size, ','), ' ', @XRotation, ' ', number(@LargeArc = 'True'), ' ', number(@Sweepflag = 'True'), ' ', @Point, ' ')" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'BezierSegment']">
- <xsl:value-of select="concat('C ', @Point1, ' ', @Point2, ' ', @Point3, ' ')" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'QuadraticBezierSegment']">
- <xsl:value-of select="concat('Q ', @Point1, ' ', @Point2, ' ', @Point3, ' ')" />
-</xsl:template>
-
-<xsl:template name="PrintPolyBezierPoints">
- <xsl:param name="segments" />
- <xsl:param name="segmentsize" />
- <xsl:param name="cursor" />
- <xsl:text>C </xsl:text>
- <xsl:value-of select="concat(substring-before($segments, ','), ',')" />
- <xsl:variable name="segments1"><xsl:value-of select="substring-after($segments, ',')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments1, ' '), ' ')" />
- <xsl:variable name="segments2"><xsl:value-of select="substring-after($segments1, ' ')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments2, ','), ',')" />
- <xsl:variable name="segments3"><xsl:value-of select="substring-after($segments2, ',')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments3, ' '), ' ')" />
- <xsl:variable name="segments4"><xsl:value-of select="substring-after($segments3, ' ')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments4, ','), ',')" />
- <xsl:variable name="segments5"><xsl:value-of select="substring-after($segments4, ',')" /></xsl:variable>
- <xsl:choose>
- <xsl:when test="contains($segments5, ' ')">
- <xsl:value-of select="concat(substring-before($segments5, ' '), ' ')" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$segments5" />
- </xsl:otherwise>
- </xsl:choose>
- <xsl:variable name="segments6"><xsl:value-of select="substring-after($segments5, ' ')" /></xsl:variable>
- <xsl:if test="contains($segments6, ' ')">
- <xsl:call-template name="PrintPolyBezierPoints">
- <xsl:with-param name="segments" select="$segments6" />
- </xsl:call-template>
- </xsl:if>
-</xsl:template>
-
-<xsl:template name="PrintPolyLinePoints">
- <xsl:param name="segments" />
- <xsl:text>L </xsl:text>
- <xsl:value-of select="concat(substring-before($segments, ','), ',')" />
- <xsl:variable name="segments1"><xsl:value-of select="substring-after($segments, ',')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments1, ' '), ' ')" />
- <xsl:variable name="segments2"><xsl:value-of select="substring-after($segments1, ' ')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments2, ','), ',')" />
- <xsl:variable name="segments3"><xsl:value-of select="substring-after($segments2, ',')" /></xsl:variable>
- <xsl:choose>
- <xsl:when test="contains($segments3, ' ')">
- <xsl:value-of select="concat(substring-before($segments3, ' '), ' ')" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$segments3" />
- </xsl:otherwise>
- </xsl:choose>
- <xsl:variable name="segments4"><xsl:value-of select="substring-after($segments3, ' ')" /></xsl:variable>
- <xsl:if test="contains($segments4, ' ')">
- <xsl:call-template name="PrintPolyLinePoints">
- <xsl:with-param name="segments" select="$segments4" />
- </xsl:call-template>
- </xsl:if>
-</xsl:template>
-
-<xsl:template name="PrintQuadraticBezierPoints">
- <xsl:param name="segments" />
- <xsl:text>Q </xsl:text>
- <xsl:value-of select="concat(substring-before($segments, ','), ',')" />
- <xsl:variable name="segments1"><xsl:value-of select="substring-after($segments, ',')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments1, ' '), ' ')" />
- <xsl:variable name="segments2"><xsl:value-of select="substring-after($segments1, ' ')" /></xsl:variable>
- <xsl:value-of select="concat(substring-before($segments2, ','), ',')" />
- <xsl:variable name="segments3"><xsl:value-of select="substring-after($segments2, ',')" /></xsl:variable>
- <xsl:choose>
- <xsl:when test="contains($segments3, ' ')">
- <xsl:value-of select="concat(substring-before($segments3, ' '), ' ')" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$segments3" />
- </xsl:otherwise>
- </xsl:choose>
- <xsl:variable name="segments4"><xsl:value-of select="substring-after($segments3, ' ')" /></xsl:variable>
- <xsl:if test="contains($segments4, ' ')">
- <xsl:call-template name="PrintQuadraticBezierPoints">
- <xsl:with-param name="segments" select="$segments4" />
- </xsl:call-template>
- </xsl:if>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PolyBezierSegment']">
- <xsl:call-template name="PrintPolyBezierPoints">
- <xsl:with-param name="segments" select="@Points" />
- </xsl:call-template>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PolyLineSegment']">
- <xsl:call-template name="PrintPolyLinePoints">
- <xsl:with-param name="segments" select="@Points" />
- </xsl:call-template>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'PolyQuadraticBezierSegment']">
- <xsl:call-template name="PrintQuadraticBezierPoints">
- <xsl:with-param name="segments" select="@Points" />
- </xsl:call-template>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'RectangleGeometry']">
- <xsl:variable name="rect" select="RectangleGeometry.Rect/Rect" />
- <xsl:choose>
- <xsl:when test="$rect">
- <xsl:value-of select="concat('M ', $rect/@X, ',', $rect/@Y, ' ')" />
- <xsl:value-of select="concat('H ', $rect/@X + $rect/@Width, ' V ', $rect/@Y + $rect/@Height, ' H ', $rect/@X,' V ', $rect/@Y, ' ')" />
- </xsl:when>
- <xsl:when test="@Rect">
- <xsl:variable name="x" select="substring-before(substring-before(@Rect, ' '), ',')" />
- <xsl:variable name="y" select="substring-after(substring-before(@Rect, ' '), ',')" />
- <xsl:variable name="width" select="substring-before(substring-after(@Rect, ' '), ',')" />
- <xsl:variable name="height" select="substring-after(substring-after(@Rect, ' '), ',')" />
- <xsl:value-of select="concat('M ', $x, ',', $y, ' ')" />
- <xsl:value-of select="concat('H ', $x + $width, ' V ', $y + $height, ' H ', $x,' V ', $y, ' ')" />
- </xsl:when>
- </xsl:choose>
-</xsl:template>
-
-<!--
-<xsl:template mode="forward" match="*[name(.) = 'GeometryCollection']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
--->
-
-<xsl:template mode="forward" match="*[name(.) = 'GeometryGroup']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'GeometryDrawing']">
- <path>
- <xsl:attribute name="d"><xsl:apply-templates select="*[name(.) = 'GeometryDrawing.Geometry']" mode="forward" /></xsl:attribute>
- <xsl:attribute name="fill"><xsl:value-of select="@Brush" /></xsl:attribute>
- <xsl:apply-templates mode="forward" select="*[name(.) = 'GeometryDrawing.Pen']" />
- </path>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'GeometryDrawing.Geometry']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'GeometryDrawing.Pen']">
- <xsl:variable name="pen" select="*[name(.) = 'Pen']" />
- <xsl:if test="$pen/@Brush"><xsl:attribute name="stroke"><xsl:value-of select="$pen/@Brush" /></xsl:attribute></xsl:if>
- <xsl:if test="$pen/@Thickness"><xsl:attribute name="stroke-width"><xsl:value-of select="$pen/@Thickness" /></xsl:attribute></xsl:if>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'CombinedGeometry' or name(.) = 'CombinedGeometry.Geometry1' or name(.) = 'CombinedGeometry.Geometry2']">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+-->
+
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:svg="http://www.w3.org/2000/svg"
+xmlns:def="Definition"
+exclude-result-prefixes="def">
+<xsl:strip-space elements="*" />
+<xsl:output method="xml" encoding="ISO-8859-1"/>
+
+<xsl:template mode="forward" match="*[name(.) = 'ClipGeometry']">
+<!-- -->
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'GlyphRunDrawing']">
+<!-- -->
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'ImageDrawing']">
+ <image>
+ <xsl:if test="@ImageSource"><xsl:attribute name="xlink:href"><xsl:value-of select="@ImageSource" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Rect">
+ <xsl:attribute name="x"><xsl:value-of select="substring-before(@Rect, ',')" /></xsl:attribute>
+ <xsl:attribute name="y"><xsl:value-of select="substring-before(substring-after(@Rect, ','), ',')" /></xsl:attribute>
+ <xsl:attribute name="width"><xsl:value-of select="substring-before(substring-after(substring-after(@Rect, ','), ','), ',')" /></xsl:attribute>
+ <xsl:attribute name="height"><xsl:value-of select="substring-after(substring-after(substring-after(@Rect, ','), ','), ',')" /></xsl:attribute>
+ </xsl:if>
+ </image>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'DrawingGroup']">
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'EllipseGeometry']">
+ <xsl:variable name="cx" select="substring-before(@Center, ',')" />
+ <xsl:variable name="cy" select="substring-after(@Center, ',')" />
+ <xsl:value-of select="concat('M ', $cx + @RadiusX, ',', $cy, ' ')" />
+ <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx, ',', $cy + @RadiusY, ' ')" />
+ <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx - @RadiusX, ',', $cy, ' ')" />
+ <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx, ',', $cy - @RadiusY, ' ')" />
+ <xsl:value-of select="concat('A ', @RadiusX, ',', @RadiusY, ' 0 0 1 ', $cx + @RadiusX, ',', $cy, ' ')" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'LineGeometry']">
+ <xsl:value-of select="concat('M ', @StartPoint, ' ')" />
+ <xsl:value-of select="concat('L ', @EndPoint, ' ')" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PathGeometry']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PathGeometry.Figures']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PathFigureCollection']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PathFigure']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PathFigure.Segments']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PathSegmentCollection']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'StartSegment']">
+ <xsl:value-of select="concat('M ', @Point, ' ')" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'CloseSegment']">
+ <xsl:value-of select="'z '" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'LineSegment']">
+ <xsl:value-of select="concat('L ', @Point, ' ')" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'ArcSegment']">
+ <xsl:value-of select="concat('A ', substring-before(@Size, ','), ',', substring-after(@Size, ','), ' ', @XRotation, ' ', number(@LargeArc = 'True'), ' ', number(@Sweepflag = 'True'), ' ', @Point, ' ')" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'BezierSegment']">
+ <xsl:value-of select="concat('C ', @Point1, ' ', @Point2, ' ', @Point3, ' ')" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'QuadraticBezierSegment']">
+ <xsl:value-of select="concat('Q ', @Point1, ' ', @Point2, ' ', @Point3, ' ')" />
+</xsl:template>
+
+<xsl:template name="PrintPolyBezierPoints">
+ <xsl:param name="segments" />
+ <xsl:param name="segmentsize" />
+ <xsl:param name="cursor" />
+ <xsl:text>C </xsl:text>
+ <xsl:value-of select="concat(substring-before($segments, ','), ',')" />
+ <xsl:variable name="segments1"><xsl:value-of select="substring-after($segments, ',')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments1, ' '), ' ')" />
+ <xsl:variable name="segments2"><xsl:value-of select="substring-after($segments1, ' ')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments2, ','), ',')" />
+ <xsl:variable name="segments3"><xsl:value-of select="substring-after($segments2, ',')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments3, ' '), ' ')" />
+ <xsl:variable name="segments4"><xsl:value-of select="substring-after($segments3, ' ')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments4, ','), ',')" />
+ <xsl:variable name="segments5"><xsl:value-of select="substring-after($segments4, ',')" /></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($segments5, ' ')">
+ <xsl:value-of select="concat(substring-before($segments5, ' '), ' ')" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$segments5" />
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="segments6"><xsl:value-of select="substring-after($segments5, ' ')" /></xsl:variable>
+ <xsl:if test="contains($segments6, ' ')">
+ <xsl:call-template name="PrintPolyBezierPoints">
+ <xsl:with-param name="segments" select="$segments6" />
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="PrintPolyLinePoints">
+ <xsl:param name="segments" />
+ <xsl:text>L </xsl:text>
+ <xsl:value-of select="concat(substring-before($segments, ','), ',')" />
+ <xsl:variable name="segments1"><xsl:value-of select="substring-after($segments, ',')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments1, ' '), ' ')" />
+ <xsl:variable name="segments2"><xsl:value-of select="substring-after($segments1, ' ')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments2, ','), ',')" />
+ <xsl:variable name="segments3"><xsl:value-of select="substring-after($segments2, ',')" /></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($segments3, ' ')">
+ <xsl:value-of select="concat(substring-before($segments3, ' '), ' ')" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$segments3" />
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="segments4"><xsl:value-of select="substring-after($segments3, ' ')" /></xsl:variable>
+ <xsl:if test="contains($segments4, ' ')">
+ <xsl:call-template name="PrintPolyLinePoints">
+ <xsl:with-param name="segments" select="$segments4" />
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="PrintQuadraticBezierPoints">
+ <xsl:param name="segments" />
+ <xsl:text>Q </xsl:text>
+ <xsl:value-of select="concat(substring-before($segments, ','), ',')" />
+ <xsl:variable name="segments1"><xsl:value-of select="substring-after($segments, ',')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments1, ' '), ' ')" />
+ <xsl:variable name="segments2"><xsl:value-of select="substring-after($segments1, ' ')" /></xsl:variable>
+ <xsl:value-of select="concat(substring-before($segments2, ','), ',')" />
+ <xsl:variable name="segments3"><xsl:value-of select="substring-after($segments2, ',')" /></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($segments3, ' ')">
+ <xsl:value-of select="concat(substring-before($segments3, ' '), ' ')" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$segments3" />
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="segments4"><xsl:value-of select="substring-after($segments3, ' ')" /></xsl:variable>
+ <xsl:if test="contains($segments4, ' ')">
+ <xsl:call-template name="PrintQuadraticBezierPoints">
+ <xsl:with-param name="segments" select="$segments4" />
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PolyBezierSegment']">
+ <xsl:call-template name="PrintPolyBezierPoints">
+ <xsl:with-param name="segments" select="@Points" />
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PolyLineSegment']">
+ <xsl:call-template name="PrintPolyLinePoints">
+ <xsl:with-param name="segments" select="@Points" />
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'PolyQuadraticBezierSegment']">
+ <xsl:call-template name="PrintQuadraticBezierPoints">
+ <xsl:with-param name="segments" select="@Points" />
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'RectangleGeometry']">
+ <xsl:variable name="rect" select="RectangleGeometry.Rect/Rect" />
+ <xsl:choose>
+ <xsl:when test="$rect">
+ <xsl:value-of select="concat('M ', $rect/@X, ',', $rect/@Y, ' ')" />
+ <xsl:value-of select="concat('H ', $rect/@X + $rect/@Width, ' V ', $rect/@Y + $rect/@Height, ' H ', $rect/@X,' V ', $rect/@Y, ' ')" />
+ </xsl:when>
+ <xsl:when test="@Rect">
+ <xsl:variable name="x" select="substring-before(substring-before(@Rect, ' '), ',')" />
+ <xsl:variable name="y" select="substring-after(substring-before(@Rect, ' '), ',')" />
+ <xsl:variable name="width" select="substring-before(substring-after(@Rect, ' '), ',')" />
+ <xsl:variable name="height" select="substring-after(substring-after(@Rect, ' '), ',')" />
+ <xsl:value-of select="concat('M ', $x, ',', $y, ' ')" />
+ <xsl:value-of select="concat('H ', $x + $width, ' V ', $y + $height, ' H ', $x,' V ', $y, ' ')" />
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!--
+<xsl:template mode="forward" match="*[name(.) = 'GeometryCollection']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+-->
+
+<xsl:template mode="forward" match="*[name(.) = 'GeometryGroup']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'GeometryDrawing']">
+ <path>
+ <xsl:attribute name="d"><xsl:apply-templates select="*[name(.) = 'GeometryDrawing.Geometry']" mode="forward" /></xsl:attribute>
+ <xsl:attribute name="fill"><xsl:value-of select="@Brush" /></xsl:attribute>
+ <xsl:apply-templates mode="forward" select="*[name(.) = 'GeometryDrawing.Pen']" />
+ </path>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'GeometryDrawing.Geometry']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'GeometryDrawing.Pen']">
+ <xsl:variable name="pen" select="*[name(.) = 'Pen']" />
+ <xsl:if test="$pen/@Brush"><xsl:attribute name="stroke"><xsl:value-of select="$pen/@Brush" /></xsl:attribute></xsl:if>
+ <xsl:if test="$pen/@Thickness"><xsl:attribute name="stroke-width"><xsl:value-of select="$pen/@Thickness" /></xsl:attribute></xsl:if>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'CombinedGeometry' or name(.) = 'CombinedGeometry.Geometry1' or name(.) = 'CombinedGeometry.Geometry2']">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/share/extensions/xaml2svg/properties.xsl b/share/extensions/xaml2svg/properties.xsl
index dcb6111bd..75d0aea26 100644
--- a/share/extensions/xaml2svg/properties.xsl
+++ b/share/extensions/xaml2svg/properties.xsl
@@ -1,286 +1,286 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-Version history:
-
-20070907 Initial release
-20070912 TemplateBinding in template_color
-
--->
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:xlink="http://www.w3.org/1999/xlink"
-xmlns:svg="http://www.w3.org/2000/svg"
-xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-xmlns:msxsl="urn:schemas-microsoft-com:xslt">
-<xsl:strip-space elements="*" />
-<xsl:output method="xml" encoding="ISO-8859-1"/>
-
-<xsl:template mode="boundingbox" match="*">
-<xsl:if test="system-property('xsl:vendor') = 'Microsoft'">
- <xsl:choose>
- <xsl:when test="@Canvas.Left and @Canvas.Top and @Width and @Height">
- <boundingbox>
- <xsl:attribute name="x1">
- <xsl:value-of select="@Canvas.Left" />
- </xsl:attribute>
- <xsl:attribute name="x2">
- <xsl:value-of select="@Canvas.Left + @Width" />
- </xsl:attribute>
- <xsl:attribute name="y1">
- <xsl:value-of select="@Canvas.Top" />
- </xsl:attribute>
- <xsl:attribute name="y2">
- <xsl:value-of select="@Canvas.Top + @Height" />
- </xsl:attribute>
- </boundingbox>
- </xsl:when>
- <xsl:when test="count(*) &gt; 0">
- <xsl:variable name="boundingboxes"><xsl:apply-templates mode="boundingbox" select="*" />
- </xsl:variable>
- <boundingbox>
- <xsl:attribute name="x1">
- <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
- <xsl:sort data-type="number" select="@x1" order="ascending"/>
- <xsl:if test="position() = 1"><xsl:value-of select="@x1" /></xsl:if>
- </xsl:for-each>
- </xsl:attribute>
- <xsl:attribute name="x2">
- <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
- <xsl:sort data-type="number" select="@x2" order="descending"/>
- <xsl:if test="position() = 1"><xsl:value-of select="@x2" /></xsl:if>
- </xsl:for-each>
- </xsl:attribute>
- <xsl:attribute name="y1">
- <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
- <xsl:sort data-type="number" select="@y1" order="ascending"/>
- <xsl:if test="position() = 1"><xsl:value-of select="@y1" /></xsl:if>
- </xsl:for-each>
- </xsl:attribute>
- <xsl:attribute name="y2">
- <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
- <xsl:sort data-type="number" select="@y2" order="descending"/>
- <xsl:if test="position() = 1"><xsl:value-of select="@y2" /></xsl:if>
- </xsl:for-each>
- </xsl:attribute>
- </boundingbox>
- </xsl:when>
- </xsl:choose>
-</xsl:if>
-</xsl:template>
-
-<xsl:template mode="svg" match="*">
- <xsl:choose>
- <xsl:when test="false() and name(.) != 'Canvas' and name(.) != 'Image' and name(.) != 'Rect' and name(.) != 'Ellipse' and name(.) != 'Text' and name(.) != 'TextBlock' and (@Canvas.Left or @Canvas.Top)">
- <svg>
- <xsl:if test="@Canvas.Left and @Canvas.Top and @Width and @Height">
- <xsl:attribute name="viewBox">
- <xsl:value-of select="concat(@Canvas.Left, ' ')" />
- <xsl:value-of select="concat(@Canvas.Top, ' ')" />
- <xsl:value-of select="concat(@Width - @Canvas.Left, ' ')" />
- <xsl:value-of select="@Height - @Canvas.Top" />
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@Canvas.Left"><xsl:attribute name="x"><xsl:value-of select="@Canvas.Left" /></xsl:attribute></xsl:if>
- <xsl:if test="@Canvas.Top"><xsl:attribute name="y"><xsl:value-of select="@Canvas.Top" /></xsl:attribute></xsl:if>
- <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
- <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
- <xsl:apply-templates mode="g" select="." />
- </svg>
- </xsl:when>
- <xsl:otherwise><xsl:apply-templates mode="g" select="." /></xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template mode="g" match="*">
- <xsl:choose>
- <xsl:when test="*[(name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')) and not(*[name(.) = 'SolidColorBrush']) or (name(.) = 'Shape.Stroke' or name(.) = concat(name(..), '.Stroke')) and not(*[name(.) = 'SolidColorBrush']) or name(.) = 'UIElement.OpacityMask' or name(.) = concat(name(..), '.OpacityMask') or name(.) = 'UIElement.Clip' or name(.) = concat(name(..), '.Clip')]">
- <g>
- <xsl:apply-templates mode="defs" select="." />
- <xsl:apply-templates mode="forward" select="." />
- </g>
- </xsl:when>
- <xsl:otherwise><xsl:apply-templates mode="forward" select="." /></xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="template_color">
- <xsl:param name="colorspec" />
- <xsl:choose>
- <xsl:when test="contains($colorspec, '#') and (string-length($colorspec) = 7 or string-length($colorspec) = 9)">
- <xsl:value-of select="concat('#', substring($colorspec, string-length($colorspec) - 5, 6))" />
- </xsl:when>
- <xsl:when test="contains($colorspec, '#') and (string-length($colorspec) = 4 or string-length($colorspec) = 5)">
- <xsl:value-of select="concat('#', substring($colorspec, string-length($colorspec) - 5, 3))" />
- </xsl:when>
- <xsl:when test="contains($colorspec, '{StaticResource ')"><xsl:value-of select="concat('url(#', substring-before(substring-after($colorspec, '{StaticResource '), '}'), ')')" /></xsl:when>
- <xsl:when test="contains($colorspec, '{TemplateBinding ')"><xsl:value-of select="concat('url(#', substring-before(substring-after($colorspec, '{TemplateBinding '), '}'), ')')" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="$colorspec" /></xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="template_opacity">
- <xsl:param name="colorspec" />
- <xsl:if test="contains($colorspec, '#') and (string-length($colorspec) = 4 or string-length($colorspec) = 9)">
- <xsl:variable name="opacityspec"><xsl:value-of select="translate(substring($colorspec, 2, 2), 'abcdefgh', 'ABCDEFGH')" /></xsl:variable>
- <xsl:choose>
- <xsl:when test="$opacityspec != 'FF'">
- <xsl:value-of select="format-number(number(string-length(substring-before('0123456789ABCDEF', substring($colorspec, 2, 1))) * 16 + string-length(substring-before('0123456789ABCDEF', substring($colorspec, 3, 1)))) div 255, '#0.00')" />
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
- </xsl:choose>
- </xsl:if>
-</xsl:template>
-
-<xsl:template name="template_properties">
- <xsl:choose>
- <!--
- <xsl:when test="@ID"><xsl:attribute name="id"><xsl:value-of select="@ID" /></xsl:attribute></xsl:when>
- -->
- <xsl:when test="@x:Key"><xsl:attribute name="id"><xsl:value-of select="@x:Key" /></xsl:attribute></xsl:when>
- <xsl:when test="@Name"><xsl:attribute name="id"><xsl:value-of select="@Name" /></xsl:attribute></xsl:when>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="@Fill">
- <xsl:attribute name="fill"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Fill" /></xsl:call-template></xsl:attribute>
- <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Fill" /></xsl:call-template></xsl:variable>
- <xsl:if test="string-length($test_opacity) &gt; 0">
- <xsl:attribute name="fill-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute>
- </xsl:if>
- </xsl:when>
- <xsl:when test="not(name(.) = 'Canvas') and not(@Foreground or *[name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')])"><xsl:attribute name="fill">none</xsl:attribute></xsl:when>
- </xsl:choose>
- <xsl:if test="@Stroke">
- <xsl:attribute name="stroke"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Stroke" /></xsl:call-template></xsl:attribute>
- <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Stroke" /></xsl:call-template></xsl:variable>
- <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="stroke-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
- </xsl:if>
- <xsl:if test="@StrokeThickness"><xsl:attribute name="stroke-width"><xsl:value-of select="@StrokeThickness" /></xsl:attribute></xsl:if>
- <xsl:if test="@StrokeMiterLimit"><xsl:attribute name="stroke-miterlimit"><xsl:value-of select="@StrokeMiterLimit" /></xsl:attribute></xsl:if>
- <xsl:if test="@StrokeDashArray"><xsl:attribute name="stroke-dasharray"><xsl:value-of select="@StrokeDashArray" /></xsl:attribute></xsl:if>
- <xsl:if test="@StrokeDashOffset"><xsl:attribute name="stroke-dashoffset"><xsl:value-of select="@StrokeDashOffset" /></xsl:attribute></xsl:if>
- <xsl:if test="@StrokeLineJoin"><xsl:attribute name="stroke-linejoin"><xsl:value-of select="@StrokeLineJoin" /></xsl:attribute></xsl:if>
- <xsl:if test="@StrokeEndLineCap"><xsl:attribute name="stroke-linecap"><xsl:value-of select="@StrokeEndLineCap" /></xsl:attribute></xsl:if>
- <xsl:if test="@Opacity"><xsl:attribute name="fill-opacity"><xsl:value-of select="@Opacity" /></xsl:attribute></xsl:if>
- <xsl:if test="@Color">
- <xsl:attribute name="fill"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:attribute>
- <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:variable>
- <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="fill-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
- </xsl:if>
- <xsl:if test="@Clip">
- <xsl:choose>
- <xsl:when test="contains(@Clip, '{')"><xsl:attribute name="fill"><xsl:value-of select="concat('url(#', substring-before(substring-after(@Clip, '{'), '}'), ')')" /></xsl:attribute></xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="clip-path"><xsl:value-of select="concat('url(#clippath_', generate-id(.),')')" /></xsl:attribute>
- <defs>
- <clipPath>
- <xsl:attribute name="id"><xsl:value-of select="concat('clippath_', generate-id(.))" /></xsl:attribute>
- <path>
- <xsl:attribute name="d">
- <xsl:choose>
- <xsl:when test="contains(@Clip, 'F1')"><xsl:value-of select="substring-after(@Clip, 'F1')" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="@Clip" /></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute></path>
- </clipPath>
- </defs>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = concat(name(..), '.Resources')]">
- <defs><xsl:apply-templates mode="forward" /></defs>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = concat(name(..), '.Children')]">
- <xsl:apply-templates mode="forward" />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')]">
- <xsl:choose>
- <xsl:when test="not(*[name(.) = 'SolidColorBrush'])">
- <xsl:attribute name="fill"><xsl:value-of select="concat('url(#id_', generate-id(.), ')')" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise><xsl:apply-templates select="*[name(.) = 'SolidColorBrush']" /></xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template mode="defs" match="*[(name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')) and not(*[name(.) = 'SolidColorBrush'])]">
- <defs><xsl:apply-templates mode="forward" /></defs>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Shape.Opacity' or name(.) = concat(name(..), '.Opacity')]">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = concat(name(..), '.Height') or name(.) = concat(name(..), '.Width')]">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Shape.Stroke' or name(.) = concat(name(..), '.Stroke')]">
- <xsl:choose>
- <xsl:when test="not(*[name(.) = 'SolidColorBrush'])">
- <xsl:attribute name="stroke"><xsl:value-of select="concat('url(#id_', generate-id(.), ')')" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise><xsl:apply-templates select="*[name(.) = 'SolidColorBrush']" /></xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template mode="defs" match="*[(name(.) = 'Shape.Stroke' or name(.) = concat(name(..), '.Stroke')) and not(*[name(.) = 'SolidColorBrush'])]">
- <defs><xsl:apply-templates mode="forward" /></defs>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'UIElement.Clip' or name(.) = concat(name(..), '.Clip')]">
- <xsl:attribute name="clip-path"><xsl:value-of select="concat('url(#clippath_', generate-id(.),')')" /></xsl:attribute>
-</xsl:template>
-
-<xsl:template mode="defs" match="*[name(.) = 'UIElement.Clip' or name(.) = concat(name(..), '.Clip')]">
- <defs>
- <clipPath>
- <xsl:attribute name="id"><xsl:value-of select="concat('clippath_', generate-id(.))" /></xsl:attribute>
- <path>
- <xsl:attribute name="d">
- <xsl:apply-templates mode="forward" />
- </xsl:attribute>
- </path>
- </clipPath>
- </defs>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'UIElement.OpacityMask' or name(.) = concat(name(..), '.OpacityMask')]">
- <xsl:attribute name="mask"><xsl:value-of select="concat('url(#mask_', generate-id(.),')')" /></xsl:attribute>
-</xsl:template>
-
-<xsl:template mode="defs" match="*[name(.) = 'UIElement.OpacityMask' or name(.) = concat(name(..), '.OpacityMask')]">
- <defs>
- <mask>
- <xsl:attribute name="id"><xsl:value-of select="concat('mask_', generate-id(.))" /></xsl:attribute>
- <xsl:apply-templates mode="svg" />
- </mask>
- </defs>
-</xsl:template>
-
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Version history:
+
+20070907 Initial release
+20070912 TemplateBinding in template_color
+
+-->
+
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:svg="http://www.w3.org/2000/svg"
+xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+xmlns:msxsl="urn:schemas-microsoft-com:xslt">
+<xsl:strip-space elements="*" />
+<xsl:output method="xml" encoding="ISO-8859-1"/>
+
+<xsl:template mode="boundingbox" match="*">
+<xsl:if test="system-property('xsl:vendor') = 'Microsoft'">
+ <xsl:choose>
+ <xsl:when test="@Canvas.Left and @Canvas.Top and @Width and @Height">
+ <boundingbox>
+ <xsl:attribute name="x1">
+ <xsl:value-of select="@Canvas.Left" />
+ </xsl:attribute>
+ <xsl:attribute name="x2">
+ <xsl:value-of select="@Canvas.Left + @Width" />
+ </xsl:attribute>
+ <xsl:attribute name="y1">
+ <xsl:value-of select="@Canvas.Top" />
+ </xsl:attribute>
+ <xsl:attribute name="y2">
+ <xsl:value-of select="@Canvas.Top + @Height" />
+ </xsl:attribute>
+ </boundingbox>
+ </xsl:when>
+ <xsl:when test="count(*) &gt; 0">
+ <xsl:variable name="boundingboxes"><xsl:apply-templates mode="boundingbox" select="*" />
+ </xsl:variable>
+ <boundingbox>
+ <xsl:attribute name="x1">
+ <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
+ <xsl:sort data-type="number" select="@x1" order="ascending"/>
+ <xsl:if test="position() = 1"><xsl:value-of select="@x1" /></xsl:if>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:attribute name="x2">
+ <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
+ <xsl:sort data-type="number" select="@x2" order="descending"/>
+ <xsl:if test="position() = 1"><xsl:value-of select="@x2" /></xsl:if>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:attribute name="y1">
+ <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
+ <xsl:sort data-type="number" select="@y1" order="ascending"/>
+ <xsl:if test="position() = 1"><xsl:value-of select="@y1" /></xsl:if>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:attribute name="y2">
+ <xsl:for-each select="msxsl:node-set($boundingboxes)/boundingbox">
+ <xsl:sort data-type="number" select="@y2" order="descending"/>
+ <xsl:if test="position() = 1"><xsl:value-of select="@y2" /></xsl:if>
+ </xsl:for-each>
+ </xsl:attribute>
+ </boundingbox>
+ </xsl:when>
+ </xsl:choose>
+</xsl:if>
+</xsl:template>
+
+<xsl:template mode="svg" match="*">
+ <xsl:choose>
+ <xsl:when test="false() and name(.) != 'Canvas' and name(.) != 'Image' and name(.) != 'Rect' and name(.) != 'Ellipse' and name(.) != 'Text' and name(.) != 'TextBlock' and (@Canvas.Left or @Canvas.Top)">
+ <svg>
+ <xsl:if test="@Canvas.Left and @Canvas.Top and @Width and @Height">
+ <xsl:attribute name="viewBox">
+ <xsl:value-of select="concat(@Canvas.Left, ' ')" />
+ <xsl:value-of select="concat(@Canvas.Top, ' ')" />
+ <xsl:value-of select="concat(@Width - @Canvas.Left, ' ')" />
+ <xsl:value-of select="@Height - @Canvas.Top" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@Canvas.Left"><xsl:attribute name="x"><xsl:value-of select="@Canvas.Left" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Canvas.Top"><xsl:attribute name="y"><xsl:value-of select="@Canvas.Top" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
+ <xsl:apply-templates mode="g" select="." />
+ </svg>
+ </xsl:when>
+ <xsl:otherwise><xsl:apply-templates mode="g" select="." /></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template mode="g" match="*">
+ <xsl:choose>
+ <xsl:when test="*[(name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')) and not(*[name(.) = 'SolidColorBrush']) or (name(.) = 'Shape.Stroke' or name(.) = concat(name(..), '.Stroke')) and not(*[name(.) = 'SolidColorBrush']) or name(.) = 'UIElement.OpacityMask' or name(.) = concat(name(..), '.OpacityMask') or name(.) = 'UIElement.Clip' or name(.) = concat(name(..), '.Clip')]">
+ <g>
+ <xsl:apply-templates mode="defs" select="." />
+ <xsl:apply-templates mode="forward" select="." />
+ </g>
+ </xsl:when>
+ <xsl:otherwise><xsl:apply-templates mode="forward" select="." /></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="template_color">
+ <xsl:param name="colorspec" />
+ <xsl:choose>
+ <xsl:when test="contains($colorspec, '#') and (string-length($colorspec) = 7 or string-length($colorspec) = 9)">
+ <xsl:value-of select="concat('#', substring($colorspec, string-length($colorspec) - 5, 6))" />
+ </xsl:when>
+ <xsl:when test="contains($colorspec, '#') and (string-length($colorspec) = 4 or string-length($colorspec) = 5)">
+ <xsl:value-of select="concat('#', substring($colorspec, string-length($colorspec) - 5, 3))" />
+ </xsl:when>
+ <xsl:when test="contains($colorspec, '{StaticResource ')"><xsl:value-of select="concat('url(#', substring-before(substring-after($colorspec, '{StaticResource '), '}'), ')')" /></xsl:when>
+ <xsl:when test="contains($colorspec, '{TemplateBinding ')"><xsl:value-of select="concat('url(#', substring-before(substring-after($colorspec, '{TemplateBinding '), '}'), ')')" /></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$colorspec" /></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="template_opacity">
+ <xsl:param name="colorspec" />
+ <xsl:if test="contains($colorspec, '#') and (string-length($colorspec) = 4 or string-length($colorspec) = 9)">
+ <xsl:variable name="opacityspec"><xsl:value-of select="translate(substring($colorspec, 2, 2), 'abcdefgh', 'ABCDEFGH')" /></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$opacityspec != 'FF'">
+ <xsl:value-of select="format-number(number(string-length(substring-before('0123456789ABCDEF', substring($colorspec, 2, 1))) * 16 + string-length(substring-before('0123456789ABCDEF', substring($colorspec, 3, 1)))) div 255, '#0.00')" />
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="template_properties">
+ <xsl:choose>
+ <!--
+ <xsl:when test="@ID"><xsl:attribute name="id"><xsl:value-of select="@ID" /></xsl:attribute></xsl:when>
+ -->
+ <xsl:when test="@x:Key"><xsl:attribute name="id"><xsl:value-of select="@x:Key" /></xsl:attribute></xsl:when>
+ <xsl:when test="@Name"><xsl:attribute name="id"><xsl:value-of select="@Name" /></xsl:attribute></xsl:when>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@Fill">
+ <xsl:attribute name="fill"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Fill" /></xsl:call-template></xsl:attribute>
+ <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Fill" /></xsl:call-template></xsl:variable>
+ <xsl:if test="string-length($test_opacity) &gt; 0">
+ <xsl:attribute name="fill-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="not(name(.) = 'Canvas') and not(@Foreground or *[name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')])"><xsl:attribute name="fill">none</xsl:attribute></xsl:when>
+ </xsl:choose>
+ <xsl:if test="@Stroke">
+ <xsl:attribute name="stroke"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Stroke" /></xsl:call-template></xsl:attribute>
+ <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Stroke" /></xsl:call-template></xsl:variable>
+ <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="stroke-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
+ </xsl:if>
+ <xsl:if test="@StrokeThickness"><xsl:attribute name="stroke-width"><xsl:value-of select="@StrokeThickness" /></xsl:attribute></xsl:if>
+ <xsl:if test="@StrokeMiterLimit"><xsl:attribute name="stroke-miterlimit"><xsl:value-of select="@StrokeMiterLimit" /></xsl:attribute></xsl:if>
+ <xsl:if test="@StrokeDashArray"><xsl:attribute name="stroke-dasharray"><xsl:value-of select="@StrokeDashArray" /></xsl:attribute></xsl:if>
+ <xsl:if test="@StrokeDashOffset"><xsl:attribute name="stroke-dashoffset"><xsl:value-of select="@StrokeDashOffset" /></xsl:attribute></xsl:if>
+ <xsl:if test="@StrokeLineJoin"><xsl:attribute name="stroke-linejoin"><xsl:value-of select="@StrokeLineJoin" /></xsl:attribute></xsl:if>
+ <xsl:if test="@StrokeEndLineCap"><xsl:attribute name="stroke-linecap"><xsl:value-of select="@StrokeEndLineCap" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Opacity"><xsl:attribute name="fill-opacity"><xsl:value-of select="@Opacity" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Color">
+ <xsl:attribute name="fill"><xsl:call-template name="template_color"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:attribute>
+ <xsl:variable name="test_opacity"><xsl:call-template name="template_opacity"><xsl:with-param name="colorspec" select="@Color" /></xsl:call-template></xsl:variable>
+ <xsl:if test="string-length($test_opacity) &gt; 0"><xsl:attribute name="fill-opacity"><xsl:value-of select="$test_opacity" /></xsl:attribute></xsl:if>
+ </xsl:if>
+ <xsl:if test="@Clip">
+ <xsl:choose>
+ <xsl:when test="contains(@Clip, '{')"><xsl:attribute name="fill"><xsl:value-of select="concat('url(#', substring-before(substring-after(@Clip, '{'), '}'), ')')" /></xsl:attribute></xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="clip-path"><xsl:value-of select="concat('url(#clippath_', generate-id(.),')')" /></xsl:attribute>
+ <defs>
+ <clipPath>
+ <xsl:attribute name="id"><xsl:value-of select="concat('clippath_', generate-id(.))" /></xsl:attribute>
+ <path>
+ <xsl:attribute name="d">
+ <xsl:choose>
+ <xsl:when test="contains(@Clip, 'F1')"><xsl:value-of select="substring-after(@Clip, 'F1')" /></xsl:when>
+ <xsl:otherwise><xsl:value-of select="@Clip" /></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute></path>
+ </clipPath>
+ </defs>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = concat(name(..), '.Resources')]">
+ <defs><xsl:apply-templates mode="forward" /></defs>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = concat(name(..), '.Children')]">
+ <xsl:apply-templates mode="forward" />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')]">
+ <xsl:choose>
+ <xsl:when test="not(*[name(.) = 'SolidColorBrush'])">
+ <xsl:attribute name="fill"><xsl:value-of select="concat('url(#id_', generate-id(.), ')')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise><xsl:apply-templates select="*[name(.) = 'SolidColorBrush']" /></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template mode="defs" match="*[(name(.) = 'Shape.Fill' or name(.) = concat(name(..), '.Fill')) and not(*[name(.) = 'SolidColorBrush'])]">
+ <defs><xsl:apply-templates mode="forward" /></defs>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Shape.Opacity' or name(.) = concat(name(..), '.Opacity')]">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = concat(name(..), '.Height') or name(.) = concat(name(..), '.Width')]">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Shape.Stroke' or name(.) = concat(name(..), '.Stroke')]">
+ <xsl:choose>
+ <xsl:when test="not(*[name(.) = 'SolidColorBrush'])">
+ <xsl:attribute name="stroke"><xsl:value-of select="concat('url(#id_', generate-id(.), ')')" /></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise><xsl:apply-templates select="*[name(.) = 'SolidColorBrush']" /></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template mode="defs" match="*[(name(.) = 'Shape.Stroke' or name(.) = concat(name(..), '.Stroke')) and not(*[name(.) = 'SolidColorBrush'])]">
+ <defs><xsl:apply-templates mode="forward" /></defs>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'UIElement.Clip' or name(.) = concat(name(..), '.Clip')]">
+ <xsl:attribute name="clip-path"><xsl:value-of select="concat('url(#clippath_', generate-id(.),')')" /></xsl:attribute>
+</xsl:template>
+
+<xsl:template mode="defs" match="*[name(.) = 'UIElement.Clip' or name(.) = concat(name(..), '.Clip')]">
+ <defs>
+ <clipPath>
+ <xsl:attribute name="id"><xsl:value-of select="concat('clippath_', generate-id(.))" /></xsl:attribute>
+ <path>
+ <xsl:attribute name="d">
+ <xsl:apply-templates mode="forward" />
+ </xsl:attribute>
+ </path>
+ </clipPath>
+ </defs>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'UIElement.OpacityMask' or name(.) = concat(name(..), '.OpacityMask')]">
+ <xsl:attribute name="mask"><xsl:value-of select="concat('url(#mask_', generate-id(.),')')" /></xsl:attribute>
+</xsl:template>
+
+<xsl:template mode="defs" match="*[name(.) = 'UIElement.OpacityMask' or name(.) = concat(name(..), '.OpacityMask')]">
+ <defs>
+ <mask>
+ <xsl:attribute name="id"><xsl:value-of select="concat('mask_', generate-id(.))" /></xsl:attribute>
+ <xsl:apply-templates mode="svg" />
+ </mask>
+ </defs>
+</xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/share/extensions/xaml2svg/shapes.xsl b/share/extensions/xaml2svg/shapes.xsl
index db300154e..c28b027e1 100644
--- a/share/extensions/xaml2svg/shapes.xsl
+++ b/share/extensions/xaml2svg/shapes.xsl
@@ -1,171 +1,171 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-Version history:
-
-20070907 Initial release
-20070912 starts-with(@Data, 'F0 ') to strip of F0 from path data
-20070912 nonzero and evenodd were outside xsl:attribute (reported by bulia byak and Ted Gould)
-
--->
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:xlink="http://www.w3.org/1999/xlink"
-xmlns:svg="http://www.w3.org/2000/svg"
-xmlns:def="Definition"
-exclude-result-prefixes="def">
-<xsl:strip-space elements="*" />
-<xsl:output method="xml" encoding="ISO-8859-1"/>
-
-<xsl:template mode="forward" match="*[name(.) = 'Path']">
- <path>
- <xsl:if test="@Data">
- <xsl:attribute name="d">
- <xsl:choose>
- <xsl:when test="starts-with(@Data, 'F0 ')"><xsl:value-of select="substring-after(@Data, 'F0 ')" /></xsl:when>
- <xsl:when test="starts-with(@Data, 'F1 ')"><xsl:value-of select="substring-after(@Data, 'F1 ')" /></xsl:when>
- <xsl:otherwise><xsl:value-of select="@Data" /></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="@FillRule = 'nonzero' or starts-with(@Data, 'F1 ')"><xsl:attribute name="fill-rule">nonzero</xsl:attribute></xsl:when>
- <xsl:when test="@FillRule = 'evenodd' or starts-with(@Data, 'F0 ')"><xsl:attribute name="fill-rule">evenodd</xsl:attribute></xsl:when>
- </xsl:choose>
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:apply-templates mode="forward" />
- </path>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Path.Data']">
- <xsl:attribute name="d">
- <xsl:apply-templates mode="forward" />
- </xsl:attribute>
- <xsl:if test="@FillRule">
- <xsl:attribute name="fill-rule">
- <xsl:choose>
- <xsl:when test="@FillRule = 'nonzero'">nonzero</xsl:when>
- <xsl:otherwise>evenodd</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Line']">
- <line>
- <xsl:if test="@X1"><xsl:attribute name="x1"><xsl:value-of select="@X1" /></xsl:attribute></xsl:if>
- <xsl:if test="@Y1"><xsl:attribute name="y1"><xsl:value-of select="@Y1" /></xsl:attribute></xsl:if>
- <xsl:if test="@X2"><xsl:attribute name="x2"><xsl:value-of select="@X2" /></xsl:attribute></xsl:if>
- <xsl:if test="@Y2"><xsl:attribute name="y2"><xsl:value-of select="@Y2" /></xsl:attribute></xsl:if>
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:apply-templates mode="forward" />
- </line>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Ellipse']">
- <ellipse>
- <xsl:if test="@Width">
- <xsl:attribute name="rx"><xsl:value-of select="@Width div 2" /></xsl:attribute>
- <xsl:if test="@Canvas.Left">
- <xsl:attribute name="cx"><xsl:value-of select="@Canvas.Left + @Width div 2" /></xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:if test="@Height">
- <xsl:attribute name="ry"><xsl:value-of select="@Height div 2" /></xsl:attribute>
- <xsl:if test="@Canvas.Top">
- <xsl:attribute name="cy"><xsl:value-of select="@Canvas.Top + @Height div 2" /></xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:apply-templates mode="forward" />
- </ellipse>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Rectangle']">
- <rect>
- <xsl:if test="@Canvas.Left"><xsl:attribute name="x"><xsl:value-of select="@Canvas.Left" /></xsl:attribute></xsl:if>
- <xsl:if test="@Canvas.Top"><xsl:attribute name="y"><xsl:value-of select="@Canvas.Top" /></xsl:attribute></xsl:if>
- <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
- <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
- <xsl:if test="@RadiusX"><xsl:attribute name="rx"><xsl:value-of select="@RadiusX" /></xsl:attribute></xsl:if>
- <xsl:if test="@RadiusY"><xsl:attribute name="ry"><xsl:value-of select="@RadiusY" /></xsl:attribute></xsl:if>
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:call-template name="template_timeline_animations" />
- <xsl:apply-templates mode="forward" />
- </rect>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Polyline']">
- <polyline>
- <xsl:if test="@Points"><xsl:attribute name="points"><xsl:value-of select="@Points" /></xsl:attribute></xsl:if>
- <xsl:attribute name="fill-rule">
- <xsl:choose>
- <xsl:when test="@FillRule = 'nonzero'">nonzero</xsl:when>
- <xsl:when test="@FillRule = 'evenodd'">evenodd</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:apply-templates mode="forward" />
- </polyline>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Polygon']">
- <polygon>
- <xsl:if test="@Points"><xsl:attribute name="points"><xsl:value-of select="@Points" /></xsl:attribute></xsl:if>
- <xsl:attribute name="fill-rule">
- <xsl:choose>
- <xsl:when test="@FillRule = 'nonzero'">nonzero</xsl:when>
- <xsl:when test="@FillRule = 'evenodd'">evenodd</xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:apply-templates mode="forward" />
- </polygon>
-</xsl:template>
-
-<xsl:template mode="forward" match="*[name(.) = 'Glyphs']">
- <defs>
- <font-face>
- <xsl:attribute name="font-family"><xsl:value-of select="concat('TrueType ', generate-id(.))" /></xsl:attribute>
- <font-face-src><font-face-uri><xsl:attribute name="xlink:href"><xsl:value-of select="@FontUri" /></xsl:attribute></font-face-uri></font-face-src>
- </font-face>
- </defs>
- <text>
- <xsl:if test="@FontRenderingEmSize"><xsl:attribute name="font-size"><xsl:value-of select="@FontRenderingEmSize" /></xsl:attribute></xsl:if>
- <xsl:if test="@OriginX"><xsl:attribute name="x"><xsl:value-of select="@OriginX" /></xsl:attribute></xsl:if>
- <xsl:if test="@OriginY"><xsl:attribute name="y"><xsl:value-of select="@OriginY" /></xsl:attribute></xsl:if>
- <xsl:attribute name="font-family"><xsl:value-of select="concat('TrueType ', generate-id(.))" /></xsl:attribute>
- <xsl:call-template name="template_properties" />
- <xsl:call-template name="template_transform" />
- <xsl:if test="@UnicodeString"><xsl:value-of select="@UnicodeString" /></xsl:if>
- </text>
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Version history:
+
+20070907 Initial release
+20070912 starts-with(@Data, 'F0 ') to strip of F0 from path data
+20070912 nonzero and evenodd were outside xsl:attribute (reported by bulia byak and Ted Gould)
+
+-->
+
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:svg="http://www.w3.org/2000/svg"
+xmlns:def="Definition"
+exclude-result-prefixes="def">
+<xsl:strip-space elements="*" />
+<xsl:output method="xml" encoding="ISO-8859-1"/>
+
+<xsl:template mode="forward" match="*[name(.) = 'Path']">
+ <path>
+ <xsl:if test="@Data">
+ <xsl:attribute name="d">
+ <xsl:choose>
+ <xsl:when test="starts-with(@Data, 'F0 ')"><xsl:value-of select="substring-after(@Data, 'F0 ')" /></xsl:when>
+ <xsl:when test="starts-with(@Data, 'F1 ')"><xsl:value-of select="substring-after(@Data, 'F1 ')" /></xsl:when>
+ <xsl:otherwise><xsl:value-of select="@Data" /></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@FillRule = 'nonzero' or starts-with(@Data, 'F1 ')"><xsl:attribute name="fill-rule">nonzero</xsl:attribute></xsl:when>
+ <xsl:when test="@FillRule = 'evenodd' or starts-with(@Data, 'F0 ')"><xsl:attribute name="fill-rule">evenodd</xsl:attribute></xsl:when>
+ </xsl:choose>
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:apply-templates mode="forward" />
+ </path>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Path.Data']">
+ <xsl:attribute name="d">
+ <xsl:apply-templates mode="forward" />
+ </xsl:attribute>
+ <xsl:if test="@FillRule">
+ <xsl:attribute name="fill-rule">
+ <xsl:choose>
+ <xsl:when test="@FillRule = 'nonzero'">nonzero</xsl:when>
+ <xsl:otherwise>evenodd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Line']">
+ <line>
+ <xsl:if test="@X1"><xsl:attribute name="x1"><xsl:value-of select="@X1" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Y1"><xsl:attribute name="y1"><xsl:value-of select="@Y1" /></xsl:attribute></xsl:if>
+ <xsl:if test="@X2"><xsl:attribute name="x2"><xsl:value-of select="@X2" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Y2"><xsl:attribute name="y2"><xsl:value-of select="@Y2" /></xsl:attribute></xsl:if>
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:apply-templates mode="forward" />
+ </line>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Ellipse']">
+ <ellipse>
+ <xsl:if test="@Width">
+ <xsl:attribute name="rx"><xsl:value-of select="@Width div 2" /></xsl:attribute>
+ <xsl:if test="@Canvas.Left">
+ <xsl:attribute name="cx"><xsl:value-of select="@Canvas.Left + @Width div 2" /></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="@Height">
+ <xsl:attribute name="ry"><xsl:value-of select="@Height div 2" /></xsl:attribute>
+ <xsl:if test="@Canvas.Top">
+ <xsl:attribute name="cy"><xsl:value-of select="@Canvas.Top + @Height div 2" /></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:apply-templates mode="forward" />
+ </ellipse>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Rectangle']">
+ <rect>
+ <xsl:if test="@Canvas.Left"><xsl:attribute name="x"><xsl:value-of select="@Canvas.Left" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Canvas.Top"><xsl:attribute name="y"><xsl:value-of select="@Canvas.Top" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Width"><xsl:attribute name="width"><xsl:value-of select="@Width" /></xsl:attribute></xsl:if>
+ <xsl:if test="@Height"><xsl:attribute name="height"><xsl:value-of select="@Height" /></xsl:attribute></xsl:if>
+ <xsl:if test="@RadiusX"><xsl:attribute name="rx"><xsl:value-of select="@RadiusX" /></xsl:attribute></xsl:if>
+ <xsl:if test="@RadiusY"><xsl:attribute name="ry"><xsl:value-of select="@RadiusY" /></xsl:attribute></xsl:if>
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:call-template name="template_timeline_animations" />
+ <xsl:apply-templates mode="forward" />
+ </rect>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Polyline']">
+ <polyline>
+ <xsl:if test="@Points"><xsl:attribute name="points"><xsl:value-of select="@Points" /></xsl:attribute></xsl:if>
+ <xsl:attribute name="fill-rule">
+ <xsl:choose>
+ <xsl:when test="@FillRule = 'nonzero'">nonzero</xsl:when>
+ <xsl:when test="@FillRule = 'evenodd'">evenodd</xsl:when>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:apply-templates mode="forward" />
+ </polyline>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Polygon']">
+ <polygon>
+ <xsl:if test="@Points"><xsl:attribute name="points"><xsl:value-of select="@Points" /></xsl:attribute></xsl:if>
+ <xsl:attribute name="fill-rule">
+ <xsl:choose>
+ <xsl:when test="@FillRule = 'nonzero'">nonzero</xsl:when>
+ <xsl:when test="@FillRule = 'evenodd'">evenodd</xsl:when>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:apply-templates mode="forward" />
+ </polygon>
+</xsl:template>
+
+<xsl:template mode="forward" match="*[name(.) = 'Glyphs']">
+ <defs>
+ <font-face>
+ <xsl:attribute name="font-family"><xsl:value-of select="concat('TrueType ', generate-id(.))" /></xsl:attribute>
+ <font-face-src><font-face-uri><xsl:attribute name="xlink:href"><xsl:value-of select="@FontUri" /></xsl:attribute></font-face-uri></font-face-src>
+ </font-face>
+ </defs>
+ <text>
+ <xsl:if test="@FontRenderingEmSize"><xsl:attribute name="font-size"><xsl:value-of select="@FontRenderingEmSize" /></xsl:attribute></xsl:if>
+ <xsl:if test="@OriginX"><xsl:attribute name="x"><xsl:value-of select="@OriginX" /></xsl:attribute></xsl:if>
+ <xsl:if test="@OriginY"><xsl:attribute name="y"><xsl:value-of select="@OriginY" /></xsl:attribute></xsl:if>
+ <xsl:attribute name="font-family"><xsl:value-of select="concat('TrueType ', generate-id(.))" /></xsl:attribute>
+ <xsl:call-template name="template_properties" />
+ <xsl:call-template name="template_transform" />
+ <xsl:if test="@UnicodeString"><xsl:value-of select="@UnicodeString" /></xsl:if>
+ </text>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/share/extensions/xaml2svg/transform.xsl b/share/extensions/xaml2svg/transform.xsl
index 66312dfcb..3d41cf408 100644
--- a/share/extensions/xaml2svg/transform.xsl
+++ b/share/extensions/xaml2svg/transform.xsl
@@ -1,120 +1,120 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
--->
-
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-xmlns:xlink="http://www.w3.org/1999/xlink"
-xmlns:svg="http://www.w3.org/2000/svg"
-xmlns:def="Definition"
-exclude-result-prefixes="def">
-<xsl:strip-space elements="*" />
-<xsl:output method="xml" encoding="ISO-8859-1"/>
-
-<xsl:template name="template_transform">
- <xsl:variable name="transform_value">
- <xsl:if test="@Transform"><xsl:value-of select="@Transform" /></xsl:if>
- <xsl:apply-templates select="*[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]/*" />
- </xsl:variable>
- <xsl:if test="string-length($transform_value) &gt; 0"><xsl:attribute name="transform"><xsl:value-of select="$transform_value" /></xsl:attribute></xsl:if>
-</xsl:template>
-
-<xsl:template name="template_gradienttransform">
- <xsl:variable name="transform_value">
- <xsl:if test="@Canvas.Left and @Canvas.Top"><xsl:value-of select="concat('translate(', @Canvas.Left, ',', @Canvas.Top, ')')" /></xsl:if>
- <xsl:if test="@Transform"><xsl:value-of select="@Transform" /></xsl:if>
- <xsl:apply-templates select="*[name(.) = 'Brush.Transform' or name(.) = concat(name(..), '.Transform')]" />
- <xsl:apply-templates select="*[name(.) = 'Brush.RelativeTransform' or name(.) = concat(name(..), '.RelativeTransform')]" />
- </xsl:variable>
- <xsl:if test="string-length($transform_value) &gt; 0"><xsl:attribute name="gradientTransform"><xsl:value-of select="$transform_value" /></xsl:attribute></xsl:if>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]">
- <!-- xsl:apply-templates /-->
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'Brush.Transform' or name(.) = concat(name(..), '.Transform')]">
- <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'Brush.RelativeTransform' or name(.) = concat(name(..), '.RelativeTransform')]">
- <xsl:apply-templates />
-</xsl:template>
-
-<!--
-<xsl:template match="*[name(.) = 'TransformCollection' or name(.) = 'TransformGroup']">
- <xsl:apply-templates />
-</xsl:template>
--->
-<xsl:template match="*[name(.) = 'TransformGroup']">
- <xsl:apply-templates />
-</xsl:template>
-
-
-<!--
-<xsl:template mode="forward" match="*[name(.) = 'TransformDecorator']">
- <g>
- <xsl:attribute name="transform">
- <xsl:if test="@Transform"><xsl:value-of select="@Transform" /></xsl:if>
- <xsl:apply-templates select="*[name(.) = 'TransformDecorator.Transform']/*" />
- </xsl:attribute>
- <xsl:apply-templates select="*[name(.) = 'TransformDecorator.Transform']/*/*" />
- <xsl:apply-templates mode="forward" select="*[name(.) != 'TransformDecorator.Transform']" />
- </g>
-</xsl:template>
--->
-
-<xsl:template match="*[name(.) = 'TranslateTransform']">
- <xsl:if test="@X">
- <xsl:value-of select="concat('translate(', @X)" />
- <xsl:if test="@Y"><xsl:value-of select="concat(', ', @Y)" /></xsl:if>
- <xsl:value-of select="') '" />
- </xsl:if>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'ScaleTransform']">
- <xsl:if test="@ScaleX">
- <xsl:value-of select="concat('scale(', @ScaleX)" />
- <xsl:if test="@ScaleY"><xsl:value-of select="concat(', ', @ScaleY)" /></xsl:if>
- <xsl:value-of select="') '" />
- </xsl:if>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'RotateTransform']">
- <xsl:if test="@Angle">
- <xsl:value-of select="concat('rotate(', @Angle)" />
- <xsl:if test="@Center"><xsl:value-of select="concat(',', @Center)" /></xsl:if>
- <xsl:value-of select="') '" />
- </xsl:if>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'SkewTransform']">
- <xsl:if test="@AngleX"><xsl:value-of select="concat('skewX(', @AngleX,') ')" /></xsl:if>
- <xsl:if test="@AngleY"><xsl:value-of select="concat('skewY(', @AngleY,') ')" /></xsl:if>
-</xsl:template>
-
-<xsl:template match="*[name(.) = 'MatrixTransform']">
- <xsl:if test="@Matrix"><xsl:value-of select="concat('matrix(', @Matrix,') ')" /></xsl:if>
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright (c) 2005-2007 Toine de Greef (a.degreef@chello.nl)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+-->
+
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:svg="http://www.w3.org/2000/svg"
+xmlns:def="Definition"
+exclude-result-prefixes="def">
+<xsl:strip-space elements="*" />
+<xsl:output method="xml" encoding="ISO-8859-1"/>
+
+<xsl:template name="template_transform">
+ <xsl:variable name="transform_value">
+ <xsl:if test="@Transform"><xsl:value-of select="@Transform" /></xsl:if>
+ <xsl:apply-templates select="*[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]/*" />
+ </xsl:variable>
+ <xsl:if test="string-length($transform_value) &gt; 0"><xsl:attribute name="transform"><xsl:value-of select="$transform_value" /></xsl:attribute></xsl:if>
+</xsl:template>
+
+<xsl:template name="template_gradienttransform">
+ <xsl:variable name="transform_value">
+ <xsl:if test="@Canvas.Left and @Canvas.Top"><xsl:value-of select="concat('translate(', @Canvas.Left, ',', @Canvas.Top, ')')" /></xsl:if>
+ <xsl:if test="@Transform"><xsl:value-of select="@Transform" /></xsl:if>
+ <xsl:apply-templates select="*[name(.) = 'Brush.Transform' or name(.) = concat(name(..), '.Transform')]" />
+ <xsl:apply-templates select="*[name(.) = 'Brush.RelativeTransform' or name(.) = concat(name(..), '.RelativeTransform')]" />
+ </xsl:variable>
+ <xsl:if test="string-length($transform_value) &gt; 0"><xsl:attribute name="gradientTransform"><xsl:value-of select="$transform_value" /></xsl:attribute></xsl:if>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'UIElement.RenderTransform' or name(.) = 'Shape.RenderTransform' or name(.) = concat(name(..), '.RenderTransform')]">
+ <!-- xsl:apply-templates /-->
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'Brush.Transform' or name(.) = concat(name(..), '.Transform')]">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'Brush.RelativeTransform' or name(.) = concat(name(..), '.RelativeTransform')]">
+ <xsl:apply-templates />
+</xsl:template>
+
+<!--
+<xsl:template match="*[name(.) = 'TransformCollection' or name(.) = 'TransformGroup']">
+ <xsl:apply-templates />
+</xsl:template>
+-->
+<xsl:template match="*[name(.) = 'TransformGroup']">
+ <xsl:apply-templates />
+</xsl:template>
+
+
+<!--
+<xsl:template mode="forward" match="*[name(.) = 'TransformDecorator']">
+ <g>
+ <xsl:attribute name="transform">
+ <xsl:if test="@Transform"><xsl:value-of select="@Transform" /></xsl:if>
+ <xsl:apply-templates select="*[name(.) = 'TransformDecorator.Transform']/*" />
+ </xsl:attribute>
+ <xsl:apply-templates select="*[name(.) = 'TransformDecorator.Transform']/*/*" />
+ <xsl:apply-templates mode="forward" select="*[name(.) != 'TransformDecorator.Transform']" />
+ </g>
+</xsl:template>
+-->
+
+<xsl:template match="*[name(.) = 'TranslateTransform']">
+ <xsl:if test="@X">
+ <xsl:value-of select="concat('translate(', @X)" />
+ <xsl:if test="@Y"><xsl:value-of select="concat(', ', @Y)" /></xsl:if>
+ <xsl:value-of select="') '" />
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'ScaleTransform']">
+ <xsl:if test="@ScaleX">
+ <xsl:value-of select="concat('scale(', @ScaleX)" />
+ <xsl:if test="@ScaleY"><xsl:value-of select="concat(', ', @ScaleY)" /></xsl:if>
+ <xsl:value-of select="') '" />
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'RotateTransform']">
+ <xsl:if test="@Angle">
+ <xsl:value-of select="concat('rotate(', @Angle)" />
+ <xsl:if test="@Center"><xsl:value-of select="concat(',', @Center)" /></xsl:if>
+ <xsl:value-of select="') '" />
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'SkewTransform']">
+ <xsl:if test="@AngleX"><xsl:value-of select="concat('skewX(', @AngleX,') ')" /></xsl:if>
+ <xsl:if test="@AngleY"><xsl:value-of select="concat('skewY(', @AngleY,') ')" /></xsl:if>
+</xsl:template>
+
+<xsl:template match="*[name(.) = 'MatrixTransform']">
+ <xsl:if test="@Matrix"><xsl:value-of select="concat('matrix(', @Matrix,') ')" /></xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/share/keys/corel-draw-x4.xml b/share/keys/corel-draw-x4.xml
index e5360c76f..b7259ea4b 100644
--- a/share/keys/corel-draw-x4.xml
+++ b/share/keys/corel-draw-x4.xml
@@ -13,7 +13,7 @@ See default.xml for more information.
<!-- Shaper -->
<bind key="F10" action="ToolNode" display="true"/>
-
+
<!-- Pen -->
<bind key="F12" action="ToolPen" display="true"/>
diff --git a/share/keys/macromedia-freehand-mx.xml b/share/keys/macromedia-freehand-mx.xml
index e2aee42c7..9297f4d2b 100644
--- a/share/keys/macromedia-freehand-mx.xml
+++ b/share/keys/macromedia-freehand-mx.xml
@@ -1,434 +1,434 @@
-<?xml version="1.0"?>
-<keys name="Macromedia Freehand">
-
-<!--
-This is an alternative set of keyboard shortcuts for Inkscape,
-in the style of Macromedia Freehand.
-This set is intended to help experienced Freehand users get
-started with Inkscape. It is not intended for long term use.
-
-Users are encouraged to learn how to use Inkscape which has more
-comprehensive keyboard shortcuts for all kind of features. Also
-users advised to get directly involved and provide feedback to
-developers on how best to improve the default settings for all users.
-
-Use the Preferences dialog to choose these shortcuts or
-if it doesn't exist yet be sure to check the request tracker and
-encourage the developers to add the option to the user interface.
-In the meantime to manually enable these keyboard shortcuts replace the file
-inkscape/share/keys/default.xml with this file.
--->
-
-<!--
-Macromedia Freehand MX toplevel menus:
-File, Edit, View, Modify, Text, Xtras, Window, Help.
--->
-
-<!-- Tools -->
-
- <!-- Selector (Inkscape). Pointer (Freehand). -->
- <bind key="F10" modifiers="Shift" action="ToolSelector" />
- <!-- Holding down the Control (Ctrl) key also toggles back to the Pointer -->
-
- <!-- Node (Inkscape). Subselect (Freehand). No key shortcut. -->
- <bind key="" modifiers="" action="ToolNode" display="false"/>
-
- <bind key="F1" modifiers="Shift" action="ToolRect" display="true"/>
-
- <!-- Freehand has seperate tools for Ellipse and Arc unlike Inkscape. -->
- <bind key="F3" modifiers="Shift" action="ToolArc" display="true"/>
-
- <!-- Star (Inkscape). Polygon (Freehand) inlcudes star options. -->
- <bind key="F8" modifiers="Shift" action="ToolStar" />
-
- <!-- Freehand does not use a keybinding for the Spiral tool.
- Freehand uses F9 for the Reflect Tool. Including anyway for now. -->
- <bind key="F9" action="ToolSpiral" display="true"/>
-
- <bind key="F5" modifiers="Shift" action="ToolPencil" display="true"/>
-
- <bind key="F6" modifiers="Shift" action="ToolPen" display="true"/>
- <!-- Freehand does not use a keybinding for the Calligraphic Pen tool.
- The Calligraphic Pen is hidden under the Pencil tool -->
-
- <bind key="F9" modifiers="Ctrl,Shift" action="ToolText" display="true"/>
-
- <!-- Freehand does not include equivalent tool. Fireworks oddly enough
- has a more advanced gradient tool similar to Inkscape. -->
- <bind key="g" action="ToolGradient" />
- <bind key="G" action="ToolGradient" />
-
- <!-- Freehand includes a Connector tool but no keybinding for it. -->
- <bind key="" modifiers="" action="ToolConnector" display="true"/>
-
- <!-- Freehand includes an Eyedropper tool but no keybinding for it. -->
- <bind key="" action="ToolDropper" display="true"/>
-
-<!-- File -->
-
- <bind key="n" modifiers="Ctrl" action="FileNew" display="true"/>
- <bind key="N" modifiers="Ctrl" action="FileNew" />
-
- <bind key="o" modifiers="Ctrl" action="FileOpen" display="true"/>
- <bind key="O" modifiers="Ctrl" action="FileOpen" />
-
- <bind key="w" modifiers="Ctrl" action="FileClose" display="true"/>
- <bind key="W" modifiers="Ctrl" action="FileClose" display="true"/>
-
- <bind key="" modifiers="" action="FileRevert" />
-
- <bind key="s" modifiers="Ctrl" action="FileSave" display="true"/>
- <bind key="S" modifiers="Ctrl" action="FileSave" />
-
- <bind key="s" modifiers="Ctrl,Shift" action="FileSaveAs" display="true"/>
- <bind key="S" modifiers="Ctrl,Shift" action="FileSaveAs" />
-
- <bind key="p" modifiers="Ctrl" action="FilePrint" display="true"/>
- <bind key="P" modifiers="Ctrl" action="FilePrint" />
-
- <bind key="r" modifiers="Ctrl" action="FileImport" display="true"/>
- <bind key="R" modifiers="Ctrl" action="FileImport" />
-
- <bind key="r" modifiers="Ctrl,Shift" action="FileExport" display="true"/>
- <bind key="R" modifiers="Ctrl,Shift" action="FileExport" />
-
- <bind key="q" modifiers="Ctrl" action="FileQuit" display="true"/>
- <bind key="Q" modifiers="Ctrl" action="FileQuit" display="true"/>
- <!-- Alt+F4 included, do not assume the Window Manager provides it. -->
- <bind key="F4" modifiers="Alt" action="FileQuit" display="true"/>
-
-<!-- Zoom (Inkscape). View, Magnification (Freehand). -->
-
- <!-- Not included in Freehand but including here anyway for sanity.
- Fireworks does use Ctrl+= for Zoom In and Ctrl+- for Zoom Out. -->
- <bind key="plus" action="ZoomIn" display="true"/>
- <bind key="plus" modifiers="Shift" action="ZoomIn" />
- <bind key="equal" action="ZoomIn" />
- <bind key="KP_Add" action="ZoomIn" />
-
- <bind key="minus" action="ZoomOut" display="true"/>
- <bind key="KP_Subtract" action="ZoomOut" />
-
- <!-- Fit Selection Ctrl+Alt+0 -->
- <bind key="0" modifiers="Ctrl,Alt" action="ZoomSelection" display="true"/>
- <!-- Fit to Page Ctrl+Shift+W -->
- <bind key="w" modifiers="Ctrl,Shift" action="ZoomPage" display="true"/>
- <bind key="W" modifiers="Ctrl,Shift" action="ZoomPage" display="true"/>
- <bind key="" action="ZoomPageWidth" />
- <!-- Fit All Ctrl+0 -->
- <bind key="0" modifiers="Ctrl" action="ZoomDrawing" display="true"/>
-
- <!-- Magnification 50% Ctrl+5-->
- <bind key="5" modifiers="Ctrl" action="Zoom1:2" display="true"/>
- <!-- Magnification 100% Ctrl+1 -->
- <bind key="1" modifiers="Ctrl" action="Zoom1:0" display="true"/>
- <!-- Magnification 200% Ctrl+2 -->
- <!-- Magnification 400% Ctrl+4 -->
- <!-- Magnification 800% Ctrl+8 -->
-
-<!-- View -->
-
- <!-- Freehand has no direct equivalent. F11 used by Library palette. -->
- <bind key="" action="FullScreen" display="true"/>
-
- <!-- Freehand has a menu item "Toolbars Ctrl+Alt+T" to hide all Toolbars -->
- <bind key="t" modifiers="Ctrl,Alt" action="ToggleToolbox" display="true"/>
- <bind key="T" modifiers="Ctrl,Alt" action="ToggleToolbox" />
-
- <!-- Freehand "View, Panels F4" also Ctrl+Shift+H
- Fireworks uses "Window, Hide Panels F4" to hide both Panels and Toolbox -->
- <bind key="F4" action="DialogsToggle" display="true"/>
- <bind key="h" modifiers="Ctrl,Shift" action="DialogsToggle" />
- <bind key="H" modifiers="Ctrl,Shift" action="DialogsToggle" />
-
- <!-- No menu items in Freehand but these do cycle through Windows as expected -->
- <bind key="Tab" modifiers="Ctrl" action="NextWindow" />
- <bind key="ISO_Left_Tab" modifiers="Ctrl,Shift" action="NextWindow" />
- <bind key="Tab" modifiers="Ctrl,Shift" action="PrevWindow" />
- <bind key="ISO_Left_Tab" modifiers="Ctrl" action="PrevWindow" />
-
- <!-- Rulers off by default. Looks better and cleaner that way, less busy. -->
- <bind key="r" modifiers="Ctrl,Alt" action="ToggleRulers" display="true"/>
- <bind key="R" modifiers="Ctrl,Alt" action="ToggleRulers" />
-
- <!-- No keybinding or option to toggle Scrollbars. Ctrl+B used for Bold text. -->
- <bind action="ToggleScrollbars" />
-
- <!-- TODO: Freehand "View, Guides, Show Ctrl+;" -->
- <bind key="" modifiers="Ctrl" action="ToggleGuides" display="true"/>
-
- <!-- View, Grid, Show Ctrl+Alt+G. -->
- <bind key="g" modifiers="Ctrl,Alt" action="ToggleGrid" />
- <bind key="G" modifiers="Ctrl,Alt" action="ToggleGrid" />
- <!-- TODO: View, Grid, Snap to Grid Ctrl+Alt+Shift+G. -->
-
- <!-- New View in Inkscape is equivalent to New Window in Freehand. -->
- <bind key="n" modifiers="Shift,Alt" action="ViewNew"/>
- <bind key="N" modifiers="Shift,Alt" action="ViewNew"/>
-
- <bind action="ViewNewPreview"/>
- <bind action="ViewIconPreview"/>
-
- <bind action="ViewModeNormal"/>
- <!-- Wireframe View (Inkscape). Keyline View Ctrl+K (Freehand). -->
- <bind key="K" modifiers="Ctrl" action="ViewModeOutline"/>
-
- <!-- Freehand also has a Fast Mode Ctrl+Shift+K
- which can be used in combination with Keyline. -->
-
-<!-- Edit -->
-
- <bind key="z" modifiers="Ctrl" action="EditUndo" display="true"/>
- <bind key="Z" modifiers="Ctrl" action="EditUndo" />
-
- <bind key="z" modifiers="Ctrl,Shift" action="EditRedo" />
- <bind key="Z" modifiers="Ctrl,Shift" action="EditRedo" />
- <bind key="y" modifiers="Ctrl" action="EditRedo" />
- <bind key="Y" modifiers="Ctrl" action="EditRedo" display="true" />
-
- <bind key="x" modifiers="Ctrl" action="EditCut" display="true"/>
- <bind key="X" modifiers="Ctrl" action="EditCut" />
-
- <bind key="c" modifiers="Ctrl" action="EditCopy" display="true"/>
- <bind key="C" modifiers="Ctrl" action="EditCopy" />
-
- <bind key="v" modifiers="Ctrl" action="EditPaste" display="true"/>
- <bind key="V" modifiers="Ctrl" action="EditPaste" />
-
- <!-- TODO -->
- <!-- Special: Paste Attributes Ctrl+Alt+Shift+V -->
- <!-- Cut Contents Ctrl+shift+X -->
- <!-- Paste Contents Ctrl+shift+V -->
-
- <bind key="Delete" action="EditDelete" display="true"/>
- <bind key="KP_Delete" action="EditDelete" />
- <bind key="BackSpace" action="EditDelete" />
-
- <bind key="d" modifiers="Ctrl,Alt" action="EditDuplicate" display="true"/>
- <bind key="D" modifiers="Ctrl,Alt" action="EditDuplicate" />
-
- <bind key="d" modifiers="Ctrl,Shift" action="EditClone" display="true"/>
- <bind key="D" modifiers="Ctrl,Shift" action="EditClone" />
-
- <bind key="a" modifiers="Ctrl" action="EditSelectAll" display="true"/>
- <bind key="A" modifiers="Ctrl" action="EditSelectAll" />
-
- <!-- Freehand "Edit, Select None Ctrl+D" -->
- <bind key="d" modifiers="Ctrl" action="EditDeselect" display="true"/>
- <bind key="D" modifiers="Ctrl" action="EditDeselect" />
-
- <!-- Freehand "Edit, Select All in Document None Ctrl+Shift+A" -->
- <bind key="a" modifiers="Ctrl,Shift" action="EditSelectAllInAllLayers" display="true"/>
- <bind key="A" modifiers="Ctrl,Shift" action="EditSelectAllInAllLayers" />
-
- <bind action="EditInvert" />
- <bind action="EditInvertInAllLayers" />
- <bind action="EditClearAll" />
-
-<!-- Objects/selection -->
-
- <bind key="h" action="ObjectFlipHorizontally" display="true"/>
- <bind key="H" action="ObjectFlipHorizontally" />
-
- <bind key="v" action="ObjectFlipVertically" display="true"/>
- <bind key="V" action="ObjectFlipVertically" />
-
- <bind key="Home" action="SelectionToFront" display="true"/>
- <bind key="KP_Home" action="SelectionToFront" />
-
- <bind key="End" action="SelectionToBack" display="true"/>
- <bind key="KP_End" action="SelectionToBack" />
-
- <bind key="Page_Up" action="SelectionRaise" display="true"/>
- <bind key="KP_Page_Up" action="SelectionRaise" />
-
- <bind key="Page_Down" action="SelectionLower" display="true"/>
- <bind key="KP_Page_Down" action="SelectionLower" />
-
- <bind key="g" modifiers="Ctrl" action="SelectionGroup" display="true"/>
- <bind key="G" modifiers="Ctrl" action="SelectionGroup" />
- <bind key="g" modifiers="Ctrl,Shift" action="SelectionUnGroup" display="true"/>
- <bind key="G" modifiers="Ctrl,Shift" action="SelectionUnGroup" />
-
- <bind key="b" modifiers="Alt" action="SelectionCreateBitmap" display="true"/>
- <bind key="B" modifiers="Alt" action="SelectionCreateBitmap" />
-
- <bind key="b" modifiers="Alt,Shift" action="SelectionTrace" display="true"/>
- <bind key="B" modifiers="Alt,Shift" action="SelectionTrace" />
-
- <bind key="i" modifiers="Alt" action="ObjectsToPattern" display="true"/>
- <bind key="I" modifiers="Alt" action="ObjectsToPattern" />
-
- <bind key="i" modifiers="Alt,Shift" action="ObjectsFromPattern" display="true"/>
- <bind key="I" modifiers="Alt,Shift" action="ObjectsFromPattern" />
-
- <bind action="ObjectSetMask" />
- <bind action="ObjectUnSetMask" />
-
- <bind action="ObjectSetClipPath" />
- <bind action="ObjectUnSetClipPath" />
-
- <!-- FIXME: currently these bypass the verbs, so the verbs are not bound to ctrl+[] as they should be -->
- <bind action="ObjectRotate90" />
- <bind action="ObjectRotate90CCW" />
-
- <bind action="ObjectRemoveTransform" />
-
-<!-- Path -->
-
- <bind key="c" modifiers="Ctrl,Shift" action="ObjectToPath" display="true"/>
- <bind key="C" modifiers="Ctrl,Shift" action="ObjectToPath" />
-
- <bind key="c" modifiers="Ctrl,Alt" action="StrokeToPath" display="true"/>
- <bind key="C" modifiers="Ctrl,Alt" action="StrokeToPath" />
-
- <bind key="k" modifiers="Ctrl" action="SelectionCombine" display="true"/>
- <bind key="K" modifiers="Ctrl" action="SelectionCombine" />
-
- <bind key="k" modifiers="Ctrl,Shift" action="SelectionBreakApart" display="true"/>
- <bind key="K" modifiers="Ctrl,Shift" action="SelectionBreakApart" />
-
- <bind key="plus" modifiers="Ctrl" action="SelectionUnion" display="true"/>
- <bind key="KP_Add" modifiers="Ctrl" action="SelectionUnion" />
- <bind key="plus" modifiers="Ctrl,Shift" action="SelectionUnion" />
-
- <bind key="asterisk" modifiers="Ctrl" action="SelectionIntersect" display="true"/>
- <bind key="KP_Multiply" modifiers="Ctrl" action="SelectionIntersect" />
- <bind key="asterisk" modifiers="Ctrl,Shift" action="SelectionIntersect" />
-
- <bind key="minus" modifiers="Ctrl" action="SelectionDiff" display="true"/>
- <bind key="underscore" modifiers="Ctrl" action="SelectionDiff" />
- <bind key="underscore" modifiers="Ctrl,Shift" action="SelectionDiff" />
- <bind key="KP_Subtract" modifiers="Ctrl" action="SelectionDiff" />
- <bind key="minus" modifiers="Ctrl,Shift" action="SelectionDiff" />
-
- <bind key="asciicircum" modifiers="Ctrl" action="SelectionSymDiff" display="true"/> <!-- ^ -->
- <bind key="asciicircum" modifiers="Ctrl,Shift" action="SelectionSymDiff" />
-
- <bind key="slash" modifiers="Ctrl,Alt" action="SelectionCutPath" display="true"/>
- <bind key="slash" modifiers="Ctrl,Alt,Shift" action="SelectionCutPath" />
-
- <bind key="slash" modifiers="Ctrl" action="SelectionDivide" display="true"/>
- <bind key="slash" modifiers="Ctrl,Shift" action="SelectionDivide" />
-
- <bind key="parenright" modifiers="Ctrl" action="SelectionOffset" display="true"/>
- <bind key="parenright" modifiers="Ctrl,Shift" action="SelectionOffset" />
- <bind key="0" modifiers="Ctrl,Shift" action="SelectionOffset" />
-
- <bind key="parenright" modifiers="Alt" action="SelectionOffsetScreen" display="true"/>
- <bind key="0" modifiers="Alt" action="SelectionOffsetScreen" />
-
- <bind key="parenright" modifiers="Alt,Shift" action="SelectionOffsetScreen10" display="true"/>
- <bind key="0" modifiers="Alt,Shift" action="SelectionOffsetScreen10" />
-
- <bind key="parenleft" modifiers="Ctrl" action="SelectionInset" display="true"/>
- <bind key="parenleft" modifiers="Ctrl,Shift" action="SelectionInset" />
- <bind key="9" modifiers="Ctrl,Shift" action="SelectionInset" />
-
- <bind key="parenleft" modifiers="Alt" action="SelectionInsetScreen" display="true"/>
- <bind key="9" modifiers="Alt" action="SelectionInsetScreen" />
-
- <bind key="parenleft" modifiers="Alt,Shift" action="SelectionInsetScreen10" display="true"/>
- <bind key="9" modifiers="Alt,Shift" action="SelectionInsetScreen10" />
-
- <bind key="j" modifiers="Ctrl" action="SelectionDynOffset" display="true"/>
- <bind key="J" modifiers="Ctrl" action="SelectionDynOffset" />
-
- <bind key="j" modifiers="Ctrl,Alt" action="SelectionLinkedOffset" display="true"/>
- <bind key="J" modifiers="Ctrl,Alt" action="SelectionLinkedOffset" />
-
- <bind key="l" modifiers="Ctrl" action="SelectionSimplify" display="true"/>
- <bind key="L" modifiers="Ctrl" action="SelectionSimplify" />
-
- <bind action="SelectionReverse" />
-
-<!-- Text -->
-
- <!-- Text, Font, Size, Smaller key="comma" modifiers="Ctrl,Shift" -->
- <!-- Text, Font, Size, Larger key="period" modifiers="Ctrl,Shift" -->
-
- <bind key="w" modifiers="Alt" action="ObjectFlowText" display="true"/>
- <bind key="W" modifiers="Alt" action="ObjectFlowText" />
-
- <bind key="w" modifiers="Alt,Shift" action="ObjectUnFlowText" display="true"/>
- <bind key="W" modifiers="Alt,Shift" action="ObjectUnFlowText" />
-
- <bind action="SelectionTextToPath" />
- <bind action="SelectionTextFromPath" />
-
- <bind action="ObjectFlowtextToText" />
- <bind action="SelectionTextRemoveKerns" />
-
-<!-- Layers -->
-
- <!-- Freehand provides only a limited a Layers palette,
- no menus, no keybindings. -->
- <bind action="LayerNew" />
- <bind action="LayerRename" />
- <bind action="LayerNext" />
- <bind action="LayerPrev" />
- <bind action="LayerDelete" />
- <bind action="LayerRaise" />
- <bind action="LayerLower" />
- <bind action="LayerToTop" />
- <bind action="LayerToBottom" />
- <bind action="LayerMoveToNext" />
- <bind action="LayerMoveToPrev" />
-
-<!-- Dialogs. Freehand has a Window menu listing the various palettes/panels. -->
-
- <!-- Nothing even remotely equivalent -->
- <bind action="DialogXMLEditor" />
- <!-- Equivalent exists but no key binding -->
- <bind action="DialogDocumentProperties" />
-
- <bind key="a" modifiers="Ctrl,Alt" action="DialogAlignDistribute" display="true"/>
- <bind key="A" modifiers="Ctrl,Alt" action="DialogAlignDistribute" />
-
- <!-- No equivalent. Various dialogs.
- Inkscape will probably move this to Tool options bar anyway. -->
- <bind action="DialogText" />
-
- <bind key="u" modifiers="Ctrl" action="DialogPreferences" display="true"/>
- <bind key="U" modifiers="Ctrl" action="DialogPreferences" />
-
- <!-- Object Panel is the closest equivalent in Freehand -->
- <bind key="F3" modifiers="Ctrl" action="DialogFillStroke" display="true"/>
- <bind action="DialogObjectProperties" />
-
- <!-- Freehand has a seperate find and replace for Text and Graphics -->
- <!-- Edit, Find And Replace, Graphics Ctrl+F -->
- <bind key="f" modifiers="Ctrl" action="DialogFind" display="true"/>
- <bind key="F" modifiers="Ctrl" action="DialogFind" />
- <!-- Edit, Find And Replace, Text Ctrl+Shift+F -->
- <bind key="f" modifiers="Ctrl,Shift" action="DialogFind" />
- <bind key="F" modifiers="Ctrl,Shift" action="DialogFind" />
-
- <bind key="m" modifiers="Ctrl" action="DialogTransform" display="true"/>
- <bind key="M" modifiers="Ctrl" action="DialogTransform" />
-
- <!-- Swatches in Freehand is a sub-tab of the Assets Panel. -->
- <bind key="F9" modifiers="Ctrl" action="DialogSwatches" display="true"/>
-
- <bind action="DialogMetadata" />
- <bind action="DialogClonetiler" />
- <bind action="DialogGridArrange" />
- <bind action="DialogScript" />
- <bind action="DialogDebug" />
- <bind action="DialogInput" />
-
- <!-- DialogsToggle (Hide Panels), see above in the View menu section -->
-
-<!-- Help -->
-
- <!-- This is a useful help section section to link to but it might be
- better to later link to an introductory beginners guide. -->
- <bind key="F1" action="HelpKeys" display="true"/>
-
-<!-- Effects (Inkscape). Xtras (Freehand) -->
-
- <!-- Freehand repeats the last Effect without any prompting. -->
- <bind key="equal" modifiers="Ctrl,Shift" action="EffectLast" display="true"/>
- <bind action="EffectLastPref" />
-
-</keys>
+<?xml version="1.0"?>
+<keys name="Macromedia Freehand">
+
+<!--
+This is an alternative set of keyboard shortcuts for Inkscape,
+in the style of Macromedia Freehand.
+This set is intended to help experienced Freehand users get
+started with Inkscape. It is not intended for long term use.
+
+Users are encouraged to learn how to use Inkscape which has more
+comprehensive keyboard shortcuts for all kind of features. Also
+users advised to get directly involved and provide feedback to
+developers on how best to improve the default settings for all users.
+
+Use the Preferences dialog to choose these shortcuts or
+if it doesn't exist yet be sure to check the request tracker and
+encourage the developers to add the option to the user interface.
+In the meantime to manually enable these keyboard shortcuts replace the file
+inkscape/share/keys/default.xml with this file.
+-->
+
+<!--
+Macromedia Freehand MX toplevel menus:
+File, Edit, View, Modify, Text, Xtras, Window, Help.
+-->
+
+<!-- Tools -->
+
+ <!-- Selector (Inkscape). Pointer (Freehand). -->
+ <bind key="F10" modifiers="Shift" action="ToolSelector" />
+ <!-- Holding down the Control (Ctrl) key also toggles back to the Pointer -->
+
+ <!-- Node (Inkscape). Subselect (Freehand). No key shortcut. -->
+ <bind key="" modifiers="" action="ToolNode" display="false"/>
+
+ <bind key="F1" modifiers="Shift" action="ToolRect" display="true"/>
+
+ <!-- Freehand has seperate tools for Ellipse and Arc unlike Inkscape. -->
+ <bind key="F3" modifiers="Shift" action="ToolArc" display="true"/>
+
+ <!-- Star (Inkscape). Polygon (Freehand) inlcudes star options. -->
+ <bind key="F8" modifiers="Shift" action="ToolStar" />
+
+ <!-- Freehand does not use a keybinding for the Spiral tool.
+ Freehand uses F9 for the Reflect Tool. Including anyway for now. -->
+ <bind key="F9" action="ToolSpiral" display="true"/>
+
+ <bind key="F5" modifiers="Shift" action="ToolPencil" display="true"/>
+
+ <bind key="F6" modifiers="Shift" action="ToolPen" display="true"/>
+ <!-- Freehand does not use a keybinding for the Calligraphic Pen tool.
+ The Calligraphic Pen is hidden under the Pencil tool -->
+
+ <bind key="F9" modifiers="Ctrl,Shift" action="ToolText" display="true"/>
+
+ <!-- Freehand does not include equivalent tool. Fireworks oddly enough
+ has a more advanced gradient tool similar to Inkscape. -->
+ <bind key="g" action="ToolGradient" />
+ <bind key="G" action="ToolGradient" />
+
+ <!-- Freehand includes a Connector tool but no keybinding for it. -->
+ <bind key="" modifiers="" action="ToolConnector" display="true"/>
+
+ <!-- Freehand includes an Eyedropper tool but no keybinding for it. -->
+ <bind key="" action="ToolDropper" display="true"/>
+
+<!-- File -->
+
+ <bind key="n" modifiers="Ctrl" action="FileNew" display="true"/>
+ <bind key="N" modifiers="Ctrl" action="FileNew" />
+
+ <bind key="o" modifiers="Ctrl" action="FileOpen" display="true"/>
+ <bind key="O" modifiers="Ctrl" action="FileOpen" />
+
+ <bind key="w" modifiers="Ctrl" action="FileClose" display="true"/>
+ <bind key="W" modifiers="Ctrl" action="FileClose" display="true"/>
+
+ <bind key="" modifiers="" action="FileRevert" />
+
+ <bind key="s" modifiers="Ctrl" action="FileSave" display="true"/>
+ <bind key="S" modifiers="Ctrl" action="FileSave" />
+
+ <bind key="s" modifiers="Ctrl,Shift" action="FileSaveAs" display="true"/>
+ <bind key="S" modifiers="Ctrl,Shift" action="FileSaveAs" />
+
+ <bind key="p" modifiers="Ctrl" action="FilePrint" display="true"/>
+ <bind key="P" modifiers="Ctrl" action="FilePrint" />
+
+ <bind key="r" modifiers="Ctrl" action="FileImport" display="true"/>
+ <bind key="R" modifiers="Ctrl" action="FileImport" />
+
+ <bind key="r" modifiers="Ctrl,Shift" action="FileExport" display="true"/>
+ <bind key="R" modifiers="Ctrl,Shift" action="FileExport" />
+
+ <bind key="q" modifiers="Ctrl" action="FileQuit" display="true"/>
+ <bind key="Q" modifiers="Ctrl" action="FileQuit" display="true"/>
+ <!-- Alt+F4 included, do not assume the Window Manager provides it. -->
+ <bind key="F4" modifiers="Alt" action="FileQuit" display="true"/>
+
+<!-- Zoom (Inkscape). View, Magnification (Freehand). -->
+
+ <!-- Not included in Freehand but including here anyway for sanity.
+ Fireworks does use Ctrl+= for Zoom In and Ctrl+- for Zoom Out. -->
+ <bind key="plus" action="ZoomIn" display="true"/>
+ <bind key="plus" modifiers="Shift" action="ZoomIn" />
+ <bind key="equal" action="ZoomIn" />
+ <bind key="KP_Add" action="ZoomIn" />
+
+ <bind key="minus" action="ZoomOut" display="true"/>
+ <bind key="KP_Subtract" action="ZoomOut" />
+
+ <!-- Fit Selection Ctrl+Alt+0 -->
+ <bind key="0" modifiers="Ctrl,Alt" action="ZoomSelection" display="true"/>
+ <!-- Fit to Page Ctrl+Shift+W -->
+ <bind key="w" modifiers="Ctrl,Shift" action="ZoomPage" display="true"/>
+ <bind key="W" modifiers="Ctrl,Shift" action="ZoomPage" display="true"/>
+ <bind key="" action="ZoomPageWidth" />
+ <!-- Fit All Ctrl+0 -->
+ <bind key="0" modifiers="Ctrl" action="ZoomDrawing" display="true"/>
+
+ <!-- Magnification 50% Ctrl+5-->
+ <bind key="5" modifiers="Ctrl" action="Zoom1:2" display="true"/>
+ <!-- Magnification 100% Ctrl+1 -->
+ <bind key="1" modifiers="Ctrl" action="Zoom1:0" display="true"/>
+ <!-- Magnification 200% Ctrl+2 -->
+ <!-- Magnification 400% Ctrl+4 -->
+ <!-- Magnification 800% Ctrl+8 -->
+
+<!-- View -->
+
+ <!-- Freehand has no direct equivalent. F11 used by Library palette. -->
+ <bind key="" action="FullScreen" display="true"/>
+
+ <!-- Freehand has a menu item "Toolbars Ctrl+Alt+T" to hide all Toolbars -->
+ <bind key="t" modifiers="Ctrl,Alt" action="ToggleToolbox" display="true"/>
+ <bind key="T" modifiers="Ctrl,Alt" action="ToggleToolbox" />
+
+ <!-- Freehand "View, Panels F4" also Ctrl+Shift+H
+ Fireworks uses "Window, Hide Panels F4" to hide both Panels and Toolbox -->
+ <bind key="F4" action="DialogsToggle" display="true"/>
+ <bind key="h" modifiers="Ctrl,Shift" action="DialogsToggle" />
+ <bind key="H" modifiers="Ctrl,Shift" action="DialogsToggle" />
+
+ <!-- No menu items in Freehand but these do cycle through Windows as expected -->
+ <bind key="Tab" modifiers="Ctrl" action="NextWindow" />
+ <bind key="ISO_Left_Tab" modifiers="Ctrl,Shift" action="NextWindow" />
+ <bind key="Tab" modifiers="Ctrl,Shift" action="PrevWindow" />
+ <bind key="ISO_Left_Tab" modifiers="Ctrl" action="PrevWindow" />
+
+ <!-- Rulers off by default. Looks better and cleaner that way, less busy. -->
+ <bind key="r" modifiers="Ctrl,Alt" action="ToggleRulers" display="true"/>
+ <bind key="R" modifiers="Ctrl,Alt" action="ToggleRulers" />
+
+ <!-- No keybinding or option to toggle Scrollbars. Ctrl+B used for Bold text. -->
+ <bind action="ToggleScrollbars" />
+
+ <!-- TODO: Freehand "View, Guides, Show Ctrl+;" -->
+ <bind key="" modifiers="Ctrl" action="ToggleGuides" display="true"/>
+
+ <!-- View, Grid, Show Ctrl+Alt+G. -->
+ <bind key="g" modifiers="Ctrl,Alt" action="ToggleGrid" />
+ <bind key="G" modifiers="Ctrl,Alt" action="ToggleGrid" />
+ <!-- TODO: View, Grid, Snap to Grid Ctrl+Alt+Shift+G. -->
+
+ <!-- New View in Inkscape is equivalent to New Window in Freehand. -->
+ <bind key="n" modifiers="Shift,Alt" action="ViewNew"/>
+ <bind key="N" modifiers="Shift,Alt" action="ViewNew"/>
+
+ <bind action="ViewNewPreview"/>
+ <bind action="ViewIconPreview"/>
+
+ <bind action="ViewModeNormal"/>
+ <!-- Wireframe View (Inkscape). Keyline View Ctrl+K (Freehand). -->
+ <bind key="K" modifiers="Ctrl" action="ViewModeOutline"/>
+
+ <!-- Freehand also has a Fast Mode Ctrl+Shift+K
+ which can be used in combination with Keyline. -->
+
+<!-- Edit -->
+
+ <bind key="z" modifiers="Ctrl" action="EditUndo" display="true"/>
+ <bind key="Z" modifiers="Ctrl" action="EditUndo" />
+
+ <bind key="z" modifiers="Ctrl,Shift" action="EditRedo" />
+ <bind key="Z" modifiers="Ctrl,Shift" action="EditRedo" />
+ <bind key="y" modifiers="Ctrl" action="EditRedo" />
+ <bind key="Y" modifiers="Ctrl" action="EditRedo" display="true" />
+
+ <bind key="x" modifiers="Ctrl" action="EditCut" display="true"/>
+ <bind key="X" modifiers="Ctrl" action="EditCut" />
+
+ <bind key="c" modifiers="Ctrl" action="EditCopy" display="true"/>
+ <bind key="C" modifiers="Ctrl" action="EditCopy" />
+
+ <bind key="v" modifiers="Ctrl" action="EditPaste" display="true"/>
+ <bind key="V" modifiers="Ctrl" action="EditPaste" />
+
+ <!-- TODO -->
+ <!-- Special: Paste Attributes Ctrl+Alt+Shift+V -->
+ <!-- Cut Contents Ctrl+shift+X -->
+ <!-- Paste Contents Ctrl+shift+V -->
+
+ <bind key="Delete" action="EditDelete" display="true"/>
+ <bind key="KP_Delete" action="EditDelete" />
+ <bind key="BackSpace" action="EditDelete" />
+
+ <bind key="d" modifiers="Ctrl,Alt" action="EditDuplicate" display="true"/>
+ <bind key="D" modifiers="Ctrl,Alt" action="EditDuplicate" />
+
+ <bind key="d" modifiers="Ctrl,Shift" action="EditClone" display="true"/>
+ <bind key="D" modifiers="Ctrl,Shift" action="EditClone" />
+
+ <bind key="a" modifiers="Ctrl" action="EditSelectAll" display="true"/>
+ <bind key="A" modifiers="Ctrl" action="EditSelectAll" />
+
+ <!-- Freehand "Edit, Select None Ctrl+D" -->
+ <bind key="d" modifiers="Ctrl" action="EditDeselect" display="true"/>
+ <bind key="D" modifiers="Ctrl" action="EditDeselect" />
+
+ <!-- Freehand "Edit, Select All in Document None Ctrl+Shift+A" -->
+ <bind key="a" modifiers="Ctrl,Shift" action="EditSelectAllInAllLayers" display="true"/>
+ <bind key="A" modifiers="Ctrl,Shift" action="EditSelectAllInAllLayers" />
+
+ <bind action="EditInvert" />
+ <bind action="EditInvertInAllLayers" />
+ <bind action="EditClearAll" />
+
+<!-- Objects/selection -->
+
+ <bind key="h" action="ObjectFlipHorizontally" display="true"/>
+ <bind key="H" action="ObjectFlipHorizontally" />
+
+ <bind key="v" action="ObjectFlipVertically" display="true"/>
+ <bind key="V" action="ObjectFlipVertically" />
+
+ <bind key="Home" action="SelectionToFront" display="true"/>
+ <bind key="KP_Home" action="SelectionToFront" />
+
+ <bind key="End" action="SelectionToBack" display="true"/>
+ <bind key="KP_End" action="SelectionToBack" />
+
+ <bind key="Page_Up" action="SelectionRaise" display="true"/>
+ <bind key="KP_Page_Up" action="SelectionRaise" />
+
+ <bind key="Page_Down" action="SelectionLower" display="true"/>
+ <bind key="KP_Page_Down" action="SelectionLower" />
+
+ <bind key="g" modifiers="Ctrl" action="SelectionGroup" display="true"/>
+ <bind key="G" modifiers="Ctrl" action="SelectionGroup" />
+ <bind key="g" modifiers="Ctrl,Shift" action="SelectionUnGroup" display="true"/>
+ <bind key="G" modifiers="Ctrl,Shift" action="SelectionUnGroup" />
+
+ <bind key="b" modifiers="Alt" action="SelectionCreateBitmap" display="true"/>
+ <bind key="B" modifiers="Alt" action="SelectionCreateBitmap" />
+
+ <bind key="b" modifiers="Alt,Shift" action="SelectionTrace" display="true"/>
+ <bind key="B" modifiers="Alt,Shift" action="SelectionTrace" />
+
+ <bind key="i" modifiers="Alt" action="ObjectsToPattern" display="true"/>
+ <bind key="I" modifiers="Alt" action="ObjectsToPattern" />
+
+ <bind key="i" modifiers="Alt,Shift" action="ObjectsFromPattern" display="true"/>
+ <bind key="I" modifiers="Alt,Shift" action="ObjectsFromPattern" />
+
+ <bind action="ObjectSetMask" />
+ <bind action="ObjectUnSetMask" />
+
+ <bind action="ObjectSetClipPath" />
+ <bind action="ObjectUnSetClipPath" />
+
+ <!-- FIXME: currently these bypass the verbs, so the verbs are not bound to ctrl+[] as they should be -->
+ <bind action="ObjectRotate90" />
+ <bind action="ObjectRotate90CCW" />
+
+ <bind action="ObjectRemoveTransform" />
+
+<!-- Path -->
+
+ <bind key="c" modifiers="Ctrl,Shift" action="ObjectToPath" display="true"/>
+ <bind key="C" modifiers="Ctrl,Shift" action="ObjectToPath" />
+
+ <bind key="c" modifiers="Ctrl,Alt" action="StrokeToPath" display="true"/>
+ <bind key="C" modifiers="Ctrl,Alt" action="StrokeToPath" />
+
+ <bind key="k" modifiers="Ctrl" action="SelectionCombine" display="true"/>
+ <bind key="K" modifiers="Ctrl" action="SelectionCombine" />
+
+ <bind key="k" modifiers="Ctrl,Shift" action="SelectionBreakApart" display="true"/>
+ <bind key="K" modifiers="Ctrl,Shift" action="SelectionBreakApart" />
+
+ <bind key="plus" modifiers="Ctrl" action="SelectionUnion" display="true"/>
+ <bind key="KP_Add" modifiers="Ctrl" action="SelectionUnion" />
+ <bind key="plus" modifiers="Ctrl,Shift" action="SelectionUnion" />
+
+ <bind key="asterisk" modifiers="Ctrl" action="SelectionIntersect" display="true"/>
+ <bind key="KP_Multiply" modifiers="Ctrl" action="SelectionIntersect" />
+ <bind key="asterisk" modifiers="Ctrl,Shift" action="SelectionIntersect" />
+
+ <bind key="minus" modifiers="Ctrl" action="SelectionDiff" display="true"/>
+ <bind key="underscore" modifiers="Ctrl" action="SelectionDiff" />
+ <bind key="underscore" modifiers="Ctrl,Shift" action="SelectionDiff" />
+ <bind key="KP_Subtract" modifiers="Ctrl" action="SelectionDiff" />
+ <bind key="minus" modifiers="Ctrl,Shift" action="SelectionDiff" />
+
+ <bind key="asciicircum" modifiers="Ctrl" action="SelectionSymDiff" display="true"/> <!-- ^ -->
+ <bind key="asciicircum" modifiers="Ctrl,Shift" action="SelectionSymDiff" />
+
+ <bind key="slash" modifiers="Ctrl,Alt" action="SelectionCutPath" display="true"/>
+ <bind key="slash" modifiers="Ctrl,Alt,Shift" action="SelectionCutPath" />
+
+ <bind key="slash" modifiers="Ctrl" action="SelectionDivide" display="true"/>
+ <bind key="slash" modifiers="Ctrl,Shift" action="SelectionDivide" />
+
+ <bind key="parenright" modifiers="Ctrl" action="SelectionOffset" display="true"/>
+ <bind key="parenright" modifiers="Ctrl,Shift" action="SelectionOffset" />
+ <bind key="0" modifiers="Ctrl,Shift" action="SelectionOffset" />
+
+ <bind key="parenright" modifiers="Alt" action="SelectionOffsetScreen" display="true"/>
+ <bind key="0" modifiers="Alt" action="SelectionOffsetScreen" />
+
+ <bind key="parenright" modifiers="Alt,Shift" action="SelectionOffsetScreen10" display="true"/>
+ <bind key="0" modifiers="Alt,Shift" action="SelectionOffsetScreen10" />
+
+ <bind key="parenleft" modifiers="Ctrl" action="SelectionInset" display="true"/>
+ <bind key="parenleft" modifiers="Ctrl,Shift" action="SelectionInset" />
+ <bind key="9" modifiers="Ctrl,Shift" action="SelectionInset" />
+
+ <bind key="parenleft" modifiers="Alt" action="SelectionInsetScreen" display="true"/>
+ <bind key="9" modifiers="Alt" action="SelectionInsetScreen" />
+
+ <bind key="parenleft" modifiers="Alt,Shift" action="SelectionInsetScreen10" display="true"/>
+ <bind key="9" modifiers="Alt,Shift" action="SelectionInsetScreen10" />
+
+ <bind key="j" modifiers="Ctrl" action="SelectionDynOffset" display="true"/>
+ <bind key="J" modifiers="Ctrl" action="SelectionDynOffset" />
+
+ <bind key="j" modifiers="Ctrl,Alt" action="SelectionLinkedOffset" display="true"/>
+ <bind key="J" modifiers="Ctrl,Alt" action="SelectionLinkedOffset" />
+
+ <bind key="l" modifiers="Ctrl" action="SelectionSimplify" display="true"/>
+ <bind key="L" modifiers="Ctrl" action="SelectionSimplify" />
+
+ <bind action="SelectionReverse" />
+
+<!-- Text -->
+
+ <!-- Text, Font, Size, Smaller key="comma" modifiers="Ctrl,Shift" -->
+ <!-- Text, Font, Size, Larger key="period" modifiers="Ctrl,Shift" -->
+
+ <bind key="w" modifiers="Alt" action="ObjectFlowText" display="true"/>
+ <bind key="W" modifiers="Alt" action="ObjectFlowText" />
+
+ <bind key="w" modifiers="Alt,Shift" action="ObjectUnFlowText" display="true"/>
+ <bind key="W" modifiers="Alt,Shift" action="ObjectUnFlowText" />
+
+ <bind action="SelectionTextToPath" />
+ <bind action="SelectionTextFromPath" />
+
+ <bind action="ObjectFlowtextToText" />
+ <bind action="SelectionTextRemoveKerns" />
+
+<!-- Layers -->
+
+ <!-- Freehand provides only a limited a Layers palette,
+ no menus, no keybindings. -->
+ <bind action="LayerNew" />
+ <bind action="LayerRename" />
+ <bind action="LayerNext" />
+ <bind action="LayerPrev" />
+ <bind action="LayerDelete" />
+ <bind action="LayerRaise" />
+ <bind action="LayerLower" />
+ <bind action="LayerToTop" />
+ <bind action="LayerToBottom" />
+ <bind action="LayerMoveToNext" />
+ <bind action="LayerMoveToPrev" />
+
+<!-- Dialogs. Freehand has a Window menu listing the various palettes/panels. -->
+
+ <!-- Nothing even remotely equivalent -->
+ <bind action="DialogXMLEditor" />
+ <!-- Equivalent exists but no key binding -->
+ <bind action="DialogDocumentProperties" />
+
+ <bind key="a" modifiers="Ctrl,Alt" action="DialogAlignDistribute" display="true"/>
+ <bind key="A" modifiers="Ctrl,Alt" action="DialogAlignDistribute" />
+
+ <!-- No equivalent. Various dialogs.
+ Inkscape will probably move this to Tool options bar anyway. -->
+ <bind action="DialogText" />
+
+ <bind key="u" modifiers="Ctrl" action="DialogPreferences" display="true"/>
+ <bind key="U" modifiers="Ctrl" action="DialogPreferences" />
+
+ <!-- Object Panel is the closest equivalent in Freehand -->
+ <bind key="F3" modifiers="Ctrl" action="DialogFillStroke" display="true"/>
+ <bind action="DialogObjectProperties" />
+
+ <!-- Freehand has a seperate find and replace for Text and Graphics -->
+ <!-- Edit, Find And Replace, Graphics Ctrl+F -->
+ <bind key="f" modifiers="Ctrl" action="DialogFind" display="true"/>
+ <bind key="F" modifiers="Ctrl" action="DialogFind" />
+ <!-- Edit, Find And Replace, Text Ctrl+Shift+F -->
+ <bind key="f" modifiers="Ctrl,Shift" action="DialogFind" />
+ <bind key="F" modifiers="Ctrl,Shift" action="DialogFind" />
+
+ <bind key="m" modifiers="Ctrl" action="DialogTransform" display="true"/>
+ <bind key="M" modifiers="Ctrl" action="DialogTransform" />
+
+ <!-- Swatches in Freehand is a sub-tab of the Assets Panel. -->
+ <bind key="F9" modifiers="Ctrl" action="DialogSwatches" display="true"/>
+
+ <bind action="DialogMetadata" />
+ <bind action="DialogClonetiler" />
+ <bind action="DialogGridArrange" />
+ <bind action="DialogScript" />
+ <bind action="DialogDebug" />
+ <bind action="DialogInput" />
+
+ <!-- DialogsToggle (Hide Panels), see above in the View menu section -->
+
+<!-- Help -->
+
+ <!-- This is a useful help section section to link to but it might be
+ better to later link to an introductory beginners guide. -->
+ <bind key="F1" action="HelpKeys" display="true"/>
+
+<!-- Effects (Inkscape). Xtras (Freehand) -->
+
+ <!-- Freehand repeats the last Effect without any prompting. -->
+ <bind key="equal" modifiers="Ctrl,Shift" action="EffectLast" display="true"/>
+ <bind action="EffectLastPref" />
+
+</keys>
diff --git a/share/tutorials/tutorial-elements.sk.svg b/share/tutorials/tutorial-elements.sk.svg
index 71a624ed7..e4a512e48 100644
--- a/share/tutorials/tutorial-elements.sk.svg
+++ b/share/tutorials/tutorial-elements.sk.svg
@@ -88,7 +88,7 @@
<flowRegion>
<use y="0" x="0" xlink:href="#d0e37"/>
</flowRegion>
- <flowDiv xml:space="preserve">Čiara je definované ako značka s dĺžkou a smerom vytvorená bodom pohybujúcim sa po povrchu. Čiara môžu mať rozličnú dĺžku, šírku, smer, zakrivenie a farbu. Čiara môže byť dvojrozmerná (stopa ceruzky na papiery) alebo predpokladaná trojrozmerná.</flowDiv>
+ <flowDiv xml:space="preserve">Čiara je definované ako značka s dĺžkou a smerom vytvorená bodom pohybujúcim sa po povrchu. Čiara môžu mať rozličnú dĺžku, šírku, smer, zakrivenie a farbu. Čiara môže byť dvojrozmerná (stopa ceruzky na papieri) alebo predpokladaná trojrozmerná.</flowDiv>
</flowRoot>
<g id="elements-f02-sk.svgg2037" transform="translate(10, 399.3347492) translate(0.000000,-424.1680)">
<rect id="elements-f02-sk.svgrect1933" height="100.99" width="305.16" stroke="#000" y="424.42" x="7.5753" stroke-width="0.49832" fill="none"/>
@@ -652,9 +652,9 @@
<flowRegion>
<use y="0" x="0" xlink:href="#d0e368"/>
</flowRegion>
- <flowDiv xml:space="preserve">Zvláštne poďkovanie si zaslúži Linda Kim (<flowSpan font-weight="bold" font-family="Sans">http://www.redlucite.org</flowSpan>) za to, že mi pomohla (<flowSpan font-weight="bold" font-family="Sans">http://www.rejon.org/</flowSpan>) s týmto návodom. Tiež ďakujem Open Clip Art Library (<flowSpan font-weight="bold" font-family="Sans">http://www.openclipart.org/</flowSpan>) za grafiku, ktorú ľudia do tohto projektu zaslali.</flowDiv>
+ <flowDiv xml:space="preserve">Zvláštne poďakovanie si zaslúži Linda Kim (<flowSpan font-weight="bold" font-family="Sans">http://www.redlucite.org</flowSpan>) za to, že mi pomohla (<flowSpan font-weight="bold" font-family="Sans">http://www.rejon.org/</flowSpan>) s týmto návodom. Tiež ďakujem Open Clip Art Library (<flowSpan font-weight="bold" font-family="Sans">http://www.openclipart.org/</flowSpan>) za grafiku, ktorú ľudia do tohto projektu zaslali.</flowDiv>
</flowRoot>
- <g transform="translate(0, 3161.0277291)">
+ <g transform="translate(0, 3170.0036661)">
<defs id="defs3" xmlns:cc="http://creativecommons.org/ns#">
<linearGradient id="linearGradient2465" y2="-7528.7" xlink:href="#linearGradient841" gradientUnits="userSpaceOnUse" x2="76.847" gradientTransform="matrix(2.149642,0.000000,0.000000,0.465194,-0.130153,3495.428)" y1="-7656.4" x1="76.847" inkscape:collect="always"/>
<filter id="filter56" height="1.2" width="1.2" color-interpolation-filters="sRGB" y="-0.1" x="-0.1" inkscape:label="Drop shadow, custom">
diff --git a/share/tutorials/tutorial-shapes.ja.svg b/share/tutorials/tutorial-shapes.ja.svg
index 6cbee3aa5..057621899 100644
--- a/share/tutorials/tutorial-shapes.ja.svg
+++ b/share/tutorials/tutorial-shapes.ja.svg
@@ -51,336 +51,336 @@
</flowRegion>
<flowDiv xml:space="preserve">このチュートリアルは 4 つのシェイプツール (矩形、円/弧、星形、螺旋) について説明しています。Inkscape のシェイプで何ができるか、そしてどのような場合にどのように使用するかを示します。</flowDiv>
</flowRoot>
- <rect id="d0e18" display="none" height="1000px" width="264" y="71.892" x="35"/>
+ <rect id="d0e18" display="none" height="1000px" width="264" y="72.52" x="35"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;" font-family="Sans" font-size="7.2" line-height="150%" font-weight="normal" font-style="italic" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e18"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl+矢印</flowSpan>、 <flowSpan font-weight="bold">マウスホイール</flowSpan>、もしくは <flowSpan font-weight="bold">中央ボタンを押しながらドラッグ</flowSpan>を使いページを下にスクロールしてください。オブジェクトの作成、選択、変形の基本については、<flowSpan font-family="Sans">Help &gt; ヘルプ &gt; チュートリアル</flowSpan> から基本チュートリアルをご覧ください。</flowDiv>
</flowRoot>
- <rect id="d0e35" display="none" height="1000px" width="288" y="124.39" x="10"/>
+ <rect id="d0e35" display="none" height="1000px" width="288" y="126.49" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e35"/>
</flowRegion>
<flowDiv xml:space="preserve">Inkscape には多用途の 4 つの<flowSpan font-style="italic">シェイプツール</flowSpan>があり、どのツールもシェイプの作成と編集が行えます。シェイプはドラッグ可能な<flowSpan font-style="italic">ハンドル</flowSpan>と形を決めている数値<flowSpan font-style="italic">パラメータ</flowSpan>を使用して、シェイプに特有の方法で変更を加えることが可能なオブジェクトです。</flowDiv>
</flowRoot>
- <rect id="d0e47" display="none" height="1000px" width="288" y="174.64" x="10"/>
+ <rect id="d0e47" display="none" height="1000px" width="288" y="180.38" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e47"/>
</flowRegion>
<flowDiv xml:space="preserve">例えば、星形では頂点の数、長さ、角度、丸めその他を変更することができますが、星形は星形のままです。形状は、単純なパスより &quot;自由度が少ない&quot; ですが、ときにそれはより興味深く便利です。シェイプはいつでもパスに変換することができます (<flowSpan font-weight="bold">Ctrl+Shift+C</flowSpan>) が、逆に変換することはできません。</flowDiv>
</flowRoot>
- <rect id="d0e53" display="none" height="1000px" width="288" y="225.33" x="10"/>
+ <rect id="d0e53" display="none" height="1000px" width="288" y="234.96" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e53"/>
</flowRegion>
<flowDiv xml:space="preserve">シェイプツールは、<flowSpan font-style="italic">矩形</flowSpan>、<flowSpan font-style="italic">円/弧</flowSpan>、<flowSpan font-style="italic">星形</flowSpan>、および<flowSpan font-style="italic">螺旋</flowSpan>があります。はじめに、一般的にどう動作するか見てみましょう。それから各シェイプについて見ていきます。</flowDiv>
</flowRoot>
- <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="277.736925" x="10" font-family="Sans" font-style="normal" fill="#000000">
- <tspan y="277.736925" x="10">一般的な用法</tspan>
+ <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="289.523844" x="10" font-family="Sans" font-style="normal" fill="#000000">
+ <tspan y="289.523844" x="10">一般的な用法</tspan>
</text>
- <rect id="d0e74" display="none" height="1000px" width="288" y="282.94" x="10"/>
+ <rect id="d0e74" display="none" height="1000px" width="288" y="294.72" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e74"/>
</flowRegion>
<flowDiv xml:space="preserve">新しいシェイプは、対応するツールでキャンバス上を <flowSpan font-weight="bold">ドラッグ</flowSpan> して作成します。一度作成されると (そして選択されている限り)、形状の編集が可能なひし形のハンドルが表示され、それをドラッグすることで直ちに編集できます。</flowDiv>
</flowRoot>
- <rect id="d0e80" display="none" height="1000px" width="288" y="322.44" x="10"/>
+ <rect id="d0e80" display="none" height="1000px" width="288" y="337.22" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e80"/>
</flowRegion>
<flowDiv xml:space="preserve">4 種のシェイプはすべて、ノードツールと同じくシェイプツールでハンドルを表示します (<flowSpan font-weight="bold">F2</flowSpan>)。カーソルをハンドルの上に置くと、ステータスバーにハンドルがさまざまな修飾キーを押した場合にドラッグやクリックでどう変化するかが表示されます。</flowDiv>
</flowRoot>
- <rect id="d0e86" display="none" height="1000px" width="288" y="373.42" x="10"/>
+ <rect id="d0e86" display="none" height="1000px" width="288" y="391.49" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e86"/>
</flowRegion>
<flowDiv xml:space="preserve">また、各シェイプツールは<flowSpan font-style="italic">ツールコントロールバー</flowSpan> (キャンバスの上) に、パラメータを表示します。通常そこにはいくつかの数値入力域とデフォルト値に戻す一つのボタンがあります。現在のツールタイプのオブジェクトが選択されると、コントロールバーの値を変更により選択したシェイプが変形します。</flowDiv>
</flowRoot>
- <rect id="d0e92" display="none" height="1000px" width="288" y="423.55" x="10"/>
+ <rect id="d0e92" display="none" height="1000px" width="288" y="446.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e92"/>
</flowRegion>
<flowDiv xml:space="preserve">ツールコントロールに加えられた変更は記憶され、ツールを使って次のオブジェクトを描くときに使用されます。例えば、星形の頂点の数を変更したあと新規に作成した星形の頂点数は前に描いた星の頂点数になります。さらに、選択してツールコントロールバーに値を反映しただけでも、新しい星形にはその値が適用されます。</flowDiv>
</flowRoot>
- <rect id="d0e95" display="none" height="1000px" width="288" y="484.28" x="10"/>
+ <rect id="d0e95" display="none" height="1000px" width="288" y="512.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e95"/>
</flowRegion>
<flowDiv xml:space="preserve">シェイプツールを使用しているときオブジェクトの上で<flowSpan font-weight="bold">クリック</flowSpan>すると選択できます。<flowSpan font-weight="bold">Ctrl+クリック</flowSpan> (グループから選択) と、<flowSpan font-weight="bold">Alt+クリック</flowSpan> (隠れているオブジェクトの選択) も選択ツールと同様に動作します。<flowSpan font-weight="bold">Esc</flowSpan> で選択は解除されます。</flowDiv>
</flowRoot>
- <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="548.703085" x="10" font-family="Sans" font-style="normal" fill="#000000">
- <tspan y="548.703085" x="10">矩形</tspan>
+ <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="579.2537189999999" x="10" font-family="Sans" font-style="normal" fill="#000000">
+ <tspan y="579.2537189999999" x="10">矩形</tspan>
</text>
- <rect id="d0e116" display="none" height="1000px" width="288" y="553.9" x="10"/>
+ <rect id="d0e116" display="none" height="1000px" width="288" y="584.45" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e116"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-style="italic">矩形</flowSpan>は簡単ですがおそらくデザインやイラスト制作で最も一般的なシェイプでしょう。Inkscape は矩形の作成と編集をできる限り簡単かつ便利に行えるように設計されています。</flowDiv>
</flowRoot>
- <rect id="d0e121" display="none" height="1000px" width="288" y="594.17" x="10"/>
+ <rect id="d0e121" display="none" height="1000px" width="288" y="626.51" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e121"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">F4</flowSpan> を押すかツールバーのボタンを押して矩形ツールに切り替えます。新しく矩形をこの青い矩形の横に描いてみましょう:</flowDiv>
</flowRoot>
- <text id="shapes-f01-ja.svgtext1578" opacity="0.065573759" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 631.201941) " font-style="normal" font-stretch="normal" font-size="16.799999" font-variant="normal" y="26.427183" x="44.104698" font-family="Bitstream Vera Serif" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f01-ja.svgtspan1451" y="26.427183" x="44.104698" role="line">ここに描く</tspan></text>
- <rect id="shapes-f01-ja.svgrect1449" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.75" transform="translate(10, 631.201941) " stroke-dashoffset="0.0000000" height="53.706" width="77.318" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.625" x="184.79" stroke-width="1pt" fill="#00F"/>
- <rect id="d0e136" display="none" height="1000px" width="288" y="698.16" x="10"/>
+ <text id="shapes-f01-ja.svgtext1578" opacity="0.065573759" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 664.7465679999999) " font-style="normal" font-stretch="normal" font-size="16.799999" font-variant="normal" y="26.427183" x="44.104698" font-family="Bitstream Vera Serif" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f01-ja.svgtspan1451" y="26.427183" x="44.104698" role="line">ここに描く</tspan></text>
+ <rect id="shapes-f01-ja.svgrect1449" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.75" transform="translate(10, 664.7465679999999) " stroke-dashoffset="0.0000000" height="53.706" width="77.318" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.625" x="184.79" stroke-width="1pt" fill="#00F"/>
+ <rect id="d0e136" display="none" height="1000px" width="288" y="731.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e136"/>
</flowRegion>
<flowDiv xml:space="preserve">そして、矩形ツールを抜けることなく、クリックして他の矩形に選択を切り替えてください。</flowDiv>
</flowRoot>
- <rect id="d0e139" display="none" height="1000px" width="288" y="726.77" x="10"/>
+ <rect id="d0e139" display="none" height="1000px" width="288" y="761.15" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e139"/>
</flowRegion>
<flowDiv xml:space="preserve">矩形描画のショートカットには以下のものがあります:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 750.8841350000001)"/>
- <rect id="d0e145" display="none" height="1000px" width="258" y="744.88" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 784.9827319999999)"/>
+ <rect id="d0e145" display="none" height="1000px" width="258" y="778.98" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e145"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらで、整数の縦横比 (2:3、3:1 など) の矩形を描画する。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 779.2238850000001)"/>
- <rect id="d0e151" display="none" height="1000px" width="258" y="773.22" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 814.4345149999999)"/>
+ <rect id="d0e151" display="none" height="1000px" width="258" y="808.43" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e151"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Shift</flowSpan> を押しながらで、始点を中心点として描画する。</flowDiv>
</flowRoot>
- <rect id="d0e157" display="none" height="1000px" width="288" y="791.36" x="10"/>
+ <rect id="d0e157" display="none" height="1000px" width="288" y="826.54" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e157"/>
</flowRegion>
<flowDiv xml:space="preserve">見てのとおり選択された矩形 (できたての矩形は常に選択状態にあります) には 3 つのハンドルが角にあります。実際には 4 つのハンドルがあるのですが、そのうちの 2 つ (右上) は矩形の角が丸まっていないときには重なっています。この 2 つは<flowSpan font-style="italic">丸めハンドル</flowSpan>、他の 2 つは<flowSpan font-style="italic">リサイズハンドル</flowSpan>です。</flowDiv>
</flowRoot>
- <rect id="d0e166" display="none" height="1000px" width="288" y="841.52" x="10"/>
+ <rect id="d0e166" display="none" height="1000px" width="288" y="880.92" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e166"/>
</flowRegion>
<flowDiv xml:space="preserve">はじめに丸めハンドルを見てみましょう。そのうちの一つをつかんで引き下げてみてください。矩形の 4 つの角が丸くなり、角の元の場所に 2 つ目の丸めハンドルが見えたはずです。円状に丸めたいのであればこれだけで事足ります。もし角の一方の辺側をもう一方より丸めたいのであればもう一つのハンドルを左に動かすことで行えます。</flowDiv>
</flowRoot>
- <rect id="d0e169" display="none" height="1000px" width="288" y="902.18" x="10"/>
+ <rect id="d0e169" display="none" height="1000px" width="288" y="947.44" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e169"/>
</flowRegion>
<flowDiv xml:space="preserve">最初の 2 つは角を円状に丸めた矩形、他の 2 つは角を楕円状に丸めた矩形です:</flowDiv>
</flowRoot>
- <text id="shapes-f02-ja.svgtext3150" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 938.9498855) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="5.9588757" font-variant="normal" y="4.9780722" x="196.08449" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f02-ja.svgtspan3151" y="4.9780722" x="196.08449" role="line">角を楕円状に丸めた矩形</tspan></text>
- <text id="shapes-f02-ja.svgtext3143" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 938.9498855) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="5.9588757" font-variant="normal" y="-2.6239278" x="47.265598" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f02-ja.svgtspan3144" sodipodi:role="line" x="47.265598" y="-2.6239278"/><tspan id="shapes-f02-ja.svgtspan3146"/><tspan id="shapes-f02-ja.svgtspan3148" y="4.5267232" x="47.265598" role="line">角を円状に丸めた矩形</tspan></text>
- <rect id="shapes-f02-ja.svgrect1185" ry="7.1429" fill-rule="evenodd" fill-opacity="0.75" transform="translate(10, 938.9498855) " height="33.94" width="56.849" stroke="#000" y="11.833" x="17.277" stroke-width="1pt" fill="#00F"/>
- <rect id="shapes-f02-ja.svgrect1186" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" transform="translate(10, 938.9498855) " height="33.94" width="56.849" stroke="#000" y="11.833" x="92.003" stroke-width="1pt" fill="#00F"/>
- <rect id="shapes-f02-ja.svgrect1187" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" rx="6.6372" transform="translate(10, 938.9498855) " height="33.94" width="56.849" stroke="#000" y="11.833" x="168.13" stroke-width="1pt" fill="#00F"/>
- <rect id="shapes-f02-ja.svgrect1188" ry="5.9394" fill-rule="evenodd" fill-opacity="0.75" rx="24.046" transform="translate(10, 938.9498855) " height="33.94" width="56.849" stroke="#000" y="11.833" x="242.69" stroke-width="1pt" fill="#00F"/>
- <rect id="d0e182" display="none" height="1000px" width="288" y="997.9" x="10"/>
+ <text id="shapes-f02-ja.svgtext3150" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 985.1347189999999) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="5.9588757" font-variant="normal" y="4.9780722" x="196.08449" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f02-ja.svgtspan3151" y="4.9780722" x="196.08449" role="line">角を楕円状に丸めた矩形</tspan></text>
+ <text id="shapes-f02-ja.svgtext3143" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 985.1347189999999) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="5.9588757" font-variant="normal" y="-2.6239278" x="47.265598" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f02-ja.svgtspan3144" sodipodi:role="line" x="47.265598" y="-2.6239278"/><tspan id="shapes-f02-ja.svgtspan3146"/><tspan id="shapes-f02-ja.svgtspan3148" y="4.5267232" x="47.265598" role="line">角を円状に丸めた矩形</tspan></text>
+ <rect id="shapes-f02-ja.svgrect1185" ry="7.1429" fill-rule="evenodd" fill-opacity="0.75" transform="translate(10, 985.1347189999999) " height="33.94" width="56.849" stroke="#000" y="11.833" x="17.277" stroke-width="1pt" fill="#00F"/>
+ <rect id="shapes-f02-ja.svgrect1186" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" transform="translate(10, 985.1347189999999) " height="33.94" width="56.849" stroke="#000" y="11.833" x="92.003" stroke-width="1pt" fill="#00F"/>
+ <rect id="shapes-f02-ja.svgrect1187" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" rx="6.6372" transform="translate(10, 985.1347189999999) " height="33.94" width="56.849" stroke="#000" y="11.833" x="168.13" stroke-width="1pt" fill="#00F"/>
+ <rect id="shapes-f02-ja.svgrect1188" ry="5.9394" fill-rule="evenodd" fill-opacity="0.75" rx="24.046" transform="translate(10, 985.1347189999999) " height="33.94" width="56.849" stroke="#000" y="11.833" x="242.69" stroke-width="1pt" fill="#00F"/>
+ <rect id="d0e182" display="none" height="1000px" width="288" y="1044.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e182"/>
</flowRegion>
<flowDiv xml:space="preserve">矩形を選択して、矩形ツールの丸めハンドルについてもう少しみてみましょう。</flowDiv>
</flowRoot>
- <rect id="d0e185" display="none" height="1000px" width="288" y="1026.7" x="10"/>
+ <rect id="d0e185" display="none" height="1000px" width="288" y="1061.9" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e185"/>
</flowRegion>
<flowDiv xml:space="preserve">しばしば、角を持つシェイプの丸め半径と形状は作品全体にわたり一定であることが必要とされます。矩形の大きさが異なっていても (色々な大きさの角を丸めた箱で描かれた図を考えてみてください) これは必要なことです。Inkscape でこれを実現するのは簡単です。選択ツールに切り替えてください。ツールコントロールバーに 4 つのトグルボタンがあり、その左から 2 番目に同心の丸めた角が表示されています。このボタンで、丸めた角を矩形がスケールされたときに丸めを拡大縮小するかを制御します。</flowDiv>
</flowRoot>
- <rect id="d0e188" display="none" height="1000px" width="288" y="1110.2" x="10"/>
+ <rect id="d0e188" display="none" height="1000px" width="288" y="1153.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e188"/>
</flowRegion>
<flowDiv xml:space="preserve">例えば、ここにオリジナルの赤い矩形と、&quot;矩形の丸められた角を拡大縮小&quot; ボタンを<flowSpan font-style="italic">オフ</flowSpan>にして複製され、拡大縮小を掛けたいくつかの矩形があります:</flowDiv>
</flowRoot>
- <text id="shapes-f03-ja.svgtext3161" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="140.00000%" transform="translate(10, 1147.0734705000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="140.00000%" font-size="5.9588757" font-variant="normal" y="145.20607" x="37.091438" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f03-ja.svgtspan3162" y="145.20607" x="37.091438" role="line">角を丸めた矩形の拡大縮小</tspan><tspan id="shapes-f03-ja.svgtspan3166" y="153.54850" x="37.091438" role="line">&quot;矩形の丸められた角を拡大縮小&quot; がオフの場合</tspan><tspan id="shapes-f03-ja.svgtspan3164" y="161.89092" x="37.091438" sodipodi:role="line"/></text>
- <rect id="shapes-f03-ja.svgrect2134" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="122.77" width="196.91" stroke="#000" stroke-miterlimit="4" y="0.32251" x="69.228" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f03-ja.svgrect2133" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="63.106" width="196.91" stroke="#000" stroke-miterlimit="4" y="0.32092" x="69.228" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f03-ja.svgrect2756" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="105.78" width="151.47" stroke="#000" stroke-miterlimit="4" y="0.32849" x="114.8" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f03-ja.svgrect2130" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" rx="6.6372" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="63.106" width="82.83" stroke="#000" stroke-miterlimit="4" y="0.32092" x="183.43" stroke-width="0.625" fill="#ff0004"/>
- <rect id="shapes-f03-ja.svgrect2757" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6371" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="55.115" width="60.756" stroke="#000" stroke-miterlimit="4" y="0.33191" x="205.56" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f03-ja.svgrect2759" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="149.52" width="47.954" stroke="#000" stroke-miterlimit="4" y="0.33081" x="218.34" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f03-ja.svgrect2758" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6371" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="28.79" width="38.352" stroke="#000" stroke-miterlimit="4" y="0.31225" x="227.64" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f03-ja.svgrect1911" ry="16.97" style="stroke-dasharray:0.62499992 1.2499998;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6371" transform="translate(10, 1147.0734705000002) " stroke-dashoffset="0.0000000" height="41.087" width="229.82" stroke="#000" stroke-miterlimit="4" y="0.35815" x="36.352" stroke-width="0.625" fill="#00F"/>
- <rect id="d0e204" display="none" height="1000px" width="288" y="1313.6" x="10"/>
+ <text id="shapes-f03-ja.svgtext3161" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="140.00000%" transform="translate(10, 1191.305326) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="140.00000%" font-size="5.9588757" font-variant="normal" y="145.20607" x="37.091438" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f03-ja.svgtspan3162" y="145.20607" x="37.091438" role="line">角を丸めた矩形の拡大縮小</tspan><tspan id="shapes-f03-ja.svgtspan3166" y="153.54850" x="37.091438" role="line">&quot;矩形の丸められた角を拡大縮小&quot; がオフの場合</tspan><tspan id="shapes-f03-ja.svgtspan3164" y="161.89092" x="37.091438" sodipodi:role="line"/></text>
+ <rect id="shapes-f03-ja.svgrect2134" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="122.77" width="196.91" stroke="#000" stroke-miterlimit="4" y="0.32251" x="69.228" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f03-ja.svgrect2133" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="63.106" width="196.91" stroke="#000" stroke-miterlimit="4" y="0.32092" x="69.228" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f03-ja.svgrect2756" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="105.78" width="151.47" stroke="#000" stroke-miterlimit="4" y="0.32849" x="114.8" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f03-ja.svgrect2130" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" rx="6.6372" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="63.106" width="82.83" stroke="#000" stroke-miterlimit="4" y="0.32092" x="183.43" stroke-width="0.625" fill="#ff0004"/>
+ <rect id="shapes-f03-ja.svgrect2757" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6371" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="55.115" width="60.756" stroke="#000" stroke-miterlimit="4" y="0.33191" x="205.56" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f03-ja.svgrect2759" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6372" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="149.52" width="47.954" stroke="#000" stroke-miterlimit="4" y="0.33081" x="218.34" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f03-ja.svgrect2758" ry="16.97" style="stroke-dasharray:0.62500000 1.2500000;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6371" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="28.79" width="38.352" stroke="#000" stroke-miterlimit="4" y="0.31225" x="227.64" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f03-ja.svgrect1911" ry="16.97" style="stroke-dasharray:0.62499992 1.2499998;" fill-rule="evenodd" fill-opacity="0.11037" rx="6.6371" transform="translate(10, 1191.305326) " stroke-dashoffset="0.0000000" height="41.087" width="229.82" stroke="#000" stroke-miterlimit="4" y="0.35815" x="36.352" stroke-width="0.625" fill="#00F"/>
+ <rect id="d0e204" display="none" height="1000px" width="288" y="1357.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e204"/>
</flowRegion>
- <flowDiv xml:space="preserve">右上で全てのすべて丸めた角が正確に一致して、矩形の角の形が等しいのを確認してください。すべての破線で描かれた矩形は元の赤い矩形から派生したもので、選択ツールで拡大縮小だけを掛けてあり、丸めハンドルでの調整は行っていません。</flowDiv>
+ <flowDiv xml:space="preserve">右上ですべてのすべて丸めた角が正確に一致して、矩形の角の形が等しいのを確認してください。すべての破線で描かれた矩形は元の赤い矩形から派生したもので、選択ツールで拡大縮小だけを掛けてあり、丸めハンドルでの調整は行っていません。</flowDiv>
</flowRoot>
- <rect id="d0e207" display="none" height="1000px" width="288" y="1363.3" x="10"/>
+ <rect id="d0e207" display="none" height="1000px" width="288" y="1411.6" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e207"/>
</flowRegion>
<flowDiv xml:space="preserve">比較のために、同じ画像を &quot;矩形の丸められた角を拡大縮小&quot; ボタンを<flowSpan font-style="italic">オン</flowSpan>にして作成したのが下の例です:</flowDiv>
</flowRoot>
- <text id="shapes-f04-ja.svgtext3168" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="140.00000%" transform="translate(10, 1400.2326005000004) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="140.00000%" font-size="5.9588757" font-variant="normal" y="145.20508" x="37.091438" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f04-ja.svgtspan3169" y="145.20508" x="37.091438" role="line">角を丸めた矩形の拡大縮小</tspan><tspan id="shapes-f04-ja.svgtspan3171" y="153.54750" x="37.091438" role="line">&quot;矩形の丸められた角を拡大縮小&quot; がオンの場合</tspan><tspan id="shapes-f04-ja.svgtspan3173" y="161.88993" x="37.091438" sodipodi:role="line"/></text>
- <rect id="shapes-f04-ja.svgrect2217" stroke-linejoin="miter" ry="16.984" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499982 1.2499996;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="15.76" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="63.16" width="196.68" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.40561" x="62.142" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f04-ja.svgrect2218" stroke-linejoin="miter" ry="32.93" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499984 1.2499996;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="15.76" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="122.46" width="196.68" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.33054" x="62.142" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f04-ja.svgrect2216" stroke-linejoin="miter" ry="28.506" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62500000 1.2500000;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="12.157" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="106.01" width="151.72" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.35556" x="107.19" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f04-ja.svgrect1589" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" rx="6.6372" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="63.106" width="82.83" stroke="#000" stroke-miterlimit="4" y="0.31943" x="176.34" stroke-width="0.625" fill="#ff0004"/>
- <rect id="shapes-f04-ja.svgrect2220" stroke-linejoin="miter" ry="40.031" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62500035 1.2500006;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="3.8557" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="148.86" width="48.118" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.32016" x="210.94" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f04-ja.svgrect2221" stroke-linejoin="miter" ry="14.801" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62500014 1.2500003;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="4.8443" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="55.042" width="60.456" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.38217" x="198.64" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f04-ja.svgrect2222" stroke-linejoin="miter" ry="7.8653" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499970 1.2499994;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="3.0813" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="29.249" width="38.454" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.31296" x="220.76" stroke-width="0.625" fill="#00F"/>
- <rect id="shapes-f04-ja.svgrect1912" stroke-linejoin="miter" ry="11.527" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499996 1.2499999;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="18.207" transform="translate(10, 1400.2326005000004) " stroke-dashoffset="0.0000000" height="42.865" width="227.21" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.31247" x="31.024" stroke-width="0.625" fill="#00F"/>
- <rect id="d0e223" display="none" height="1000px" width="288" y="1566.8" x="10"/>
+ <text id="shapes-f04-ja.svgtext3168" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="140.00000%" transform="translate(10, 1449.561669) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="140.00000%" font-size="5.9588757" font-variant="normal" y="145.20508" x="37.091438" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f04-ja.svgtspan3169" y="145.20508" x="37.091438" role="line">角を丸めた矩形の拡大縮小</tspan><tspan id="shapes-f04-ja.svgtspan3171" y="153.54750" x="37.091438" role="line">&quot;矩形の丸められた角を拡大縮小&quot; がオンの場合</tspan><tspan id="shapes-f04-ja.svgtspan3173" y="161.88993" x="37.091438" sodipodi:role="line"/></text>
+ <rect id="shapes-f04-ja.svgrect2217" stroke-linejoin="miter" ry="16.984" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499982 1.2499996;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="15.76" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="63.16" width="196.68" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.40561" x="62.142" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f04-ja.svgrect2218" stroke-linejoin="miter" ry="32.93" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499984 1.2499996;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="15.76" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="122.46" width="196.68" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.33054" x="62.142" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f04-ja.svgrect2216" stroke-linejoin="miter" ry="28.506" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62500000 1.2500000;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="12.157" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="106.01" width="151.72" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.35556" x="107.19" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f04-ja.svgrect1589" ry="16.97" fill-rule="evenodd" fill-opacity="0.75" rx="6.6372" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="63.106" width="82.83" stroke="#000" stroke-miterlimit="4" y="0.31943" x="176.34" stroke-width="0.625" fill="#ff0004"/>
+ <rect id="shapes-f04-ja.svgrect2220" stroke-linejoin="miter" ry="40.031" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62500035 1.2500006;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="3.8557" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="148.86" width="48.118" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.32016" x="210.94" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f04-ja.svgrect2221" stroke-linejoin="miter" ry="14.801" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62500014 1.2500003;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="4.8443" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="55.042" width="60.456" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.38217" x="198.64" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f04-ja.svgrect2222" stroke-linejoin="miter" ry="7.8653" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499970 1.2499994;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="3.0813" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="29.249" width="38.454" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.31296" x="220.76" stroke-width="0.625" fill="#00F"/>
+ <rect id="shapes-f04-ja.svgrect1912" stroke-linejoin="miter" ry="11.527" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.62499996 1.2499999;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.11037" rx="18.207" transform="translate(10, 1449.561669) " stroke-dashoffset="0.0000000" height="42.865" width="227.21" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="0.31247" x="31.024" stroke-width="0.625" fill="#00F"/>
+ <rect id="d0e223" display="none" height="1000px" width="288" y="1615.9" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e223"/>
</flowRegion>
<flowDiv xml:space="preserve">丸めた角はその矩形と同じぐらいオリジナルから変わっており、右上の角でもわずかな一致も見られません (ズームインして確認してください)。これは、元の矩形をパスに変換 (<flowSpan font-weight="bold">Ctrl+Shift+C</flowSpan>) して、それをパスとして拡大縮小した場合と同じ (視覚的) 結果になっています。</flowDiv>
</flowRoot>
- <rect id="d0e229" display="none" height="1000px" width="288" y="1617.6" x="10"/>
+ <rect id="d0e229" display="none" height="1000px" width="288" y="1670.6" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e229"/>
</flowRegion>
<flowDiv xml:space="preserve">矩形の丸めハンドルのショートカットには以下のものがあります:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 1641.6792715000004)"/>
- <rect id="d0e235" display="none" height="1000px" width="258" y="1635.7" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 1694.4118945)"/>
+ <rect id="d0e235" display="none" height="1000px" width="258" y="1688.4" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e235"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらドラッグで、もう一方の半径を等しくする (円状の丸め)。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 1670.4877715000005)"/>
- <rect id="d0e241" display="none" height="1000px" width="258" y="1664.5" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 1724.3793025)"/>
+ <rect id="d0e241" display="none" height="1000px" width="258" y="1718.4" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e241"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl+クリック</flowSpan> でドラッグなしでもう一方の半径を同じにする。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 1688.6987090000005)"/>
- <rect id="d0e247" display="none" height="1000px" width="258" y="1682.7" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 1742.24649)"/>
+ <rect id="d0e247" display="none" height="1000px" width="258" y="1736.2" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e247"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Shift+クリック</flowSpan> で丸めを取り除く。</flowDiv>
</flowRoot>
- <rect id="d0e253" display="none" height="1000px" width="288" y="1700.7" x="10"/>
+ <rect id="d0e253" display="none" height="1000px" width="288" y="1753.9" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e253"/>
</flowRegion>
<flowDiv xml:space="preserve">矩形ツールのコントロールバーには水平 (<flowSpan font-style="italic">Rx</flowSpan>) と垂直 (<flowSpan font-style="italic">Ry</flowSpan>) の丸め半径が表示されており、どの単位を使っても正確に半径を設定することができることに注意してください。<flowSpan font-family="Sans">角をシャープに</flowSpan> ボタンは選択した矩形から丸めを取り除きます。</flowDiv>
</flowRoot>
- <rect id="d0e265" display="none" height="1000px" width="288" y="1751" x="10"/>
+ <rect id="d0e265" display="none" height="1000px" width="288" y="1796.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e265"/>
</flowRegion>
- <flowDiv xml:space="preserve">コントロールを使うことの重要な点は、たくさんの矩形に対して一度に効力を及ぼすことができることです。例えば、もしレイヤー内のすべての矩形を変更したいなら、<flowSpan font-weight="bold">Ctrl+A</flowSpan> (全てを選択) とコントロールバーのパラメータを必要な値に設定するだけでできます。もし、矩形でないオブジェクトが選択されていたとしてもそれらは無視され矩形のみが変更されます。</flowDiv>
+ <flowDiv xml:space="preserve">コントロールを使うことの重要な点は、たくさんの矩形に対して一度に効力を及ぼすことができることです。例えば、もしレイヤー内のすべての矩形を変更したいなら、<flowSpan font-weight="bold">Ctrl+A</flowSpan> (すべてを選択) とコントロールバーのパラメータを必要な値に設定するだけでできます。もし、矩形でないオブジェクトが選択されていたとしてもそれらは無視され矩形のみが変更されます。</flowDiv>
</flowRoot>
- <rect id="d0e271" display="none" height="1000px" width="288" y="1812.5" x="10"/>
+ <rect id="d0e271" display="none" height="1000px" width="288" y="1863.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e271"/>
</flowRegion>
<flowDiv xml:space="preserve">今度は、矩形のリサイズハンドルを見てみましょう。あなたは不思議に思うかもしれません、なぜこれが必要なのか、選択ツールで矩形のサイズを変更すればいいのではないか?</flowDiv>
</flowRoot>
- <rect id="d0e274" display="none" height="1000px" width="288" y="1851.9" x="10"/>
+ <rect id="d0e274" display="none" height="1000px" width="288" y="1904.8" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e274"/>
</flowRegion>
<flowDiv xml:space="preserve">選択ツールの問題点は、水平および垂直の概念が常にドキュメントページの水平および垂直方向であることです。決まりとして、矩形のリサイズハンドルは、矩形が回転しても歪んでいても <flowSpan font-style="italic">矩形の辺に沿って</flowSpan>拡大縮小を行います。例えば、最初に選択ツールでサイズ変更した矩形を次に矩形ツールのリサイズハンドルでサイズ変更してみてください:</flowDiv>
</flowRoot>
- <rect id="shapes-f05-ja.svgrect2270" stroke-linejoin="miter" ry="3.8355" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.99666" rx="5.8251" transform="translate(10, 1920.6829015000005) matrix(0.696010,-0.718032,-0.952721,-0.303847,0.000000,0.000000)" stroke-dashoffset="0.0000000" height="64.103" width="41.625" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-179.49" x="7.7759" stroke-width="1pt" fill="#00F"/>
- <rect id="d0e290" display="none" height="1000px" width="288" y="1981.2" x="10"/>
+ <rect id="shapes-f05-ja.svgrect2270" stroke-linejoin="miter" ry="3.8355" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.99666" rx="5.8251" transform="translate(10, 1979.6132) matrix(0.696010,-0.718032,-0.952721,-0.303847,0.000000,0.000000)" stroke-dashoffset="0.0000000" height="64.103" width="41.625" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-179.49" x="7.7759" stroke-width="1pt" fill="#00F"/>
+ <rect id="d0e290" display="none" height="1000px" width="288" y="2040.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e290"/>
</flowRegion>
<flowDiv xml:space="preserve">リサイズハンドルは 2 つあるので、どの方向へもサイズ変更することができますし、辺に沿って移動することも可能です。リサイズハンドルは常に丸め半径を維持します。</flowDiv>
</flowRoot>
- <rect id="d0e293" display="none" height="1000px" width="288" y="2020.7" x="10"/>
+ <rect id="d0e293" display="none" height="1000px" width="288" y="2082.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e293"/>
</flowRegion>
<flowDiv xml:space="preserve">リサイズハンドルのショートカットは以下のとおりです:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 2044.7775305000005)"/>
- <rect id="d0e299" display="none" height="1000px" width="258" y="2038.8" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 2106.112645)"/>
+ <rect id="d0e299" display="none" height="1000px" width="258" y="2100.1" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e299"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押してドラッグで、矩形の辺や対角線をスナップする。言い換えると、<flowSpan font-weight="bold">Ctrl</flowSpan> は、矩形の幅、高さのどちらか、もしくは縦横比を保持する (繰り返しますが、回転していても歪んでいても矩形の座標系で)。</flowDiv>
</flowRoot>
- <rect id="d0e308" display="none" height="1000px" width="288" y="2089.7" x="10"/>
+ <rect id="d0e308" display="none" height="1000px" width="288" y="2154.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e308"/>
</flowRegion>
<flowDiv xml:space="preserve">ここに上図と同じ矩形があります。灰色の破線はリサイズハンドルが <flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらドラッグしたときに張り付く方向を示しています (試してみてください):</flowDiv>
</flowRoot>
- <g id="shapes-f06-ja.svgg6992" stroke-linejoin="miter" stroke-dashoffset="0.0000000" transform="translate(10, 2137.0602225000002) translate(0.000000,-2169.487)" stroke="#cfcfcf" stroke-linecap="butt" stroke-miterlimit="4.0000000" sodipodi:insensitive="true" fill="none">
+ <g id="shapes-f06-ja.svgg6992" stroke-linejoin="miter" stroke-dashoffset="0.0000000" transform="translate(10, 2204.457499) translate(0.000000,-2169.487)" stroke="#cfcfcf" stroke-linecap="butt" stroke-miterlimit="4.0000000" sodipodi:insensitive="true" fill="none">
<path id="shapes-f06-ja.svgpath6370" style="stroke-dasharray:1.7028247 1.7028247;" d="M200.86,2297.1l-80.74-126.8" sodipodi:nodetypes="cc" stroke-width="1.7028245"/>
<path id="shapes-f06-ja.svgpath6369" style="stroke-dasharray:1.7028245 1.7028245;" d="M148.58,2287.9l91.85-95.6" stroke-width="1.7028242"/>
<path id="shapes-f06-ja.svgpath6368" style="stroke-dasharray:1.7028245 1.7028245;" d="M79.483,2277.2l91.847-95.5" stroke-width="1.7028242"/>
<path id="shapes-f06-ja.svgpath6367" style="stroke-dasharray:1.7028220 1.7028220;" d="M54.316,2219.7l193.8,62.1" stroke-width="1.7028222"/>
<path id="shapes-f06-ja.svgpath5743" style="stroke-dasharray:1.7028220 1.7028220;" d="M77.695,2188.1l193.8,62.2" stroke-width="1.7028222"/>
</g>
- <rect id="shapes-f06-ja.svgrect5742" stroke-linejoin="miter" ry="3.8355" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.99666" rx="5.825" transform="translate(10, 2137.0602225000002) matrix(0.696010,-0.718032,-0.952721,-0.303847,0.000000,0.000000)" stroke-dashoffset="0.0000000" height="64.103" width="41.625" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-211.02" x="-35.379" stroke-width="1pt" fill="#00F"/>
- <flowRoot id="shapes-f06-ja.svgflowRoot2609" font-weight="normal" xml:space="preserve" transform="translate(10, 2137.0602225000002) " font-style="normal" font-size="6" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f06-ja.svgflowRegion2611"><rect id="shapes-f06-ja.svgrect2613" height="26.786" width="115" y="120.93" x="78.571"/></flowRegion><flowPara id="shapes-f06-ja.svgflowPara2615">矩形のスナップ — Ctrl を押しながらリサイズハンドル</flowPara></flowRoot>
- <rect id="d0e324" display="none" height="1000px" width="288" y="2284.7" x="10"/>
+ <rect id="shapes-f06-ja.svgrect5742" stroke-linejoin="miter" ry="3.8355" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" fill-opacity="0.99666" rx="5.825" transform="translate(10, 2204.457499) matrix(0.696010,-0.718032,-0.952721,-0.303847,0.000000,0.000000)" stroke-dashoffset="0.0000000" height="64.103" width="41.625" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-211.02" x="-35.379" stroke-width="1pt" fill="#00F"/>
+ <flowRoot id="shapes-f06-ja.svgflowRoot2609" font-weight="normal" xml:space="preserve" transform="translate(10, 2204.457499) " font-style="normal" font-size="6" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f06-ja.svgflowRegion2611"><rect id="shapes-f06-ja.svgrect2613" height="26.786" width="115" y="120.93" x="78.571"/></flowRegion><flowPara id="shapes-f06-ja.svgflowPara2615">矩形のスナップ — Ctrl を押しながらリサイズハンドル</flowPara></flowRoot>
+ <rect id="d0e324" display="none" height="1000px" width="288" y="2351.6" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e324"/>
</flowRegion>
<flowDiv xml:space="preserve">傾けたり回転した矩形を複製しリサイズハンドルでサイズを変更し、3D の構図を簡単に作ることができます:</flowDiv>
</flowRoot>
- <rect id="shapes-f07-ja.svgrect3610" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="14.448" width="18.786" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="170.13" x="233.42" stroke-width="0.39259" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3609" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="41.475" width="17.586" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="84.772" x="174.11" stroke-width="0.39259" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3605" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="15.283" width="57.99" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="37.3" x="116.36" stroke-width="0.37599" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect2965" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="32.88" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-2.9686" x="45.949" stroke-width="0.375" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect2966" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="30.551" width="18.205" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="48.819" x="74.597" stroke-width="0.375" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3596" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="30.543" width="32.942" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="12.017" x="27.846" stroke-width="0.375" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3597" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="72.439" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="56.339" x="185.25" stroke-width="0.53154" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3598" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="14.448" width="41.99" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="141.29" x="182.59" stroke-width="0.39259" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3599" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="25.786" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="86.052" x="284.9" stroke-width="0.53154" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3600" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="30.543" width="25.67" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="52.214" x="189.23" stroke-width="0.37599" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3601" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="34.392" width="11.664" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-6.5882" x="194.35" stroke-width="0.37599" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3602" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="49.333" width="17.911" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="106.61" x="224.88" stroke-width="0.39259" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3603" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="23.517" width="25.707" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="74.723" x="232.12" stroke-width="0.53154" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3604" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="45.515" width="25.67" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="49.235" x="141.66" stroke-width="0.37599" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3606" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="31.882" width="11.598" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-45.157" x="182.24" stroke-width="0.53154" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3607" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="45.788" width="23.587" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="141.29" x="182.59" stroke-width="0.39259" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3608" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="30.543" width="25.67" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-2.7308" x="133.79" stroke-width="0.37599" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3611" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="30.657" width="9.7845" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="170.05" x="234.5" stroke-width="0.39259" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect3612" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="25.212" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-24.113" x="128.84" stroke-width="0.53154" fill="#ff6300"/>
- <rect id="shapes-f07-ja.svgrect1913" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2321.6380205) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="20.233" width="31.198" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="106.61" x="224.88" stroke-width="0.39259" fill="#ff6300"/>
- <flowRoot id="shapes-f07-ja.svgflowRoot2632" style="text-anchor:middle;text-align:center;" font-weight="normal" xml:space="preserve" transform="translate(10, 2321.6380205) translate(-2,-10)" font-style="normal" font-size="6px" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f07-ja.svgflowRegion2634"><rect id="shapes-f07-ja.svgrect2636" style="text-align:center;" height="43.571" width="61.786" y="61.648" x="27.5"/></flowRegion><flowPara id="shapes-f07-ja.svgflowPara2638">3個のオリジナル矩形</flowPara></flowRoot>
- <flowRoot id="shapes-f07-ja.svgflowRoot2640" style="text-anchor:start;text-align:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 2321.6380205) " font-style="normal" font-size="6" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f07-ja.svgflowRegion2642"><rect id="shapes-f07-ja.svgrect2644" style="text-align:start;" height="90.357" width="56.786" y="12.005" x="241.07"/></flowRegion><flowPara id="shapes-f07-ja.svgflowPara2646">一部がハンドル (ほとんどの場合 Ctrl で) で複製およびサイズ変更された矩形</flowPara></flowRoot>
- <rect id="d0e337" display="none" height="1000px" width="288" y="2446.2" x="10"/>
+ <rect id="shapes-f07-ja.svgrect3610" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="14.448" width="18.786" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="170.13" x="233.42" stroke-width="0.39259" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3609" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="41.475" width="17.586" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="84.772" x="174.11" stroke-width="0.39259" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3605" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="15.283" width="57.99" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="37.3" x="116.36" stroke-width="0.37599" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect2965" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="32.88" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-2.9686" x="45.949" stroke-width="0.375" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect2966" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="30.551" width="18.205" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="48.819" x="74.597" stroke-width="0.375" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3596" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="30.543" width="32.942" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="12.017" x="27.846" stroke-width="0.375" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3597" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="72.439" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="56.339" x="185.25" stroke-width="0.53154" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3598" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="14.448" width="41.99" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="141.29" x="182.59" stroke-width="0.39259" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3599" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="25.786" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="86.052" x="284.9" stroke-width="0.53154" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3600" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="30.543" width="25.67" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="52.214" x="189.23" stroke-width="0.37599" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3601" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="34.392" width="11.664" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-6.5882" x="194.35" stroke-width="0.37599" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3602" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="49.333" width="17.911" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="106.61" x="224.88" stroke-width="0.39259" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3603" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="23.517" width="25.707" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="74.723" x="232.12" stroke-width="0.53154" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3604" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="45.515" width="25.67" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="49.235" x="141.66" stroke-width="0.37599" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3606" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="31.882" width="11.598" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-45.157" x="182.24" stroke-width="0.53154" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3607" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="45.788" width="23.587" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="141.29" x="182.59" stroke-width="0.39259" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3608" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994716,0.102665,0.000000,1.000000,0.000000,0.000000)" height="30.543" width="25.67" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-2.7308" x="133.79" stroke-width="0.37599" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3611" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="30.657" width="9.7845" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="170.05" x="234.5" stroke-width="0.39259" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect3612" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.994802,0.101831,-0.913513,0.406809,0.000000,0.000000)" height="18.241" width="25.212" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="-24.113" x="128.84" stroke-width="0.53154" fill="#ff6300"/>
+ <rect id="shapes-f07-ja.svgrect1913" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2389.6958250000002) matrix(0.912370,-0.409366,0.000000,1.000000,0.000000,0.000000)" height="20.233" width="31.198" stroke="#FFF" stroke-linecap="butt" stroke-miterlimit="4" y="106.61" x="224.88" stroke-width="0.39259" fill="#ff6300"/>
+ <flowRoot id="shapes-f07-ja.svgflowRoot2632" style="text-anchor:middle;text-align:center;" font-weight="normal" xml:space="preserve" transform="translate(10, 2389.6958250000002) translate(-2,-10)" font-style="normal" font-size="6px" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f07-ja.svgflowRegion2634"><rect id="shapes-f07-ja.svgrect2636" style="text-align:center;" height="43.571" width="61.786" y="61.648" x="27.5"/></flowRegion><flowPara id="shapes-f07-ja.svgflowPara2638">3個のオリジナル矩形</flowPara></flowRoot>
+ <flowRoot id="shapes-f07-ja.svgflowRoot2640" style="text-anchor:start;text-align:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 2389.6958250000002) " font-style="normal" font-size="6" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f07-ja.svgflowRegion2642"><rect id="shapes-f07-ja.svgrect2644" style="text-align:start;" height="90.357" width="56.786" y="12.005" x="241.07"/></flowRegion><flowPara id="shapes-f07-ja.svgflowPara2646">一部がハンドル (ほとんどの場合 Ctrl で) で複製およびサイズ変更された矩形</flowPara></flowRoot>
+ <rect id="d0e337" display="none" height="1000px" width="288" y="2514.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e337"/>
@@ -451,615 +451,615 @@
<stop id="shapes-f08-ja.svgstop2323" stop-color="#e08f0d" stop-opacity="0" offset="1"/>
</linearGradient>
</defs>
- <rect id="shapes-f08-ja.svgrect1001" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9946" transform="translate(10, 2472.2628355) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="42.484" width="14.215" y="24.73" x="52.983" fill="#1c768b"/>
- <rect id="shapes-f08-ja.svgrect1002" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="6.9707" transform="translate(10, 2472.2628355) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="83.705" width="13.941" y="9.1277" x="73.67" fill="#1c768b"/>
- <rect id="shapes-f08-ja.svgrect1003" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9946" transform="translate(10, 2472.2628355) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="90.342" width="15.751" y="-22.943" x="94.022" fill="#1c768b"/>
- <rect id="shapes-f08-ja.svgrect1004" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9946" transform="translate(10, 2472.2628355) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="69.735" width="15.688" y="-2.3354" x="116.44" fill="#1c768b"/>
- <rect id="shapes-f08-ja.svgrect1005" opacity="0.27541" ry="7.9131" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9959" transform="translate(10, 2472.2628355) matrix(0.597045,-0.802208,-0.985911,-0.167270,0.000000,0.000000)" height="87.653" width="12.887" y="-135.39" x="-63.5" fill="#1c768b"/>
- <rect id="shapes-f08-ja.svgrect1006" opacity="0.27541" ry="7.9131" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9959" transform="translate(10, 2472.2628355) matrix(0.597045,-0.802208,-0.985911,-0.167270,0.000000,0.000000)" height="87.653" width="13.113" y="-135.39" x="-42.204" fill="#1c768b"/>
- <rect id="shapes-f08-ja.svgrect1628" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="39.812" width="13.271" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-55.075" x="-213.5" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4192)"/>
- <rect id="shapes-f08-ja.svgrect1629" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="26.084" width="27.843" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-55.075" x="-228.07" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4189)"/>
- <rect id="shapes-f08-ja.svgrect1630" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="22.814" width="32.956" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-64.596" x="-220.23" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4186)"/>
- <rect id="shapes-f08-ja.svgrect1631" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="47.164" width="17.997" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-88.945" x="-205.27" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4183)"/>
- <rect id="shapes-f08-ja.svgrect1632" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="19.767" width="13.428" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-99.625" x="-209.28" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4180)"/>
- <rect id="shapes-f08-ja.svgrect1633" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="16.538" width="15.387" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-49.959" x="-195.09" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4177)"/>
- <rect id="shapes-f08-ja.svgrect1634" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="25.458" width="44.091" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-46.73" x="-251.57" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4174)"/>
- <rect id="shapes-f08-ja.svgrect1635" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="19.767" width="13.428" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-56.094" x="-258.25" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4171)"/>
- <rect id="shapes-f08-ja.svgrect2258" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2472.2628355) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="37.026" width="35.989" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-31.251" x="-278.05" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4168)"/>
- <rect id="shapes-f08-ja.svgrect2260" stroke-linejoin="miter" ry="7.8878" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="13.386" transform="translate(10, 2472.2628355) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="127.64" width="113.32" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="316.07" x="503.61" stroke-width="0.97177" fill="url(#shapes-f08-ja.svglinearGradient4165)"/>
- <rect id="shapes-f08-ja.svgrect2261" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="12.531" transform="translate(10, 2472.2628355) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="51.349" width="27.59" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="411.96" x="630.53" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4162)"/>
- <rect id="shapes-f08-ja.svgrect2262" stroke-linejoin="miter" ry="17.916" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="9.9614" transform="translate(10, 2472.2628355) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="64.786" width="33.88" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="357.18" x="458.08" stroke-width="0.97177" fill="url(#shapes-f08-ja.svglinearGradient4159)"/>
- <rect id="shapes-f08-ja.svgrect2263" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="12.637" transform="translate(10, 2472.2628355) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="30.095" width="28.248" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="241.03" x="433.29" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4156)"/>
- <rect id="shapes-f08-ja.svgrect2264" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="10.937" transform="translate(10, 2472.2628355) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="15.702" width="21.022" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="206.94" x="372.11" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4153)"/>
- <rect id="shapes-f08-ja.svgrect2259" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="13.386" transform="translate(10, 2472.2628355) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="47.25" width="52.249" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="270.51" x="440.64" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4150)"/>
- <rect id="shapes-f08-ja.svgrect5740" stroke-linejoin="miter" ry="5.0297" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="4.8633" transform="translate(10, 2472.2628355) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="11.479" width="9.8364" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="170.7" x="353.52" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4147)"/>
- <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="2611.1302755" x="10" font-family="Sans" font-style="normal" fill="#000000">
- <tspan y="2611.1302755" x="10">円/弧</tspan>
+ <rect id="shapes-f08-ja.svgrect1001" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9946" transform="translate(10, 2540.2347025000004) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="42.484" width="14.215" y="24.73" x="52.983" fill="#1c768b"/>
+ <rect id="shapes-f08-ja.svgrect1002" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="6.9707" transform="translate(10, 2540.2347025000004) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="83.705" width="13.941" y="9.1277" x="73.67" fill="#1c768b"/>
+ <rect id="shapes-f08-ja.svgrect1003" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9946" transform="translate(10, 2540.2347025000004) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="90.342" width="15.751" y="-22.943" x="94.022" fill="#1c768b"/>
+ <rect id="shapes-f08-ja.svgrect1004" opacity="0.27541" ry="7.9254" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9946" transform="translate(10, 2540.2347025000004) matrix(0.983287,0.182064,-0.629384,0.777094,0.000000,0.000000)" height="69.735" width="15.688" y="-2.3354" x="116.44" fill="#1c768b"/>
+ <rect id="shapes-f08-ja.svgrect1005" opacity="0.27541" ry="7.9131" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9959" transform="translate(10, 2540.2347025000004) matrix(0.597045,-0.802208,-0.985911,-0.167270,0.000000,0.000000)" height="87.653" width="12.887" y="-135.39" x="-63.5" fill="#1c768b"/>
+ <rect id="shapes-f08-ja.svgrect1006" opacity="0.27541" ry="7.9131" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="7.9959" transform="translate(10, 2540.2347025000004) matrix(0.597045,-0.802208,-0.985911,-0.167270,0.000000,0.000000)" height="87.653" width="13.113" y="-135.39" x="-42.204" fill="#1c768b"/>
+ <rect id="shapes-f08-ja.svgrect1628" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="39.812" width="13.271" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-55.075" x="-213.5" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4192)"/>
+ <rect id="shapes-f08-ja.svgrect1629" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="26.084" width="27.843" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-55.075" x="-228.07" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4189)"/>
+ <rect id="shapes-f08-ja.svgrect1630" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="22.814" width="32.956" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-64.596" x="-220.23" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4186)"/>
+ <rect id="shapes-f08-ja.svgrect1631" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="47.164" width="17.997" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-88.945" x="-205.27" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4183)"/>
+ <rect id="shapes-f08-ja.svgrect1632" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="19.767" width="13.428" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-99.625" x="-209.28" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4180)"/>
+ <rect id="shapes-f08-ja.svgrect1633" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="16.538" width="15.387" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-49.959" x="-195.09" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4177)"/>
+ <rect id="shapes-f08-ja.svgrect1634" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="25.458" width="44.091" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-46.73" x="-251.57" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4174)"/>
+ <rect id="shapes-f08-ja.svgrect1635" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="19.767" width="13.428" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-56.094" x="-258.25" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4171)"/>
+ <rect id="shapes-f08-ja.svgrect2258" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" transform="translate(10, 2540.2347025000004) matrix(-0.999870,-1.615251e-2,-0.760407,-0.649446,0.000000,0.000000)" height="37.026" width="35.989" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="-31.251" x="-278.05" stroke-width="0.39935" fill="url(#shapes-f08-ja.svglinearGradient4168)"/>
+ <rect id="shapes-f08-ja.svgrect2260" stroke-linejoin="miter" ry="7.8878" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="13.386" transform="translate(10, 2540.2347025000004) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="127.64" width="113.32" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="316.07" x="503.61" stroke-width="0.97177" fill="url(#shapes-f08-ja.svglinearGradient4165)"/>
+ <rect id="shapes-f08-ja.svgrect2261" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="12.531" transform="translate(10, 2540.2347025000004) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="51.349" width="27.59" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="411.96" x="630.53" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4162)"/>
+ <rect id="shapes-f08-ja.svgrect2262" stroke-linejoin="miter" ry="17.916" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="9.9614" transform="translate(10, 2540.2347025000004) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="64.786" width="33.88" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="357.18" x="458.08" stroke-width="0.97177" fill="url(#shapes-f08-ja.svglinearGradient4159)"/>
+ <rect id="shapes-f08-ja.svgrect2263" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="12.637" transform="translate(10, 2540.2347025000004) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="30.095" width="28.248" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="241.03" x="433.29" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4156)"/>
+ <rect id="shapes-f08-ja.svgrect2264" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="10.937" transform="translate(10, 2540.2347025000004) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="15.702" width="21.022" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="206.94" x="372.11" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4153)"/>
+ <rect id="shapes-f08-ja.svgrect2259" stroke-linejoin="miter" ry="7.8879" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="13.386" transform="translate(10, 2540.2347025000004) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="47.25" width="52.249" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="270.51" x="440.64" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4150)"/>
+ <rect id="shapes-f08-ja.svgrect5740" stroke-linejoin="miter" ry="5.0297" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" stroke-dashoffset="0.0000000" rx="4.8633" transform="translate(10, 2540.2347025000004) matrix(0.994469,0.105035,-0.995212,9.773932e-2,0.000000,0.000000)" height="11.479" width="9.8364" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4" y="170.7" x="353.52" stroke-width="0.97176" fill="url(#shapes-f08-ja.svglinearGradient4147)"/>
+ <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="2679.1021425000004" x="10" font-family="Sans" font-style="normal" fill="#000000">
+ <tspan y="2679.1021425000004" x="10">円/弧</tspan>
</text>
- <rect id="d0e356" display="none" height="1000px" width="288" y="2616.3" x="10"/>
+ <rect id="d0e356" display="none" height="1000px" width="288" y="2684.3" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e356"/>
</flowRegion>
<flowDiv xml:space="preserve">円/弧ツール (<flowSpan font-weight="bold">F5</flowSpan>) は楕円や円を作成することができます。楕円や円は弧や扇形にも変換できます。描画のショートカットは矩形ツールと同じです:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 2651.2559625)"/>
- <rect id="d0e365" display="none" height="1000px" width="258" y="2645.3" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 2720.5742385000003)"/>
+ <rect id="d0e365" display="none" height="1000px" width="258" y="2714.6" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e365"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらで、整数の縦横比 (2:3、3:1 等) で楕円を描画する。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 2679.5957125)"/>
- <rect id="d0e371" display="none" height="1000px" width="258" y="2673.6" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 2750.0260215000003)"/>
+ <rect id="d0e371" display="none" height="1000px" width="258" y="2744" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e371"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Shift</flowSpan> を押しながらで、始点を中心点として描画する。</flowDiv>
</flowRoot>
- <rect id="d0e377" display="none" height="1000px" width="288" y="2691.7" x="10"/>
+ <rect id="d0e377" display="none" height="1000px" width="288" y="2762.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e377"/>
</flowRegion>
<flowDiv xml:space="preserve">楕円のハンドルをいじってみましょう。この楕円を選択してください:</flowDiv>
</flowRoot>
- <path id="shapes-f09-ja.svgpath1932" sodipodi:rx="54.031982" sodipodi:ry="30.248674" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M221.21,2940.5a54.032,30.249,0,1,1,-108.07,0,54.032,30.249,0,1,1,108.07,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.99665552" stroke-linecap="butt" transform="translate(10, 2717.791025) translate(-16.96181,-2909.630)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="2940.5042" sodipodi:cx="167.17587" stroke-miterlimit="4.0000000" stroke-width="1.2500000" fill="#ff000b"/>
- <rect id="d0e390" display="none" height="1000px" width="288" y="2791.5" x="10"/>
+ <path id="shapes-f09-ja.svgpath1932" sodipodi:rx="54.031982" sodipodi:ry="30.248674" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M221.21,2940.5a54.032,30.249,0,1,1,-108.07,0,54.032,30.249,0,1,1,108.07,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.99665552" stroke-linecap="butt" transform="translate(10, 2787.7916465000003) translate(-16.96181,-2909.630)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="2940.5042" sodipodi:cx="167.17587" stroke-miterlimit="4.0000000" stroke-width="1.2500000" fill="#ff000b"/>
+ <rect id="d0e390" display="none" height="1000px" width="288" y="2861.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e390"/>
</flowRegion>
<flowDiv xml:space="preserve">ここでも 3 つのハンドルがあることに気が付いたと思いますが、実は 4 つあります。右のハンドルは楕円を &quot;開く&quot; ことのできる 2 つのハンドルが重なっています。右にあるハンドルをドラッグするともう一つのハンドルが下から見えます。これで弧や扇形を作ることができます:</flowDiv>
</flowRoot>
- <path id="shapes-f10-ja.svgpath1225" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,1,1,-5.586,-21l-13.487,21z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2849.599001) matrix(1.306044,0.000000,0.000000,0.596999,13.33648,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="5.4977871" sodipodi:start="0.0000000"/>
- <path id="shapes-f10-ja.svgpath1226" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,0,1,-33.658,19.1l14.585-19.1z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2849.599001) matrix(1.306044,0.000000,0.000000,0.596999,77.09523,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="2.4413969" sodipodi:start="0.0000000"/>
- <path id="shapes-f10-ja.svgpath1227" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,1,1,-13.927,-28.6" fill-opacity="0.75000000" sodipodi:open="true" fill-rule="evenodd" transform="translate(10, 2849.599001) matrix(1.306044,0.000000,0.000000,0.596999,145.3713,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" fill="#F00" stroke-width="0.79606137pt" sodipodi:end="4.9855409" sodipodi:start="0.0000000"/>
- <path id="shapes-f10-ja.svgpath1228" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,0,1,-35.976,13.7" fill-opacity="0.75000000" sodipodi:open="true" fill-rule="evenodd" transform="translate(10, 2849.599001) matrix(1.306044,0.000000,0.000000,0.596999,207.7002,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" fill="#F00" stroke-width="0.79606137pt" sodipodi:end="2.6599349" sodipodi:start="0.0000000"/>
- <path id="shapes-f10-ja.svgpath3204" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M15.272,2722.5a19.073,29.636,0,0,1,7.16,-7.3l6.617,27.8z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2849.599001) matrix(1.306044,0.000000,0.000000,0.596999,77.09523,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="4.3580459" sodipodi:start="3.9052122"/>
- <path id="shapes-f10-ja.svgpath3205" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M11.841,2730.2a19.073,29.636,0,0,1,35.456,4.1" fill-opacity="0.75000000" sodipodi:open="true" fill-rule="evenodd" transform="translate(10, 2849.599001) matrix(1.306044,0.000000,0.000000,0.596999,207.7002,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" fill="#F00" stroke-width="0.79606137pt" sodipodi:end="5.9880333" sodipodi:start="3.5874838"/>
- <path id="shapes-f10-ja.svgpath3206" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M27.76,2713.4a19.073,29.636,0,0,1,19.12,19.1l-17.831,10.5z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2849.599001) matrix(1.306044,0.000000,0.000000,0.596999,77.09523,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="5.9203236" sodipodi:start="4.6447262"/>
- <rect id="d0e403" display="none" height="1000px" width="288" y="2897.9" x="10"/>
+ <path id="shapes-f10-ja.svgpath1225" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,1,1,-5.586,-21l-13.487,21z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2924.2615335000005) matrix(1.306044,0.000000,0.000000,0.596999,13.33648,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="5.4977871" sodipodi:start="0.0000000"/>
+ <path id="shapes-f10-ja.svgpath1226" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,0,1,-33.658,19.1l14.585-19.1z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2924.2615335000005) matrix(1.306044,0.000000,0.000000,0.596999,77.09523,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="2.4413969" sodipodi:start="0.0000000"/>
+ <path id="shapes-f10-ja.svgpath1227" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,1,1,-13.927,-28.6" fill-opacity="0.75000000" sodipodi:open="true" fill-rule="evenodd" transform="translate(10, 2924.2615335000005) matrix(1.306044,0.000000,0.000000,0.596999,145.3713,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" fill="#F00" stroke-width="0.79606137pt" sodipodi:end="4.9855409" sodipodi:start="0.0000000"/>
+ <path id="shapes-f10-ja.svgpath1228" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M48.122,2743a19.073,29.636,0,0,1,-35.976,13.7" fill-opacity="0.75000000" sodipodi:open="true" fill-rule="evenodd" transform="translate(10, 2924.2615335000005) matrix(1.306044,0.000000,0.000000,0.596999,207.7002,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" fill="#F00" stroke-width="0.79606137pt" sodipodi:end="2.6599349" sodipodi:start="0.0000000"/>
+ <path id="shapes-f10-ja.svgpath3204" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M15.272,2722.5a19.073,29.636,0,0,1,7.16,-7.3l6.617,27.8z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2924.2615335000005) matrix(1.306044,0.000000,0.000000,0.596999,77.09523,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="4.3580459" sodipodi:start="3.9052122"/>
+ <path id="shapes-f10-ja.svgpath3205" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M11.841,2730.2a19.073,29.636,0,0,1,35.456,4.1" fill-opacity="0.75000000" sodipodi:open="true" fill-rule="evenodd" transform="translate(10, 2924.2615335000005) matrix(1.306044,0.000000,0.000000,0.596999,207.7002,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" fill="#F00" stroke-width="0.79606137pt" sodipodi:end="5.9880333" sodipodi:start="3.5874838"/>
+ <path id="shapes-f10-ja.svgpath3206" sodipodi:rx="19.072769" sodipodi:ry="29.636148" sodipodi:type="arc" d="M27.76,2713.4a19.073,29.636,0,0,1,19.12,19.1l-17.831,10.5z" fill-opacity="0.75000000" fill="#F00" fill-rule="evenodd" transform="translate(10, 2924.2615335000005) matrix(1.306044,0.000000,0.000000,0.596999,77.09523,-1619.415)" stroke="#000" sodipodi:cy="2742.9695" sodipodi:cx="29.049295" stroke-width="0.79606137pt" sodipodi:end="5.9203236" sodipodi:start="4.6447262"/>
+ <rect id="d0e403" display="none" height="1000px" width="288" y="2972.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e403"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-style="italic">扇形</flowSpan> (弧と 2 つの半径からなる) を作るには楕円の<flowSpan font-style="italic">外側</flowSpan>をドラッグし、弧を作るには<flowSpan font-style="italic">内側</flowSpan>をドラッグします。上図の左側には 4 つの扇形、右側には3つの弧があります。弧は閉じていないシェイプであることに注意してください。つまりストロークは楕円にそっていますが端点はつながっていません。フィルを削除してストロークだけにすると明らかになります:</flowDiv>
</flowRoot>
- <g id="shapes-f11-ja.svgg4447" sodipodi:insensitive="true" transform="translate(10, 2966.712961) translate(0.000000,-3203.903)">
+ <g id="shapes-f11-ja.svgg4447" sodipodi:insensitive="true" transform="translate(10, 3047.2275645000004) translate(0.000000,-3203.903)">
<path id="shapes-f11-ja.svgpath3194" stroke-linejoin="miter" d="M78.137,3274.7l-47.158-27" sodipodi:nodetypes="cc" stroke="#d3d3d3" stroke-linecap="butt" stroke-width="0.25000000pt" fill="none"/>
<path id="shapes-f11-ja.svgpath3195" stroke-linejoin="miter" d="M82.405,3271.7l-40.649-39.7" sodipodi:nodetypes="cc" stroke="#d3d3d3" stroke-linecap="butt" stroke-width="0.25000000pt" fill="none"/>
<path id="shapes-f11-ja.svgpath3196" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M11.441,3210a59.578,58.56,0,0,1,9.468,-12.1" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="matrix(1.157706,0.000000,0.000000,1.157706,21.52208,-466.2171)" stroke="#d3d3d3" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.64783323" sodipodi:end="3.9269908" sodipodi:start="3.6651914"/>
<text id="shapes-f11-ja.svgtext3818" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="matrix(0.709390,0.000000,0.000000,0.709390,10.28585,1617.123)" font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="8.3999996" font-variant="normal" y="2279.1907" x="30.19973" font-family="Bitstream Vera Sans" fill="#d3d3d3"><tspan id="shapes-f11-ja.svgtspan3819" y="2279.1907" x="30.199730" sodipodi:role="line"/><tspan id="shapes-f11-ja.svgtspan3821" fill="#d3d3d3"/><tspan id="shapes-f11-ja.svgtspan3823" role="line" dx="0 -0.23659326" dy="0 0" y="2289.2707" x="30.199730">15</tspan></text>
<path id="shapes-f11-ja.svgpath3825" sodipodi:rx="0.89163345" sodipodi:ry="0.89163345" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M41.375,3238a0.89163,0.89163,0,1,1,-1.783,0,0.89163,0.89163,0,1,1,1.783,0z" stroke-linejoin="miter" stroke-linecap="butt" transform="matrix(0.882077,0.000000,0.000000,0.882077,4.519106,381.4818)" stroke="#d3d3d3" stroke-dashoffset="0.0000000" sodipodi:cy="3237.9563" sodipodi:cx="40.483158" stroke-miterlimit="4.0000000" stroke-width="0.48604000" fill="none"/>
</g>
- <text id="shapes-f11-ja.svgtext3883" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 2966.712961) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.9588757" font-variant="normal" y="4.4230723" x="61.438835" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f11-ja.svgtspan3884" y="4.4230723" x="61.438835" role="line">扇形</tspan><tspan id="shapes-f11-ja.svgtspan3893" y="11.573723" x="61.438835" sodipodi:role="line"/></text>
- <text id="shapes-f11-ja.svgtext3888" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 2966.712961) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.9588757" font-variant="normal" y="-2.6629279" x="224.43098" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f11-ja.svgtspan3889" y="-2.6629279" x="224.43098" sodipodi:role="line"/><tspan id="shapes-f11-ja.svgtspan3891" y="4.4877232" x="224.43098" role="line">弧</tspan></text>
- <path id="shapes-f11-ja.svgpath3234" sodipodi:rx="30.710485" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3247.4a30.71,10.853,0,1,1,42.162,-15.8l-21.716,7.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3856" sodipodi:rx="30.710485" sodipodi:ry="30.962814" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3262.4a30.71,30.963,0,1,1,42.162,-45l-21.716,21.9z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3857" sodipodi:rx="30.710485" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3283a30.71,58.56,0,1,1,42.162,-85.1l-21.716,41.4z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3858" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-19.906,-44.5l59.572,0.8z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.1554016" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3859" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-11.93,-73l51.596,29.3z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.6651914" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3860" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-2.462,-85.1l42.128,41.4z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.9269908" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3861" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,9.877,-94.4l29.789,50.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3862" sodipodi:rx="15.141271" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M52.957,3283a15.141,58.56,0,0,1,2.51,-94.4l7.57,50.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3864" sodipodi:rx="75.147621" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M13.005,3247.4a75.148,10.853,0,1,1,103.16,-15.8l-53.133,7.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3865" sodipodi:rx="30.710485" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3247.4a30.71,10.853,0,1,1,42.162,-15.8" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3866" sodipodi:rx="30.710485" sodipodi:ry="30.962814" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3262.4a30.71,30.963,0,1,1,42.162,-45" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3867" sodipodi:rx="30.710485" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3283a30.71,58.56,0,1,1,42.162,-85.1" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3868" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-19.906,-44.5" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="3.1554016" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3869" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-11.93,-73" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="3.6651914" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3870" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-2.462,-85.1" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="3.9269908" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3871" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,9.877,-94.4" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3872" sodipodi:rx="15.141271" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M52.957,3283a15.141,58.56,0,0,1,2.51,-94.4" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3873" sodipodi:rx="75.147621" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M13.005,3247.4a75.148,10.853,0,1,1,103.16,-15.8" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
- <path id="shapes-f11-ja.svgpath3925" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-17.882,-58.9l57.548,15.2z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 2966.712961) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.4033920" sodipodi:start="2.2993372"/>
- <rect id="d0e424" display="none" height="1000px" width="288" y="3103.4" x="10"/>
+ <text id="shapes-f11-ja.svgtext3883" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 3047.2275645000004) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.9588757" font-variant="normal" y="4.4230723" x="61.438835" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f11-ja.svgtspan3884" y="4.4230723" x="61.438835" role="line">扇形</tspan><tspan id="shapes-f11-ja.svgtspan3893" y="11.573723" x="61.438835" sodipodi:role="line"/></text>
+ <text id="shapes-f11-ja.svgtext3888" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 3047.2275645000004) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.9588757" font-variant="normal" y="-2.6629279" x="224.43098" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f11-ja.svgtspan3889" y="-2.6629279" x="224.43098" sodipodi:role="line"/><tspan id="shapes-f11-ja.svgtspan3891" y="4.4877232" x="224.43098" role="line">弧</tspan></text>
+ <path id="shapes-f11-ja.svgpath3234" sodipodi:rx="30.710485" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3247.4a30.71,10.853,0,1,1,42.162,-15.8l-21.716,7.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3856" sodipodi:rx="30.710485" sodipodi:ry="30.962814" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3262.4a30.71,30.963,0,1,1,42.162,-45l-21.716,21.9z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3857" sodipodi:rx="30.710485" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3283a30.71,58.56,0,1,1,42.162,-85.1l-21.716,41.4z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3858" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-19.906,-44.5l59.572,0.8z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.1554016" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3859" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-11.93,-73l51.596,29.3z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.6651914" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3860" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-2.462,-85.1l42.128,41.4z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.9269908" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3861" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,9.877,-94.4l29.789,50.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3862" sodipodi:rx="15.141271" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M52.957,3283a15.141,58.56,0,0,1,2.51,-94.4l7.57,50.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3864" sodipodi:rx="75.147621" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M13.005,3247.4a75.148,10.853,0,1,1,103.16,-15.8l-53.133,7.7z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3865" sodipodi:rx="30.710485" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3247.4a30.71,10.853,0,1,1,42.162,-15.8" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3866" sodipodi:rx="30.710485" sodipodi:ry="30.962814" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3262.4a30.71,30.963,0,1,1,42.162,-45" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3867" sodipodi:rx="30.710485" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M42.591,3283a30.71,58.56,0,1,1,42.162,-85.1" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3868" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-19.906,-44.5" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="3.1554016" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3869" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-11.93,-73" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="3.6651914" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3870" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-2.462,-85.1" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="3.9269908" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3871" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,9.877,-94.4" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3872" sodipodi:rx="15.141271" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M52.957,3283a15.141,58.56,0,0,1,2.51,-94.4" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="4.1887902" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3873" sodipodi:rx="75.147621" sodipodi:ry="10.852578" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M13.005,3247.4a75.148,10.853,0,1,1,103.16,-15.8" sodipodi:open="true" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(172.8890,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" fill="none" stroke-width="0.75000000" sodipodi:end="5.4977871" sodipodi:start="2.2993372"/>
+ <path id="shapes-f11-ja.svgpath3925" sodipodi:rx="59.578407" sodipodi:ry="58.560177" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M23.371,3283a59.578,58.56,0,0,1,-17.882,-58.9l57.548,15.2z" fill="none" stroke-linejoin="miter" stroke-linecap="butt" transform="translate(10, 3047.2275645000004) translate(31.46863,-3159.292)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3239.2964" sodipodi:cx="63.037315" stroke-miterlimit="4.0000000" stroke-width="0.75000000" sodipodi:end="3.4033920" sodipodi:start="2.2993372"/>
+ <rect id="d0e424" display="none" height="1000px" width="288" y="3184" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e424"/>
</flowRegion>
<flowDiv xml:space="preserve">左図にあるせまい扇形は、<flowSpan font-weight="bold">Ctrl</flowSpan> を押して<flowSpan font-style="italic">角度をスナップする</flowSpan>ことで簡単に作ることができます。弧/扇形のショートカットは以下のとおりです:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 3139.034482)"/>
- <rect id="d0e436" display="none" height="1000px" width="258" y="3133" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 3220.2364505000005)"/>
+ <rect id="d0e436" display="none" height="1000px" width="258" y="3214.2" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e436"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらドラッグでハンドルは 15 度ごとにスナップする。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 3157.2454195)"/>
- <rect id="d0e442" display="none" height="1000px" width="258" y="3151.2" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 3238.1505130000005)"/>
+ <rect id="d0e442" display="none" height="1000px" width="258" y="3232.2" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e442"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Shift+クリック</flowSpan> で楕円全形になる (弧や扇形ではなく)。</flowDiv>
</flowRoot>
- <rect id="d0e448" display="none" height="1000px" width="288" y="3169.4" x="10"/>
+ <rect id="d0e448" display="none" height="1000px" width="288" y="3250.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e448"/>
</flowRegion>
<flowDiv xml:space="preserve">スナップ角度は Inkscape 設定 (<flowSpan font-family="Sans">変化の間隔</flowSpan>タブ) で変更できます。</flowDiv>
</flowRoot>
- <rect id="d0e454" display="none" height="1000px" width="288" y="3187.8" x="10"/>
+ <rect id="d0e454" display="none" height="1000px" width="288" y="3268.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e454"/>
</flowRegion>
<flowDiv xml:space="preserve">楕円のその他の 2 つハンドルは中心を基準としたサイズ変更に使用します。ショートカットは矩形の丸めハンドルに似ています:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 3222.557295)"/>
- <rect id="d0e460" display="none" height="1000px" width="258" y="3216.6" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 3304.9538585000005)"/>
+ <rect id="d0e460" display="none" height="1000px" width="258" y="3299" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e460"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらドラッグで、円になる (もう一方の半径が等しくなる)。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 3251.365795)"/>
- <rect id="d0e466" display="none" height="1000px" width="258" y="3245.4" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 3334.9134545000006)"/>
+ <rect id="d0e466" display="none" height="1000px" width="258" y="3328.9" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e466"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl+クリック</flowSpan> でドラッグせずに円を作成する。</flowDiv>
</flowRoot>
- <rect id="d0e472" display="none" height="1000px" width="288" y="3263.7" x="10"/>
+ <rect id="d0e472" display="none" height="1000px" width="288" y="3346.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e472"/>
</flowRegion>
<flowDiv xml:space="preserve">そして、矩形のリサイズハンドルの様に、楕円のリサイズハンドルも楕円の高さと幅を<flowSpan font-style="italic">楕円の座標系で</flowSpan>変更します。これは回転したり歪んだりしている楕円でも、回転や歪みはそのままで元の座標系に沿って伸張したり圧縮したりできることを意味します。これらの楕円のリサイズハンドルでサイズ変更を試してみましょう:</flowDiv>
</flowRoot>
- <path id="shapes-f12-ja.svgpath2133" sodipodi:rx="43.680855" sodipodi:ry="7.3592744" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M150.98,3607.9a43.681,7.3593,0,1,1,-87.358,0,43.681,7.3593,0,1,1,87.358,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3332.4492335) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
- <path id="shapes-f12-ja.svgpath2136" sodipodi:rx="58.547005" sodipodi:ry="13.607653" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M165.85,3607.9a58.547,13.608,0,1,1,-117.09,0,58.547,13.608,0,1,1,117.09,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3332.4492335) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
- <path id="shapes-f12-ja.svgpath3396" sodipodi:rx="37.951244" sodipodi:ry="61.554367" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M145.25,3607.9a37.951,61.554,0,1,1,-75.898,0,37.951,61.554,0,1,1,75.898,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3332.4492335) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
- <path id="shapes-f12-ja.svgpath2135" sodipodi:rx="23.418211" sodipodi:ry="25.328613" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M130.72,3607.9a23.418,25.329,0,1,1,-46.835,0,23.418,25.329,0,1,1,46.835,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3332.4492335) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
- <path id="shapes-f12-ja.svgpath2774" sodipodi:rx="4.9275141" sodipodi:ry="46.998589" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M112.23,3607.9a4.9275,46.999,0,1,1,-9.85,0,4.9275,46.999,0,1,1,9.85,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3332.4492335) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
- <path id="shapes-f12-ja.svgpath2134" sodipodi:rx="23.418211" sodipodi:ry="7.3592744" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M130.72,3607.9a23.418,7.3593,0,1,1,-46.835,0,23.418,7.3593,0,1,1,46.835,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3332.4492335) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
- <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="3426.6973105" x="10" font-family="Sans" font-style="normal" fill="#000000">
- <tspan y="3426.6973105" x="10">星形</tspan>
+ <path id="shapes-f12-ja.svgpath2133" sodipodi:rx="43.680855" sodipodi:ry="7.3592744" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M150.98,3607.9a43.681,7.3593,0,1,1,-87.358,0,43.681,7.3593,0,1,1,87.358,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3420.8221500000004) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
+ <path id="shapes-f12-ja.svgpath2136" sodipodi:rx="58.547005" sodipodi:ry="13.607653" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M165.85,3607.9a58.547,13.608,0,1,1,-117.09,0,58.547,13.608,0,1,1,117.09,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3420.8221500000004) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
+ <path id="shapes-f12-ja.svgpath3396" sodipodi:rx="37.951244" sodipodi:ry="61.554367" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M145.25,3607.9a37.951,61.554,0,1,1,-75.898,0,37.951,61.554,0,1,1,75.898,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3420.8221500000004) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
+ <path id="shapes-f12-ja.svgpath2135" sodipodi:rx="23.418211" sodipodi:ry="25.328613" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M130.72,3607.9a23.418,25.329,0,1,1,-46.835,0,23.418,25.329,0,1,1,46.835,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3420.8221500000004) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
+ <path id="shapes-f12-ja.svgpath2774" sodipodi:rx="4.9275141" sodipodi:ry="46.998589" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M112.23,3607.9a4.9275,46.999,0,1,1,-9.85,0,4.9275,46.999,0,1,1,9.85,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3420.8221500000004) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
+ <path id="shapes-f12-ja.svgpath2134" sodipodi:rx="23.418211" sodipodi:ry="7.3592744" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="arc" d="M130.72,3607.9a23.418,7.3593,0,1,1,-46.835,0,23.418,7.3593,0,1,1,46.835,0z" fill-rule="evenodd" stroke-linejoin="miter" fill-opacity="0.14715715" stroke-linecap="butt" transform="translate(10, 3420.8221500000004) matrix(1.271856,0.564749,-0.788706,0.436041,2855.335,-1599.074)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:cy="3607.9023" sodipodi:cx="107.30297" stroke-miterlimit="4.0000000" stroke-width="0.75000000" fill="#ffd300"/>
+ <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="3515.0702270000006" x="10" font-family="Sans" font-style="normal" fill="#000000">
+ <tspan y="3515.0702270000006" x="10">星形</tspan>
</text>
- <rect id="d0e494" display="none" height="1000px" width="288" y="3431.9" x="10"/>
+ <rect id="d0e494" display="none" height="1000px" width="288" y="3520.3" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e494"/>
</flowRegion>
<flowDiv xml:space="preserve">星形はもっとも複雑で刺激的な Inkscape のシェイプです。もし友人を Inkscape で驚かせるなら、星形ツールを使わせてみてください。これはもう飽きの来ない面白さ、まさに中毒的!</flowDiv>
</flowRoot>
- <rect id="d0e497" display="none" height="1000px" width="288" y="3472.8" x="10"/>
+ <rect id="d0e497" display="none" height="1000px" width="288" y="3562.4" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e497"/>
</flowRegion>
<flowDiv xml:space="preserve">星形ツールは 2 つの良く似た、しかし異なる種類のオブジェクト、星形と多角形を作成します。星形は頂点の長さと形を決める 2 つのハンドルを持ち、多角形はドラッグして回転とサイズ変更を行う 1 つのハンドルを持ちます:</flowDiv>
</flowRoot>
- <g id="shapes-f13-ja.svgg2711" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 3520.3233365) ">
+ <g id="shapes-f13-ja.svgg2711" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 3612.8898600000007) ">
<path id="shapes-f13-ja.svgpath2190" stroke-linejoin="miter" sodipodi:sides="5" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.98589379" fill="#fff100" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="matrix(0.672634,0.355353,-0.355353,0.672634,1407.527,-2577.172)" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="38.010052" sodipodi:r2="19.005026" sodipodi:arg1="0.45247489" sodipodi:arg2="1.0807934" sodipodi:type="star" d="M107.3,3871.6l-25.238,0.2-14.185,20.9-7.943-24-24.24-7,20.331-15-0.796-25.2,20.509,14.7,23.748-8.5-7.656,24,15.47,19.9z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="3855.0315" sodipodi:cx="73.117950"/>
<flowRoot id="shapes-f13-ja.svgflowRoot2695" style="text-anchor:middle;text-align:center;" font-weight="normal" xml:space="preserve" transform="translate(-1.8249517,0)" font-style="normal" font-size="6px" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f13-ja.svgflowRegion2697"><rect id="shapes-f13-ja.svgrect2699" style="text-align:center;" height="15" width="57.5" y="-0.13782" x="59.643"/></flowRegion><flowPara id="shapes-f13-ja.svgflowPara2701">星形</flowPara></flowRoot>
</g>
- <g id="shapes-f13-ja.svgg2718" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 3520.3233365) ">
+ <g id="shapes-f13-ja.svgg2718" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 3612.8898600000007) ">
<path id="shapes-f13-ja.svgpath2191" stroke-linejoin="miter" sodipodi:sides="5" inkscape:flatsided="true" stroke="#000" stroke-linecap="butt" stroke-width="0.98589379" fill="#fff100" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="matrix(0.672634,0.355353,-0.355353,0.672634,1513.826,-2577.172)" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="38.010052" sodipodi:r2="19.005026" sodipodi:arg1="0.45247489" sodipodi:arg2="1.0807934" sodipodi:type="star" d="M107.3,3871.6l-39.423,21.1-32.183-31,19.535-40.2,44.257,6.2,7.814,43.9z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="3855.0315" sodipodi:cx="73.117950"/>
<flowRoot id="shapes-f13-ja.svgflowRoot2703" style="text-anchor:middle;text-align:center;" font-weight="normal" xml:space="preserve" transform="translate(104.63225,-0.5949451)" font-style="normal" font-size="6px" font-family="Bitstream Vera Sans" fill="#000000"><flowRegion id="shapes-f13-ja.svgflowRegion2705"><rect id="shapes-f13-ja.svgrect2707" style="text-align:center;" height="15" width="57.5" y="-0.13782" x="59.643"/></flowRegion><flowPara id="shapes-f13-ja.svgflowPara2709">多角形</flowPara></flowRoot>
</g>
- <rect id="d0e510" display="none" height="1000px" width="288" y="3597.4" x="10"/>
+ <rect id="d0e510" display="none" height="1000px" width="288" y="3690" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e510"/>
</flowRegion>
<flowDiv xml:space="preserve">星形ツールのコントロールバーには先頭にチェックボックスがあり、これは星形を多角形に、またその逆に変換します。次に、星形と多角形の<flowSpan font-style="italic">頂点数</flowSpan>を設定する入力フィールドがあり、このパラメータはコントロールバーでしか編集できません。許容される数値は 3 (あたりまえですが) から 1024 までです。しかし低速なコンピュータの場合には、大きな値 (200 以上) は入れるべきではありません。</flowDiv>
</flowRoot>
- <rect id="d0e516" display="none" height="1000px" width="288" y="3669.3" x="10"/>
+ <rect id="d0e516" display="none" height="1000px" width="288" y="3768.3" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e516"/>
</flowRegion>
<flowDiv xml:space="preserve">新規に星形や多角形を作るときは、</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 3693.4970645000003)"/>
- <rect id="d0e522" display="none" height="1000px" width="258" y="3687.5" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 3792.326207000001)"/>
+ <rect id="d0e522" display="none" height="1000px" width="258" y="3786.3" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e522"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらドラッグすると角度の増分が 15 度にスナップされる。</flowDiv>
</flowRoot>
- <rect id="d0e528" display="none" height="1000px" width="288" y="3715.9" x="10"/>
+ <rect id="d0e528" display="none" height="1000px" width="288" y="3816.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e528"/>
</flowRegion>
<flowDiv xml:space="preserve">生来、星形は断然面白いシェイプです (しばしば多角形の方がより有用ですが)。星形の二つのハンドルはわずかに異なる機能を持っています。はじめのハンドル (初期状態で頂点にあるハンドル、つまり星形の <flowSpan font-style="italic">凸</flowSpan> な角にある方) は星の光芒の長さを調整します。しかし、ハンドルを回すと (シェイプの中心で相対的に)、もう一方のハンドルもそれに応じて回転します。このことは星形の光芒はこのハンドルでは歪められないことを意味します。</flowDiv>
</flowRoot>
- <rect id="d0e534" display="none" height="1000px" width="288" y="3788.1" x="10"/>
+ <rect id="d0e534" display="none" height="1000px" width="288" y="3895.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e534"/>
</flowRegion>
<flowDiv xml:space="preserve">もう一方のハンドル (初期状態で頂点の間の <flowSpan font-style="italic">凹</flowSpan> な角にある) は、逆に、半径方向にも接線方向にも頂点ハンドルに影響をあたえずに自由に動きます (実際、このハンドルはもう一方のハンドルより遠くに動いて頂点になることもできます)。このハンドルは星形の頂点を歪ませ、光芒をあらゆる種類の結晶型、曼荼羅模様、雪片形、ヤマアラシ形にします:</flowDiv>
</flowRoot>
- <path id="shapes-f14-ja.svgpath2725" stroke-linejoin="miter" sodipodi:sides="48" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.015394123" fill="none" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" transform="translate(10, 3856.9366055) matrix(2.435996,0.000000,0.000000,2.435996,-239.6238,-10265.24)" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="15.977139" sodipodi:r2="5.2552228" sodipodi:arg1="0.54696605" sodipodi:arg2="2.0469000" sodipodi:type="star" d="M184.95,4242.3l-16.06-3.6,14.86,5.3-15.45-5.7,14.03,7.2-14.56-7.6,12.96,9-13.44-9.5,11.67,10.6-12.08-11.2,10.19,12.1-10.52-12.7,8.52,13.3-8.77-13.9,6.72,14.3-6.89-15,4.8,15.1-4.88-15.8,2.8,15.6-2.79-16.3,0.75,15.8-0.64-16.4-1.33,15.7,1.52-16.4-3.37,15.4,3.64-16-5.35,14.8,5.7-15.4-7.24,14,7.67-14.5-9.01,12.9,9.51-13.4-10.63,11.6,11.18-12-12.06,10.2,12.66-10.6-13.28,8.6,13.92-8.8-14.28,6.7,14.95-6.9-15.04,4.8,15.72-4.9-15.54,2.8,16.23-2.8-15.77,0.8,16.45-0.6-15.73-1.4,16.39,1.5-15.42-3.3,16.05,3.6-14.85-5.3,15.44,5.7-14.03-7.3,14.57,7.7-12.97-9,13.44,9.5-11.67-10.6,12.08,11.1-10.19-12,10.53,12.6-8.53-13.2,8.78,13.9-6.72-14.3,6.88,15-4.8-15.1,4.88,15.7-2.79-15.5,2.78,16.2-0.74-15.7,0.64,16.4,1.32-15.7-1.51,16.4,3.36-15.5-3.64,16.1,5.35-14.9-5.7,15.5,7.24-14-7.67,14.5,9.01-12.9-9.51,13.4,10.63-11.7-11.18,12.1,12.06-10.2-12.66,10.5,13.29-8.5-13.93,8.8,14.29-6.7-14.96,6.9,15.04-4.8-15.72,4.8,15.54-2.8-16.23,2.8,15.77-0.7-16.45,0.6,15.74,1.3-16.4-1.5,15.43,3.4z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="4233.9868" sodipodi:cx="171.30144"/>
- <path id="shapes-f14-ja.svgpath2918" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M45.957,4353.5l-10.302-42.7-18.837,45.2,37.399-23-48.787-3.9,33.416,28.4-11.314-47.6-16.747,40.6,41.794-25.5-43.766-3.4,37.144,31.9z" fill-rule="evenodd" fill="#520100" sodipodi:r1="24.878733" inkscape:flatsided="false" transform="translate(10, 3856.9366055) matrix(0.996295,-8.599074e-2,8.599074e-2,0.996295,-255.7489,-4191.319)" sodipodi:arg2="-1.3248582" sodipodi:arg1="0.85670563" inkscape:randomized="0.0000000" sodipodi:cy="4334.6870" sodipodi:cx="29.663147" inkscape:rounded="0.0000000" sodipodi:r2="24.610689" sodipodi:sides="5"/>
- <polygon id="shapes-f14-ja.svgpolygon1259" stroke-linejoin="miter" sodipodi:sides="3" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.47465411" fill="none" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" transform="translate(10, 3856.9366055) matrix(8.282123e-2,0.375917,-0.375917,8.282123e-2,1327.200,-115.9900)" sodipodi:cx="18.779343" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="31.235876" sodipodi:r2="30.366934" sodipodi:arg1="1.1239539" sodipodi:arg2="-0.65664333" sodipodi:type="star" d="M 32.276994,2897.7581 L 42.831345,2851.0513 L -12.364565,2867.1939 L 22.807589,2899.6877 L 36.425599,2843.8153 L -9.3009067,2858.0284 L 32.276994,2897.7581 z " stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="2869.5891" points="32.277,2897.8,42.831,2851-12.365,2867.2,22.808,2899.7,36.426,2843.8-9.3009,2858,32.277,2897.8"/>
- <polygon id="shapes-f14-ja.svgpolygon1263" stroke="#000" stroke-width="0.25000000" sodipodi:type="star" d="M 171.36150,2897.7582 L 187.98050,2859.9248 L 156.48797,2872.4552 L 197.60521,2876.5696 L 175.95638,2850.4906 L 184.74922,2890.8668 L 202.86204,2862.2187 L 167.17908,2883.0581 L 200.02225,2891.4317 L 169.17612,2863.9349 L 171.36150,2897.7582 z " fill="none" sodipodi:r1="24.967192" inkscape:flatsided="false" transform="translate(10, 3856.9366055) matrix(0.968463,-0.249152,0.249152,0.968463,-691.4436,-2621.787)" sodipodi:arg2="-1.1525840" sodipodi:arg1="1.9818609" inkscape:randomized="0.0000000" sodipodi:cy="2874.8708" points="171.36,2897.8,187.98,2859.9,156.49,2872.5,197.6,2876.6,175.96,2850.5,184.75,2890.9,202.86,2862.2,167.18,2883.1,200.02,2891.4,169.18,2863.9,171.36,2897.8" sodipodi:sides="5" inkscape:rounded="0.0000000" sodipodi:r2="16.355642" sodipodi:cx="181.33803"/>
- <path id="shapes-f14-ja.svgpath3540" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M35.93,4210.6l-18.461-23.1,16.491,24.7-13.603-26.2,11.356,27.4-8.223-28.4,5.785,29.2-2.527-29.5-0.009,29.7,3.266-29.4-5.802,29.2,8.934-28.2-11.373,27.4,14.259-25.9-16.506,24.7,19.035-22.6-21.005,21,23.081-18.5-24.697,16.5,26.238-13.6-27.44,11.4,28.389-8.2-29.128,5.7,29.447-2.5h-29.697l29.374,3.3-29.124-5.8,28.172,8.9-27.433-11.4,25.888,14.3-24.686-16.5,22.608,19-20.992-21,18.461,23.1-16.491-24.7,13.603,26.2-11.356-27.4,8.223,28.4-5.784-29.1,2.527,29.4,0.009-29.7-3.267,29.4,5.803-29.1-8.935,28.1,11.373-27.4-14.259,25.9,16.506-24.7-19.035,22.6,21.005-21-23.08,18.5,24.697-16.5-26.239,13.6,27.44-11.4-28.388,8.3,29.127-5.8-29.446,2.5h29.696l-29.374-3.3,29.124,5.8-28.172-8.9,27.433,11.4-25.888-14.3,24.687,16.5-22.609-19,20.992,21z" fill-rule="evenodd" fill="#520100" sodipodi:r1="12.998599" inkscape:flatsided="false" transform="translate(10, 3856.9366055) matrix(1.287909,0.000000,0.000000,1.287909,2.889197,-5380.424)" sodipodi:arg2="-2.1593010" sodipodi:arg1="0.78539816" inkscape:randomized="0.0000000" sodipodi:cy="4201.4121" sodipodi:cx="26.738611" inkscape:rounded="0.0000000" sodipodi:r2="16.698013" sodipodi:sides="32"/>
- <path id="shapes-f14-ja.svgpath2723" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M262.67,4224.4l-35.67,13,23.42-9.4-34.46-16,23.2,9.9-13.07-35.6,9.4,23.4,15.98-34.5-9.9,23.2,35.66-13-23.41,9.4,34.46,15.9-23.21-9.9,13.07,35.7-9.4-23.4-15.98,34.5,9.91-23.2z" fill-rule="evenodd" fill="#520100" sodipodi:r1="16.710012" inkscape:flatsided="false" transform="translate(10, 3856.9366055) translate(9.625604,-4175.231)" sodipodi:arg2="2.3382889" sodipodi:arg1="0.88740509" inkscape:randomized="0.0000000" sodipodi:cy="4211.3926" sodipodi:cx="252.11676" inkscape:rounded="0.0000000" sodipodi:r2="36.167358" sodipodi:sides="8"/>
- <path id="shapes-f14-ja.svgpath2724" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M307.95,4272l-41.28,0.7,33.56,17.4-29.65-28.7,11.41,36-0.64-41.3-17.41,33.6,28.73-29.7-36.04,11.4,41.28-0.6-33.56-17.4,29.65,28.7-11.42-36,0.65,41.3,17.41-33.6-28.73,29.6,36.04-11.4z" fill-rule="evenodd" fill="#520100" sodipodi:r1="25.662985" inkscape:flatsided="false" transform="translate(10, 3856.9366055) matrix(1.000000,3.348310e-5,-3.348310e-5,1.000000,0.143069,-4181.756)" sodipodi:arg2="3.0816518" sodipodi:arg1="0.011487387" inkscape:randomized="0.0000000" sodipodi:cy="4271.7378" sodipodi:cx="282.28931" inkscape:rounded="0.0000000" sodipodi:r2="15.646836" sodipodi:sides="8"/>
- <path id="shapes-f14-ja.svgpath3347" stroke-linejoin="miter" sodipodi:sides="8" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.34379637" fill="none" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" transform="translate(10, 3856.9366055) matrix(0.727174,0.000000,0.000000,0.727174,28.25777,-3046.217)" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="27.155294" sodipodi:r2="27.241930" sodipodi:arg1="1.5707963" sodipodi:arg2="-2.3580603" sodipodi:type="star" d="M104.6,4261l-19.304-46.4,0.098,38.4,19.146-46.4-27.1,27.2,46.38-19.3-38.426,0.1,46.446,19.2-27.24-27.1,19.29,46.4-0.09-38.5-19.15,46.5,27.1-27.3-46.382,19.3,38.432-0.1-46.447-19.1,27.247,27.1z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="4233.8340" sodipodi:cx="104.59527"/>
- <path id="shapes-f14-ja.svgpath5832" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M114.31,4305.9l-54.977-38.4,42.247,53.1-37.383-55.7,20.208,64.8-14.737-65.4-4.56,67.7,9.899-66.4-28.712,61.5,33.197-58.3-48.986,47,52.013-42.4-62.644,26.1,63.804-20.7-67.842,1.7,66.977,3.8-63.877-23,61.105,27.7-51.286-44.4,46.981,47.9-31.768-60,26.511,61.6-7.959-67.4,2.461,67,16.924-65.7-21.921,63.4,39.522-55.1-43.344,51.2,56.787-37.2-58.916,32.1,66.376-14.2-66.526,8.7,66.996,10.8-65.147-16,58.577,34.2z" fill-rule="evenodd" fill="#520100" sodipodi:r1="52.870548" inkscape:flatsided="false" transform="translate(10, 3856.9366055) translate(0.000000,-4182.265)" sodipodi:arg2="-2.2448164" sodipodi:arg1="0.52982957" inkscape:randomized="0.0000000" sodipodi:cy="4279.2217" sodipodi:cx="68.691193" inkscape:rounded="0.0000000" sodipodi:r2="14.993350" sodipodi:sides="17"/>
- <rect id="d0e550" display="none" height="1000px" width="288" y="4018.6" x="10"/>
+ <path id="shapes-f14-ja.svgpath2725" stroke-linejoin="miter" sodipodi:sides="48" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.015394123" fill="none" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" transform="translate(10, 3970.031538000001) matrix(2.435996,0.000000,0.000000,2.435996,-239.6238,-10265.24)" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="15.977139" sodipodi:r2="5.2552228" sodipodi:arg1="0.54696605" sodipodi:arg2="2.0469000" sodipodi:type="star" d="M184.95,4242.3l-16.06-3.6,14.86,5.3-15.45-5.7,14.03,7.2-14.56-7.6,12.96,9-13.44-9.5,11.67,10.6-12.08-11.2,10.19,12.1-10.52-12.7,8.52,13.3-8.77-13.9,6.72,14.3-6.89-15,4.8,15.1-4.88-15.8,2.8,15.6-2.79-16.3,0.75,15.8-0.64-16.4-1.33,15.7,1.52-16.4-3.37,15.4,3.64-16-5.35,14.8,5.7-15.4-7.24,14,7.67-14.5-9.01,12.9,9.51-13.4-10.63,11.6,11.18-12-12.06,10.2,12.66-10.6-13.28,8.6,13.92-8.8-14.28,6.7,14.95-6.9-15.04,4.8,15.72-4.9-15.54,2.8,16.23-2.8-15.77,0.8,16.45-0.6-15.73-1.4,16.39,1.5-15.42-3.3,16.05,3.6-14.85-5.3,15.44,5.7-14.03-7.3,14.57,7.7-12.97-9,13.44,9.5-11.67-10.6,12.08,11.1-10.19-12,10.53,12.6-8.53-13.2,8.78,13.9-6.72-14.3,6.88,15-4.8-15.1,4.88,15.7-2.79-15.5,2.78,16.2-0.74-15.7,0.64,16.4,1.32-15.7-1.51,16.4,3.36-15.5-3.64,16.1,5.35-14.9-5.7,15.5,7.24-14-7.67,14.5,9.01-12.9-9.51,13.4,10.63-11.7-11.18,12.1,12.06-10.2-12.66,10.5,13.29-8.5-13.93,8.8,14.29-6.7-14.96,6.9,15.04-4.8-15.72,4.8,15.54-2.8-16.23,2.8,15.77-0.7-16.45,0.6,15.74,1.3-16.4-1.5,15.43,3.4z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="4233.9868" sodipodi:cx="171.30144"/>
+ <path id="shapes-f14-ja.svgpath2918" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M45.957,4353.5l-10.302-42.7-18.837,45.2,37.399-23-48.787-3.9,33.416,28.4-11.314-47.6-16.747,40.6,41.794-25.5-43.766-3.4,37.144,31.9z" fill-rule="evenodd" fill="#520100" sodipodi:r1="24.878733" inkscape:flatsided="false" transform="translate(10, 3970.031538000001) matrix(0.996295,-8.599074e-2,8.599074e-2,0.996295,-255.7489,-4191.319)" sodipodi:arg2="-1.3248582" sodipodi:arg1="0.85670563" inkscape:randomized="0.0000000" sodipodi:cy="4334.6870" sodipodi:cx="29.663147" inkscape:rounded="0.0000000" sodipodi:r2="24.610689" sodipodi:sides="5"/>
+ <polygon id="shapes-f14-ja.svgpolygon1259" stroke-linejoin="miter" sodipodi:sides="3" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.47465411" fill="none" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" transform="translate(10, 3970.031538000001) matrix(8.282123e-2,0.375917,-0.375917,8.282123e-2,1327.200,-115.9900)" sodipodi:cx="18.779343" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="31.235876" sodipodi:r2="30.366934" sodipodi:arg1="1.1239539" sodipodi:arg2="-0.65664333" sodipodi:type="star" d="M 32.276994,2897.7581 L 42.831345,2851.0513 L -12.364565,2867.1939 L 22.807589,2899.6877 L 36.425599,2843.8153 L -9.3009067,2858.0284 L 32.276994,2897.7581 z " stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="2869.5891" points="32.277,2897.8,42.831,2851-12.365,2867.2,22.808,2899.7,36.426,2843.8-9.3009,2858,32.277,2897.8"/>
+ <polygon id="shapes-f14-ja.svgpolygon1263" stroke="#000" stroke-width="0.25000000" sodipodi:type="star" d="M 171.36150,2897.7582 L 187.98050,2859.9248 L 156.48797,2872.4552 L 197.60521,2876.5696 L 175.95638,2850.4906 L 184.74922,2890.8668 L 202.86204,2862.2187 L 167.17908,2883.0581 L 200.02225,2891.4317 L 169.17612,2863.9349 L 171.36150,2897.7582 z " fill="none" sodipodi:r1="24.967192" inkscape:flatsided="false" transform="translate(10, 3970.031538000001) matrix(0.968463,-0.249152,0.249152,0.968463,-691.4436,-2621.787)" sodipodi:arg2="-1.1525840" sodipodi:arg1="1.9818609" inkscape:randomized="0.0000000" sodipodi:cy="2874.8708" points="171.36,2897.8,187.98,2859.9,156.49,2872.5,197.6,2876.6,175.96,2850.5,184.75,2890.9,202.86,2862.2,167.18,2883.1,200.02,2891.4,169.18,2863.9,171.36,2897.8" sodipodi:sides="5" inkscape:rounded="0.0000000" sodipodi:r2="16.355642" sodipodi:cx="181.33803"/>
+ <path id="shapes-f14-ja.svgpath3540" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M35.93,4210.6l-18.461-23.1,16.491,24.7-13.603-26.2,11.356,27.4-8.223-28.4,5.785,29.2-2.527-29.5-0.009,29.7,3.266-29.4-5.802,29.2,8.934-28.2-11.373,27.4,14.259-25.9-16.506,24.7,19.035-22.6-21.005,21,23.081-18.5-24.697,16.5,26.238-13.6-27.44,11.4,28.389-8.2-29.128,5.7,29.447-2.5h-29.697l29.374,3.3-29.124-5.8,28.172,8.9-27.433-11.4,25.888,14.3-24.686-16.5,22.608,19-20.992-21,18.461,23.1-16.491-24.7,13.603,26.2-11.356-27.4,8.223,28.4-5.784-29.1,2.527,29.4,0.009-29.7-3.267,29.4,5.803-29.1-8.935,28.1,11.373-27.4-14.259,25.9,16.506-24.7-19.035,22.6,21.005-21-23.08,18.5,24.697-16.5-26.239,13.6,27.44-11.4-28.388,8.3,29.127-5.8-29.446,2.5h29.696l-29.374-3.3,29.124,5.8-28.172-8.9,27.433,11.4-25.888-14.3,24.687,16.5-22.609-19,20.992,21z" fill-rule="evenodd" fill="#520100" sodipodi:r1="12.998599" inkscape:flatsided="false" transform="translate(10, 3970.031538000001) matrix(1.287909,0.000000,0.000000,1.287909,2.889197,-5380.424)" sodipodi:arg2="-2.1593010" sodipodi:arg1="0.78539816" inkscape:randomized="0.0000000" sodipodi:cy="4201.4121" sodipodi:cx="26.738611" inkscape:rounded="0.0000000" sodipodi:r2="16.698013" sodipodi:sides="32"/>
+ <path id="shapes-f14-ja.svgpath2723" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M262.67,4224.4l-35.67,13,23.42-9.4-34.46-16,23.2,9.9-13.07-35.6,9.4,23.4,15.98-34.5-9.9,23.2,35.66-13-23.41,9.4,34.46,15.9-23.21-9.9,13.07,35.7-9.4-23.4-15.98,34.5,9.91-23.2z" fill-rule="evenodd" fill="#520100" sodipodi:r1="16.710012" inkscape:flatsided="false" transform="translate(10, 3970.031538000001) translate(9.625604,-4175.231)" sodipodi:arg2="2.3382889" sodipodi:arg1="0.88740509" inkscape:randomized="0.0000000" sodipodi:cy="4211.3926" sodipodi:cx="252.11676" inkscape:rounded="0.0000000" sodipodi:r2="36.167358" sodipodi:sides="8"/>
+ <path id="shapes-f14-ja.svgpath2724" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M307.95,4272l-41.28,0.7,33.56,17.4-29.65-28.7,11.41,36-0.64-41.3-17.41,33.6,28.73-29.7-36.04,11.4,41.28-0.6-33.56-17.4,29.65,28.7-11.42-36,0.65,41.3,17.41-33.6-28.73,29.6,36.04-11.4z" fill-rule="evenodd" fill="#520100" sodipodi:r1="25.662985" inkscape:flatsided="false" transform="translate(10, 3970.031538000001) matrix(1.000000,3.348310e-5,-3.348310e-5,1.000000,0.143069,-4181.756)" sodipodi:arg2="3.0816518" sodipodi:arg1="0.011487387" inkscape:randomized="0.0000000" sodipodi:cy="4271.7378" sodipodi:cx="282.28931" inkscape:rounded="0.0000000" sodipodi:r2="15.646836" sodipodi:sides="8"/>
+ <path id="shapes-f14-ja.svgpath3347" stroke-linejoin="miter" sodipodi:sides="8" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.34379637" fill="none" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" transform="translate(10, 3970.031538000001) matrix(0.727174,0.000000,0.000000,0.727174,28.25777,-3046.217)" stroke-miterlimit="4.0000000" inkscape:rounded="0.0000000" sodipodi:r1="27.155294" sodipodi:r2="27.241930" sodipodi:arg1="1.5707963" sodipodi:arg2="-2.3580603" sodipodi:type="star" d="M104.6,4261l-19.304-46.4,0.098,38.4,19.146-46.4-27.1,27.2,46.38-19.3-38.426,0.1,46.446,19.2-27.24-27.1,19.29,46.4-0.09-38.5-19.15,46.5,27.1-27.3-46.382,19.3,38.432-0.1-46.447-19.1,27.247,27.1z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="4233.8340" sodipodi:cx="104.59527"/>
+ <path id="shapes-f14-ja.svgpath5832" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M114.31,4305.9l-54.977-38.4,42.247,53.1-37.383-55.7,20.208,64.8-14.737-65.4-4.56,67.7,9.899-66.4-28.712,61.5,33.197-58.3-48.986,47,52.013-42.4-62.644,26.1,63.804-20.7-67.842,1.7,66.977,3.8-63.877-23,61.105,27.7-51.286-44.4,46.981,47.9-31.768-60,26.511,61.6-7.959-67.4,2.461,67,16.924-65.7-21.921,63.4,39.522-55.1-43.344,51.2,56.787-37.2-58.916,32.1,66.376-14.2-66.526,8.7,66.996,10.8-65.147-16,58.577,34.2z" fill-rule="evenodd" fill="#520100" sodipodi:r1="52.870548" inkscape:flatsided="false" transform="translate(10, 3970.031538000001) translate(0.000000,-4182.265)" sodipodi:arg2="-2.2448164" sodipodi:arg1="0.52982957" inkscape:randomized="0.0000000" sodipodi:cy="4279.2217" sodipodi:cx="68.691193" inkscape:rounded="0.0000000" sodipodi:r2="14.993350" sodipodi:sides="17"/>
+ <rect id="d0e550" display="none" height="1000px" width="288" y="4131.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e550"/>
</flowRegion>
<flowDiv xml:space="preserve">もし、飾りのない普通の星形を作りたいなら、ハンドルの歪みの動きを規制することができます:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 4053.4775485)"/>
- <rect id="d0e556" display="none" height="1000px" width="258" y="4047.5" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 4167.563951000002)"/>
+ <rect id="d0e556" display="none" height="1000px" width="258" y="4161.6" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e556"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl</flowSpan> を押しながらドラッグすることで、光芒を半径方向に限定 (歪みなし) する。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 4083.0154045)"/>
- <rect id="d0e562" display="none" height="1000px" width="258" y="4077" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 4197.832140000002)"/>
+ <rect id="d0e562" display="none" height="1000px" width="258" y="4191.8" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e562"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl+クリック</flowSpan> でドラッグせずに歪みをとる。</flowDiv>
</flowRoot>
- <rect id="d0e568" display="none" height="1000px" width="288" y="4095.3" x="10"/>
+ <rect id="d0e568" display="none" height="1000px" width="288" y="4209.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e568"/>
</flowRegion>
<flowDiv xml:space="preserve">キャンバス上でのハンドルのドラッグの有用な補足として、2 つのハンドルの中心からの距離の比、<flowSpan font-family="Sans">スポーク比</flowSpan> がコントロールバーにあります。</flowDiv>
</flowRoot>
- <rect id="d0e574" display="none" height="1000px" width="288" y="4124.7" x="10"/>
+ <rect id="d0e574" display="none" height="1000px" width="288" y="4239" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e574"/>
</flowRegion>
<flowDiv xml:space="preserve">Inkscape の星形は他にも 2 つの仕掛けがあります。幾何学の世界では多角形は鋭角から直線の辺を持ちますが、現実世界では様々な度数の曲がりや丸さが存在します。そして Inkscape もそれを実現可能としています。ただし、多角形の丸めは矩形の丸めとは少し異なる作用をします。丸めるにはハンドルを使う必要がありません。以下のようにします:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 4192.23768)"/>
- <rect id="d0e580" display="none" height="1000px" width="258" y="4186.2" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 4311.512931500002)"/>
+ <rect id="d0e580" display="none" height="1000px" width="258" y="4305.5" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e580"/>
</flowRegion>
<flowDiv xml:space="preserve">接線方向に <flowSpan font-weight="bold">Shift+ドラッグ</flowSpan> で星形や多角形を丸める。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 4210.409555)"/>
- <rect id="d0e587" display="none" height="1000px" width="258" y="4204.4" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 4329.575431500002)"/>
+ <rect id="d0e587" display="none" height="1000px" width="258" y="4323.6" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e587"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Shift+クリック</flowSpan> で丸めを取り除く。</flowDiv>
</flowRoot>
- <rect id="d0e593" display="none" height="1000px" width="288" y="4222.4" x="10"/>
+ <rect id="d0e593" display="none" height="1000px" width="288" y="4341.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e593"/>
</flowRegion>
<flowDiv xml:space="preserve">&quot;接線方向&quot; とは中心に対して直角方向と言う意味です。Shift を押しながらハンドルを反時計方向に &quot;回転&quot; すると、丸めの値は正になり、時計方向に回すと負の丸めになります (下の負の丸めの例を見てください)。</flowDiv>
</flowRoot>
- <rect id="d0e596" display="none" height="1000px" width="288" y="4262.7" x="10"/>
+ <rect id="d0e596" display="none" height="1000px" width="288" y="4383.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e596"/>
</flowRegion>
<flowDiv xml:space="preserve">ここで、丸めた正方形 (矩形ツール) と丸めた正 4 角形 (星形ツール) を比較してみましょう:</flowDiv>
</flowRoot>
- <g id="shapes-f15-ja.svgg3367" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 4299.6425365000005) ">
+ <g id="shapes-f15-ja.svgg3367" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 4421.313593500003) ">
<path id="shapes-f15-ja.svgpath4264" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" sodipodi:sides="4" fill-rule="evenodd" fill="#000" sodipodi:r1="45.711628" sodipodi:r2="32.323002" sodipodi:arg1="0.78539816" sodipodi:arg2="1.5707963" transform="matrix(1.174602,0.000000,0.000000,1.174602,-0.548917,-5471.588)" inkscape:randomized="0.0000000" sodipodi:cy="4696.8921" sodipodi:cx="171.63371" inkscape:rounded="0.18435333" inkscape:flatsided="true" d="M203.96,4729.2c-8.43,8.4-56.22,8.4-64.65,0s-8.43-56.2,0-64.6c8.43-8.5,56.22-8.5,64.65,0,8.42,8.4,8.42,56.2,0,64.6z"/>
<flowRoot id="shapes-f15-ja.svgflowRoot2696" style="writing-mode:lr-tb;text-anchor:middle;text-align:center;" font-weight="normal" xml:space="preserve" transform="translate(0.2960376,29.61964)" line-height="125%" font-stretch="normal" font-size="10px" font-variant="normal" font-style="normal" font-family="Bitstream Vera Sans" fill="#ffffff"><flowRegion id="shapes-f15-ja.svgflowRegion2698"><rect id="shapes-f15-ja.svgrect2700" style="text-align:center;" height="85.863" width="82.327" y="2.3086" x="159.1" fill="#FFF"/></flowRegion><flowPara id="shapes-f15-ja.svgflowPara2702">丸めた 多角形</flowPara></flowRoot>
</g>
- <g id="shapes-f15-ja.svgg3360" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 4299.6425365000005) ">
+ <g id="shapes-f15-ja.svgg3360" xmlns:cc="http://creativecommons.org/ns#" transform="translate(10, 4421.313593500003) ">
<rect id="shapes-f15-ja.svgrect4263" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" rx="18.04" ry="18.04" height="87.192" width="87.192" y="1.8127" x="56.117" fill="#000"/>
<flowRoot id="shapes-f15-ja.svgflowRoot3352" style="writing-mode:lr-tb;text-anchor:middle;text-align:center;" font-weight="normal" xml:space="preserve" transform="translate(-100.74096,29.637406)" line-height="125%" font-stretch="normal" font-size="10px" font-variant="normal" font-style="normal" font-family="Bitstream Vera Sans" fill="#ffffff"><flowRegion id="shapes-f15-ja.svgflowRegion3354"><rect id="shapes-f15-ja.svgrect3356" style="text-align:center;" height="85.863" width="82.327" y="2.3086" x="159.1" fill="#FFF"/></flowRegion><flowPara id="shapes-f15-ja.svgflowPara3358">丸めた 矩形</flowPara></flowRoot>
</g>
- <rect id="d0e609" display="none" height="1000px" width="288" y="4402.4" x="10"/>
+ <rect id="d0e609" display="none" height="1000px" width="288" y="4524.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e609"/>
</flowRegion>
<flowDiv xml:space="preserve">見て分かるように、丸めた矩形は辺に直線区間と円弧状 (一般的には楕円弧) の区間があり、丸めた多角形と星形には直線区間が全くありません。曲率は最大 (角の部分) から最小 (角と角の中間) へと滑らかに変化します。Inkscape はただ連続なベジエのハンドルをシェイプの頂点に追加しているだけです (シェイプをパスに変換すればベジェハンドルを見ること、調べることができます)。</flowDiv>
</flowRoot>
- <rect id="d0e612" display="none" height="1000px" width="288" y="4464.7" x="10"/>
+ <rect id="d0e612" display="none" height="1000px" width="288" y="4590.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e612"/>
</flowRegion>
<flowDiv xml:space="preserve">コントロールバーの <flowSpan font-family="Sans">丸め</flowSpan> パラメータは接線と近接する多角形/星形の辺の長さの比です。このパラメータは負の値を取ることもでき、その場合は接線の向きを反転します。0.2 から 0.4 の値では &quot;普通の&quot; 丸めになります。他の値にすると美しい、入り組んだ、あるいは予測不可能な形になる傾向があります。大きな丸め値の星形はハンドルの位置を大きく上回る形状になります。いくつかの例を示します。数値は丸め値を表します:</flowDiv>
</flowRoot>
- <path id="shapes-f16-ja.svgpath1575" stroke-linejoin="miter" sodipodi:sides="5" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="3.3750434" fill="none" transform="translate(10, 4544.2537875) matrix(0.307966,-3.233534e-2,-3.233534e-2,-0.307966,-34.05150,272.3350)" stroke-miterlimit="4.0000000" inkscape:rounded="5.1300000" sodipodi:r1="27.797562" sodipodi:r2="27.797562" sodipodi:arg1="0.22082877" sodipodi:arg2="0.84914730" sodipodi:type="star" d="M281.19,558.07c-19.31,85.99,57.4-43.45-8.76,14.78-66.16,58.22,71.98-1.41-15.77,6.81-87.75,8.21,59.05,41.17-16.77-3.77-75.81-44.93,23.58,68.02-11.35-12.89-34.92-80.92-20.9,68.88-1.6-17.11,19.31-85.99-57.4,43.44,8.76-14.78,66.17-58.22-71.97,1.41,15.78-6.81,87.74-8.21-59.06-41.17,16.76,3.77,75.82,44.93-23.58-68.02,11.35,12.89,34.93,80.92,20.9-68.88,1.6,17.11z" stroke-opacity="0.13114752" inkscape:randomized="0.0000000" sodipodi:cy="551.97913" sodipodi:cx="254.06618"/>
- <path id="shapes-f16-ja.svgpath1556" stroke-linejoin="miter" sodipodi:sides="18" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.031250000" fill="none" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" transform="translate(10, 4544.2537875) matrix(1.252191,0.000000,0.000000,-1.252191,-268.8556,649.3270)" stroke-miterlimit="4.0000000" inkscape:rounded="0.37000000" sodipodi:r1="56.586357" sodipodi:r2="2.4662609" sodipodi:arg1="1.1708920" sodipodi:arg2="-2.6860230" sodipodi:type="star" d="M399.24,511.26c6.01-20.78-3.16-58.04-24.24-53.2-20.86,4.78-7.53,74.88,5.09,57.6,12.75-17.48,16.88-55.63-4.59-58.29-21.23-2.64-32.68,67.79-14.92,55.86,17.97-12.06,34.89-46.49,15.63-56.34-19.05-9.74-53.89,52.52-33.12,47.39,21-5.18,48.68-31.75,33.95-47.6-14.57-15.67-68.61,30.93-47.33,33.21,21.51,2.31,56.61-13.19,48.18-33.12-8.33-19.7-75.04,5.6-55.84,15.02,19.43,9.53,57.71,6.97,56.61-14.64-1.08-21.37-72.43-20.41-57.6-4.99,14.99,15.6,51.84,26.29,58.2,5.61,6.28-20.45-61.09-43.96-52.43-24.39,8.76,19.78,39.73,42.43,52.77,25.17,12.91-17.07-42.36-62.2-40.92-40.85,1.46,21.58,22.82,53.46,40.98,41.71,17.96-11.63-18.54-72.94-24.48-52.39-6.01,20.78,3.16,58.04,24.24,53.21,20.86-4.78,7.53-74.88-5.09-57.6-12.75,17.47-16.88,55.62,4.59,58.29,21.23,2.64,32.68-67.79,14.92-55.87-17.97,12.06-34.89,46.5-15.63,56.35,19.05,9.74,53.89-52.53,33.12-47.4-21,5.19-48.68,31.76-33.95,47.6,14.56,15.67,68.61-30.92,47.33-33.2-21.51-2.31-56.61,13.19-48.18,33.11,8.33,19.71,75.04-5.59,55.84-15.01-19.43-9.53-57.71-6.97-56.61,14.64,1.08,21.36,72.43,20.41,57.6,4.98-14.99-15.59-51.84-26.28-58.2-5.6-6.28,20.45,61.09,43.95,52.43,24.39-8.76-19.78-39.73-42.43-52.77-25.17-12.91,17.06,42.36,62.19,40.92,40.85-1.46-21.59-22.82-53.46-40.98-41.71-17.96,11.63,18.54,72.94,24.48,52.38z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="459.14322" sodipodi:cx="377.20990"/>
- <path id="shapes-f16-ja.svgpath1559" stroke-linejoin="miter" sodipodi:sides="4" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.36259648" fill="#cecece" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(0.549977,0.000000,0.000000,-0.549977,24.59580,424.7180)" stroke-miterlimit="4.0000000" inkscape:rounded="1.8500000" sodipodi:r1="33.805592" sodipodi:r2="0.93718392" sodipodi:arg1="0.0000000" sodipodi:arg2="0.78539816" sodipodi:type="star" d="M112.41,584.08c0,61.33,10.22-42.7-33.147,0.67-43.365,43.36,60.667,33.14-0.663,33.14-61.327,0,42.7,10.22-0.663-33.14-43.364-43.37-33.143,60.66-33.143-0.67,0-61.32-10.221,42.71,33.143-0.66,43.363-43.36-60.664-33.14,0.663-33.14,61.33,0-42.702-10.22,0.663,33.14,43.367,43.37,33.147-60.66,33.147,0.66z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="584.08337" sodipodi:cx="78.599991"/>
- <path id="shapes-f16-ja.svgpath2808" stroke-linejoin="miter" sodipodi:sides="4" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="1.0000000pt" fill="#8eff00" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(0.748940,0.000000,0.000000,-0.748940,60.65535,545.3560)" inkscape:rounded="0.25000000" sodipodi:r1="38.196964" sodipodi:r2="7.8936343" sodipodi:arg1="-0.0000000" sodipodi:arg2="0.78539816" sodipodi:type="star" d="M323.81,626.7c0,8.28-26.76-0.26-32.61,5.59s2.69,32.61-5.58,32.61c-8.28,0,0.26-26.76-5.58-32.61-5.85-5.85-32.62,2.69-32.62-5.59,0-8.27,26.77,0.27,32.62-5.58,5.84-5.85-2.7-32.61,5.58-32.61,8.27,0-0.27,26.76,5.58,32.61s32.61-2.69,32.61,5.58z" inkscape:randomized="0.0000000" sodipodi:cy="626.70453" sodipodi:cx="285.61685"/>
- <path id="shapes-f16-ja.svgpath3430" stroke-linejoin="miter" sodipodi:sides="5" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="1.0000019pt" fill="#8eff00" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(0.716804,0.217032,0.217032,-0.716804,-66.02363,504.5840)" inkscape:rounded="0.24000000" sodipodi:r1="38.196964" sodipodi:r2="9.5492411" sodipodi:arg1="-0.0000000" sodipodi:arg2="0.62831853" sodipodi:type="star" d="M323.81,626.7c0,7.44-26.1-0.4-30.47,5.62-4.37,6.01,11.15,28.41,4.08,30.71s-7.68-24.95-14.75-27.24c-7.08-2.3-23.58,19.38-27.96,13.37-4.37-6.02,21.36-15.02,21.36-22.46,0-7.43-25.73-16.43-21.36-22.45,4.38-6.01,20.88,15.67,27.96,13.37,7.07-2.3,7.68-29.54,14.75-27.24,7.07,2.29-8.45,24.7-4.08,30.71,4.37,6.02,30.47-1.82,30.47,5.61z" inkscape:randomized="0.0000000" sodipodi:cy="626.70453" sodipodi:cx="285.61685"/>
- <path id="shapes-f16-ja.svgpath1586" stroke="#000" style="stroke-dasharray:1.4274618 1.4274618;" stroke-width="1.4274611" sodipodi:type="star" sodipodi:sides="3" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4544.2537875) matrix(0.112357,6.849093e-3,6.849093e-3,-0.112357,7.881487,207.1500)" sodipodi:arg2="1.6461088" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-7.96,11.66-60.93,7.66-67.05-5.06-6.12-12.73,23.82-56.6,37.91-55.54,14.08,1.06,37.1,48.94,29.14,60.6z"/>
- <path id="shapes-f16-ja.svgpath2214" stroke="#000" style="stroke-dasharray:1.4275137 1.4275137;" stroke-width="1.4275173" sodipodi:type="star" sodipodi:sides="4" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4544.2537875) matrix(0.111212,-1.740816e-2,-1.740816e-2,-0.111212,34.31171,215.8190)" sodipodi:arg2="1.3843094" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-6.5,9.52-44.43,16.68-53.95,10.18s-16.68-44.43-10.18-53.95c6.5-9.53,44.43-16.68,53.95-10.18s16.68,44.43,10.18,53.95z"/>
- <path id="shapes-f16-ja.svgpath2215" stroke="#000" style="stroke-dasharray:1.4274952 1.4274952;" stroke-width="1.4274960" sodipodi:type="star" sodipodi:sides="5" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4544.2537875) matrix(0.106220,-3.726607e-2,-3.726607e-2,-0.106220,59.87360,219.4050)" sodipodi:arg2="1.2272298" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-5.4,7.91-33.77,18.06-42.97,15.37s-27.62-26.54-27.9-36.12,16.7-34.46,25.73-37.69c9.02-3.23,37.94,5.24,43.8,12.82,5.86,7.59,6.74,37.7,1.34,45.62z"/>
- <path id="shapes-f16-ja.svgpath2216" stroke="#000" style="stroke-dasharray:1.4274604 1.4274604;" stroke-width="1.4274589" sodipodi:type="star" sodipodi:sides="6" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4544.2537875) matrix(0.112523,3.153940e-3,3.153940e-3,-0.112523,42.43847,209.5460)" sodipodi:arg2="1.1225100" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-4.6,6.73-26.86,17.44-34.99,16.82-8.13-0.61-28.53-14.53-32.06-21.88s-1.68-31.98,2.92-38.71c4.6-6.74,26.86-17.44,34.99-16.83,8.12,0.61,28.53,14.54,32.06,21.89,3.53,7.34,1.67,31.97-2.92,38.71z"/>
- <path id="shapes-f16-ja.svgpath905" stroke-linejoin="miter" sodipodi:sides="3" fill-opacity="0.74998099" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="4.1999998" fill="#ff6000" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(6.043272e-2,0.000000,0.000000,-6.043272e-2,168.5167,2.007000)" stroke-miterlimit="4.0000000" inkscape:rounded="-3.0000000" sodipodi:r1="266.75140" sodipodi:r2="86.869286" sodipodi:arg1="0.54565505" sodipodi:arg2="0.65224913" sodipodi:type="star" d="M-423.46-910.2c-209.55-499.7-700.64-98-158.98-85.71,936.38,21.31-1232.1-42.69-302.93,75.52,537.5,68.35,435.24-557.81,153.71-94.81-486.64,800.26,652.97-1045.7,86.07-300.1-327.95,431.29,265.43,655.79,5.26,180.5-449.77-821.6,579.11,1088.3,216.87,224.6z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="-1048.6403" sodipodi:cx="-651.47363"/>
- <path id="shapes-f16-ja.svgpath4053" stroke-linejoin="miter" sodipodi:sides="6" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#acacac" stroke-linecap="butt" stroke-width="1.0000001pt" fill="#fcfcfc" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(0.477810,7.371536e-2,7.371536e-2,-0.477810,-114.9199,309.0950)" inkscape:rounded="3.0000000" sodipodi:r1="27.681587" sodipodi:r2="11.966143" sodipodi:arg1="0.20131714" sodipodi:arg2="-3.0483195" sodipodi:type="star" d="M299.45,611.76c-49.54-107.97,39.73-95.58-39.03-6.65-68.24,77.04-38.87,111.31,20.68,27.37,68.74-96.89,102.64-13.38-13.76-37.13-100.84-20.57-115.83,21.99-13.36,31.6,118.28,11.08,62.91,82.19,25.27-30.49-32.6-97.61-76.96-89.31-34.04,4.23,49.54,107.97-39.73,95.58,39.04,6.65,68.23-77.05,38.87-111.31-20.69-27.37-68.73,96.89-102.64,13.38,13.76,37.13,100.85,20.57,115.84-21.99,13.37-31.6-118.28-11.08-62.91-82.19-25.28,30.48,32.6,97.62,76.96,89.32,34.04-4.22z" inkscape:randomized="0.0000000" sodipodi:cy="606.22424" sodipodi:cx="272.33234"/>
- <path id="shapes-f16-ja.svgpath1545" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" sodipodi:sides="3" fill-rule="evenodd" fill="#000" sodipodi:r1="39.614254" sodipodi:r2="1.0779980" transform="translate(10, 4544.2537875) matrix(0.270281,-8.043548e-2,-8.043548e-2,-0.270281,39.03150,168.4570)" sodipodi:arg2="3.3670445" sodipodi:arg1="2.3198469" inkscape:randomized="0.0000000" sodipodi:cy="420.22922" sodipodi:cx="397.50070" inkscape:rounded="-3.0000000" inkscape:flatsided="false" d="M370.53,449.24c85.87,79.85,52.13-143.54,25.92-29.25s101.5-72.07-10.59-37.63c-112.08,34.45,98.25,116.93,12.37,37.08-85.87-79.85,11.67,123.94,37.88,9.64,26.22-114.29-150.38,26.62-38.29-7.82,112.08-34.45-113.17-51.87-27.29,27.98z"/>
- <path id="shapes-f16-ja.svgpath1591" stroke-linejoin="miter" sodipodi:sides="3" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.57520527" fill="#8eff00" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(1.627536,0.000000,0.000000,1.627536,-153.1836,-574.1410)" stroke-miterlimit="4.0000000" inkscape:rounded="0.25000000" sodipodi:r1="17.850517" sodipodi:r2="2.4989247" sodipodi:arg1="0.51914611" sodipodi:arg2="1.5663437" sodipodi:type="star" d="M278.42,385.92c-2.08,3.64-11.3-6.37-15.49-6.35-4.18,0.01-13.32,10.11-15.43,6.49-2.11-3.61,11.18-6.6,13.25-10.23,2.08-3.64-2.09-16.6,2.09-16.61,4.19-0.02,0.13,12.97,2.24,16.59,2.11,3.61,15.42,6.48,13.34,10.11z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="377.06650" sodipodi:cx="262.92249"/>
- <text id="shapes-f16-ja.svgtext2547" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="72.533112" x="269.70953" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2548" sodipodi:role="line" x="269.70953" y="72.533112"/><tspan id="shapes-f16-ja.svgtspan2550"/><tspan id="shapes-f16-ja.svgtspan2552" y="77.307917" x="269.70953" role="line">0.25</tspan></text>
- <text id="shapes-f16-ja.svgtext2856" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="37.697109" x="270.21283" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2555" sodipodi:role="line" x="270.21283" y="37.697109"/><tspan id="shapes-f16-ja.svgtspan2557"/><tspan id="shapes-f16-ja.svgtspan2559" y="42.471914" x="270.21283" role="line">0.25</tspan></text>
- <text id="shapes-f16-ja.svgtext2561" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="114.07111" x="270.13705" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2562" sodipodi:role="line" x="270.13705" y="114.07111"/><tspan id="shapes-f16-ja.svgtspan2564"/><tspan id="shapes-f16-ja.svgtspan2566" y="118.84592" x="270.13705" role="line">0.25</tspan></text>
- <text id="shapes-f16-ja.svgtext2568" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) matrix(0.500003,0.866024,-0.866024,0.500003,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790072" font-variant="normal" y="-106.66351" x="214.9263" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2569" sodipodi:role="line" x="214.92630" y="-106.66351"/><tspan id="shapes-f16-ja.svgtspan2571"/><tspan id="shapes-f16-ja.svgtspan2573" y="-101.88870" x="214.92630" role="line">0.37</tspan></text>
- <path id="shapes-f16-ja.svgpath1554" stroke-linejoin="miter" sodipodi:sides="9" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.37500000" fill="#cecece" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(0.964586,6.719919e-2,6.719919e-2,-0.964586,-356.5721,688.7050)" stroke-miterlimit="4.0000000" inkscape:rounded="0.43000000" sodipodi:r1="23.086590" sodipodi:r2="14.298160" sodipodi:arg1="1.1382904" sodipodi:arg2="1.4814137" sodipodi:type="star" d="M461.58,641.84c-4.19,1.97-3.79-7.1-8.4-6.72-4.67,0.39-2.82,9.24-7.34,8.04-4.47-1.19,1.66-7.88-2.12-10.55-3.82-2.7-8.09,5.27-10.78,1.44-2.66-3.78,6.34-4.97,5.16-9.44-1.2-4.52-9.59-1.17-9.19-5.83,0.39-4.61,8.05,0.27,10.02-3.91,1.99-4.24-6.59-7.06-3.29-10.38,3.26-3.27,5.99,5.38,10.19,3.45,4.25-1.97-0.51-9.65,4.15-10.06,4.6-0.42,1.13,7.97,5.59,9.18,4.52,1.23,5.81-7.71,9.64-5.04,3.8,2.65-4.25,6.84-1.62,10.64,2.67,3.84,9.41-2.19,10.63,2.33,1.21,4.47-7.65,2.5-8.07,7.11-0.43,4.66,8.6,4.37,6.64,8.62-1.95,4.19-7.48-3.01-10.76,0.25-3.32,3.3,3.78,8.89-0.45,10.87z" inkscape:randomized="0.0000000" sodipodi:cy="620.88135" sodipodi:cx="451.89960"/>
- <text id="shapes-f16-ja.svgtext2575" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="117.60011" x="116.22874" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2576" sodipodi:role="line" x="116.22874" y="117.60011"/><tspan id="shapes-f16-ja.svgtspan2578"/><tspan id="shapes-f16-ja.svgtspan2580" y="122.37492" x="116.22874" role="line">0.43</tspan></text>
- <text id="shapes-f16-ja.svgtext2582" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) matrix(0.384906,0.922956,-0.922956,0.384906,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9789882" font-variant="normal" y="-39.030281" x="32.583221" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2583" sodipodi:role="line" x="32.583221" y="-39.030281"/><tspan id="shapes-f16-ja.svgtspan2585"/><tspan id="shapes-f16-ja.svgtspan2587" y="-34.255495" x="32.583221" role="line">3.00</tspan></text>
- <text id="shapes-f16-ja.svgtext2589" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) matrix(1.000000,-5.974290e-4,5.974290e-4,1.000000,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9789798" font-variant="normal" y="38.639725" x="107.11456" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2590" y="43.414501" x="107.11456" role="line">-</tspan><tspan id="shapes-f16-ja.svgtspan2592"/><tspan id="shapes-f16-ja.svgtspan2594">3.00</tspan><tspan id="shapes-f16-ja.svgtspan2596" sodipodi:role="line" x="107.11456" y="43.414501"/></text>
- <path id="shapes-f16-ja.svgpath896" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" sodipodi:sides="3" fill-rule="evenodd" fill="#000" sodipodi:r1="120.20276" sodipodi:r2="60.101379" transform="translate(10, 4544.2537875) matrix(0.120864,0.000000,0.000000,-0.120864,214.0977,80.90800)" sodipodi:arg2="1.5752720" sodipodi:arg1="0.52807445" inkscape:randomized="0.0000000" sodipodi:cy="492.50204" sodipodi:cx="224.45302" inkscape:rounded="0.41000000" inkscape:flatsided="false" d="M328.28,553.07c-21.5,36.87-61.42-0.28-104.1-0.47s-82.92,36.59-104.09-0.46c-21.178-37.06,30.94-53.05,52.45-89.92,21.5-36.87,9.77-90.11,52.45-89.92s30.47,53.33,51.65,90.38c21.17,37.06,73.15,53.52,51.64,90.39z"/>
- <text id="shapes-f16-ja.svgtext2598" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="17.90111" x="236.78233" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#ffffff"><tspan id="shapes-f16-ja.svgtspan2599" sodipodi:role="line" x="236.78233" y="17.901110"/><tspan id="shapes-f16-ja.svgtspan2601"/><tspan id="shapes-f16-ja.svgtspan2603" y="22.675915" x="236.78233" role="line">0.41</tspan></text>
- <text id="shapes-f16-ja.svgtext2909" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="95.56311" x="21.764177" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2606" y="100.33792" x="21.764177" role="line">5.43</tspan><tspan id="shapes-f16-ja.svgtspan2608"/><tspan id="shapes-f16-ja.svgtspan2610" sodipodi:role="line" x="21.764177" y="100.33792"/></text>
- <text id="shapes-f16-ja.svgtext2613" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="89.486107" x="63.424889" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2613" sodipodi:role="line" x="63.424889" y="89.486107"/><tspan id="shapes-f16-ja.svgtspan2615"/><tspan id="shapes-f16-ja.svgtspan2617" y="94.260912" x="63.424889" role="line">1.85</tspan></text>
- <text id="shapes-f16-ja.svgtext3240" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="141.7691" x="62.71822" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan3241" sodipodi:role="line" x="62.718220" y="141.76910"/><tspan id="shapes-f16-ja.svgtspan3243"/><tspan id="shapes-f16-ja.svgtspan3245" y="146.54391" x="62.718220" role="line">0.21</tspan></text>
- <text id="shapes-f16-ja.svgtext3868" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) matrix(1.000000,-5.974290e-4,5.974290e-4,1.000000,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9789798" font-variant="normal" y="66.356537" x="106.78857" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan3869" y="71.131313" x="106.78857" role="line">-</tspan><tspan id="shapes-f16-ja.svgtspan3871"/><tspan id="shapes-f16-ja.svgtspan3873">3.00</tspan><tspan id="shapes-f16-ja.svgtspan3875" sodipodi:role="line" x="106.78857" y="71.131313"/></text>
- <path id="shapes-f16-ja.svgpath4498" stroke-linejoin="miter" sodipodi:sides="9" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.71101642" fill="#cecece" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(0.503029,8.386162e-2,-8.386162e-2,0.503029,540.5811,-2474.824)" stroke-miterlimit="4.0000000" inkscape:rounded="-0.43000000" sodipodi:r1="46.149918" sodipodi:r2="18.172943" sodipodi:arg1="0.93231400" sodipodi:arg2="1.2813799" sodipodi:type="star" d="M132.89,5179.5c10.26-7.6-34.571-16-22.32-19.6,12.25-3.7-20.697,27.9-7.94,28.6,12.76,0.8-16.198-34.4-4.468-29.4,11.728,5.1-33.782,8.1-24.496,16.9,9.285,8.8,9.746-36.8,15.467-25.4s-31.059-15.5-29.594-2.8c1.466,12.7,31.136-22,28.169-9.6-2.966,12.5-13.803-31.8-20.843-21.2-7.041,10.7,37.955,3.3,27.689,10.9-10.265,7.6,9.916-33.3-2.34-29.7-12.252,3.7,27.016,26.9,14.256,26.1-12.763-0.7,28.99-19.1,17.26-24.2s3.43,38-5.85,29.2c-9.29-8.8,34.5,3.9,28.78-7.5s-21.76,31.3-23.22,18.6c-1.47-12.7,23.87,25.2,26.84,12.8,2.96-12.5-36.77,9.9-29.73-0.7,7.04-10.7,2.07,34.6,12.34,27z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="5142.4639" sodipodi:cx="105.38494"/>
- <text id="shapes-f16-ja.svgtext4499" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="122.21311" x="156.34573" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan4500" y="126.98792" x="156.34573" role="line">-0.43</tspan><tspan id="shapes-f16-ja.svgtspan4502"/><tspan id="shapes-f16-ja.svgtspan4504" sodipodi:role="line" x="156.34573" y="126.98792"/></text>
- <path id="shapes-f16-ja.svgpath5127" stroke-linejoin="miter" sodipodi:sides="5" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.71101642" fill="#00edff" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="translate(10, 4544.2537875) matrix(0.306731,-4.267910e-2,4.267910e-2,0.306731,-195.0316,-1440.110)" stroke-miterlimit="4.0000000" inkscape:rounded="-8.9362223" sodipodi:r1="17.613136" sodipodi:r2="8.1117020" sodipodi:arg1="-2.7000003" sodipodi:arg2="-2.0716818" sodipodi:type="star" d="M-6.3694,5101.1c-45.965,97.2,106.37-51.3,12.028,0.4-94.339,51.6,112.81,3.3,6.1341-10.4-106.68-13.6,81.595,85.3,3.324,11.6-78.27-73.8,31.71,108.3,11.744,2.6s-55.938,104-9.973,6.8c45.965-97.3-93.215,63.6,1.124,11.9,94.338-51.6-116.17-21-9.4888-7.4,106.68,13.7-89.319-69-11.049,4.8,78.271,73.8-15.857-117,4.109-11.3s38.013-106.3-7.9528-9z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="5108.5903" sodipodi:cx="9.5541286"/>
- <text id="shapes-f16-ja.svgtext6108" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="143.25011" x="21.20429" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan5129" y="148.02491" x="21.204290" role="line">-8.94</tspan><tspan id="shapes-f16-ja.svgtspan5131"/><tspan id="shapes-f16-ja.svgtspan5133" sodipodi:role="line" x="21.204290" y="148.02491"/></text>
- <path id="shapes-f16-ja.svgpath5833" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" sodipodi:sides="4" fill-rule="evenodd" fill="#000" sodipodi:r1="45.711628" sodipodi:r2="32.323002" transform="translate(10, 4544.2537875) matrix(0.241306,0.000000,0.000000,0.241306,59.66014,-1049.710)" sodipodi:arg2="1.5707963" sodipodi:arg1="0.78539816" inkscape:randomized="0.0000000" sodipodi:cy="4696.8921" sodipodi:cx="171.63371" inkscape:rounded="0.39000000" inkscape:flatsided="true" d="M203.96,4729.2c-17.83,17.8-46.82,17.8-64.65,0s-17.83-46.8,0-64.6c17.83-17.9,46.82-17.9,64.65,0,17.82,17.8,17.82,46.8,0,64.6z"/>
- <text id="shapes-f16-ja.svgtext5837" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4544.2537875) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="80.288109" x="96.318428" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#ffffff"><tspan id="shapes-f16-ja.svgtspan5838" sodipodi:role="line" x="96.318428" y="80.288109"/><tspan id="shapes-f16-ja.svgtspan5840"/><tspan id="shapes-f16-ja.svgtspan5842" y="85.062914" x="96.318428" role="line">0.39</tspan></text>
- <rect id="d0e628" display="none" height="1000px" width="288" y="4704.9" x="10"/>
+ <path id="shapes-f16-ja.svgpath1575" stroke-linejoin="miter" sodipodi:sides="5" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="3.3750434" fill="none" transform="translate(10, 4677.821293500003) matrix(0.307966,-3.233534e-2,-3.233534e-2,-0.307966,-34.05150,272.3350)" stroke-miterlimit="4.0000000" inkscape:rounded="5.1300000" sodipodi:r1="27.797562" sodipodi:r2="27.797562" sodipodi:arg1="0.22082877" sodipodi:arg2="0.84914730" sodipodi:type="star" d="M281.19,558.07c-19.31,85.99,57.4-43.45-8.76,14.78-66.16,58.22,71.98-1.41-15.77,6.81-87.75,8.21,59.05,41.17-16.77-3.77-75.81-44.93,23.58,68.02-11.35-12.89-34.92-80.92-20.9,68.88-1.6-17.11,19.31-85.99-57.4,43.44,8.76-14.78,66.17-58.22-71.97,1.41,15.78-6.81,87.74-8.21-59.06-41.17,16.76,3.77,75.82,44.93-23.58-68.02,11.35,12.89,34.93,80.92,20.9-68.88,1.6,17.11z" stroke-opacity="0.13114752" inkscape:randomized="0.0000000" sodipodi:cy="551.97913" sodipodi:cx="254.06618"/>
+ <path id="shapes-f16-ja.svgpath1556" stroke-linejoin="miter" sodipodi:sides="18" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.031250000" fill="none" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" transform="translate(10, 4677.821293500003) matrix(1.252191,0.000000,0.000000,-1.252191,-268.8556,649.3270)" stroke-miterlimit="4.0000000" inkscape:rounded="0.37000000" sodipodi:r1="56.586357" sodipodi:r2="2.4662609" sodipodi:arg1="1.1708920" sodipodi:arg2="-2.6860230" sodipodi:type="star" d="M399.24,511.26c6.01-20.78-3.16-58.04-24.24-53.2-20.86,4.78-7.53,74.88,5.09,57.6,12.75-17.48,16.88-55.63-4.59-58.29-21.23-2.64-32.68,67.79-14.92,55.86,17.97-12.06,34.89-46.49,15.63-56.34-19.05-9.74-53.89,52.52-33.12,47.39,21-5.18,48.68-31.75,33.95-47.6-14.57-15.67-68.61,30.93-47.33,33.21,21.51,2.31,56.61-13.19,48.18-33.12-8.33-19.7-75.04,5.6-55.84,15.02,19.43,9.53,57.71,6.97,56.61-14.64-1.08-21.37-72.43-20.41-57.6-4.99,14.99,15.6,51.84,26.29,58.2,5.61,6.28-20.45-61.09-43.96-52.43-24.39,8.76,19.78,39.73,42.43,52.77,25.17,12.91-17.07-42.36-62.2-40.92-40.85,1.46,21.58,22.82,53.46,40.98,41.71,17.96-11.63-18.54-72.94-24.48-52.39-6.01,20.78,3.16,58.04,24.24,53.21,20.86-4.78,7.53-74.88-5.09-57.6-12.75,17.47-16.88,55.62,4.59,58.29,21.23,2.64,32.68-67.79,14.92-55.87-17.97,12.06-34.89,46.5-15.63,56.35,19.05,9.74,53.89-52.53,33.12-47.4-21,5.19-48.68,31.76-33.95,47.6,14.56,15.67,68.61-30.92,47.33-33.2-21.51-2.31-56.61,13.19-48.18,33.11,8.33,19.71,75.04-5.59,55.84-15.01-19.43-9.53-57.71-6.97-56.61,14.64,1.08,21.36,72.43,20.41,57.6,4.98-14.99-15.59-51.84-26.28-58.2-5.6-6.28,20.45,61.09,43.95,52.43,24.39-8.76-19.78-39.73-42.43-52.77-25.17-12.91,17.06,42.36,62.19,40.92,40.85-1.46-21.59-22.82-53.46-40.98-41.71-17.96,11.63,18.54,72.94,24.48,52.38z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="459.14322" sodipodi:cx="377.20990"/>
+ <path id="shapes-f16-ja.svgpath1559" stroke-linejoin="miter" sodipodi:sides="4" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.36259648" fill="#cecece" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(0.549977,0.000000,0.000000,-0.549977,24.59580,424.7180)" stroke-miterlimit="4.0000000" inkscape:rounded="1.8500000" sodipodi:r1="33.805592" sodipodi:r2="0.93718392" sodipodi:arg1="0.0000000" sodipodi:arg2="0.78539816" sodipodi:type="star" d="M112.41,584.08c0,61.33,10.22-42.7-33.147,0.67-43.365,43.36,60.667,33.14-0.663,33.14-61.327,0,42.7,10.22-0.663-33.14-43.364-43.37-33.143,60.66-33.143-0.67,0-61.32-10.221,42.71,33.143-0.66,43.363-43.36-60.664-33.14,0.663-33.14,61.33,0-42.702-10.22,0.663,33.14,43.367,43.37,33.147-60.66,33.147,0.66z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="584.08337" sodipodi:cx="78.599991"/>
+ <path id="shapes-f16-ja.svgpath2808" stroke-linejoin="miter" sodipodi:sides="4" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="1.0000000pt" fill="#8eff00" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(0.748940,0.000000,0.000000,-0.748940,60.65535,545.3560)" inkscape:rounded="0.25000000" sodipodi:r1="38.196964" sodipodi:r2="7.8936343" sodipodi:arg1="-0.0000000" sodipodi:arg2="0.78539816" sodipodi:type="star" d="M323.81,626.7c0,8.28-26.76-0.26-32.61,5.59s2.69,32.61-5.58,32.61c-8.28,0,0.26-26.76-5.58-32.61-5.85-5.85-32.62,2.69-32.62-5.59,0-8.27,26.77,0.27,32.62-5.58,5.84-5.85-2.7-32.61,5.58-32.61,8.27,0-0.27,26.76,5.58,32.61s32.61-2.69,32.61,5.58z" inkscape:randomized="0.0000000" sodipodi:cy="626.70453" sodipodi:cx="285.61685"/>
+ <path id="shapes-f16-ja.svgpath3430" stroke-linejoin="miter" sodipodi:sides="5" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="1.0000019pt" fill="#8eff00" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(0.716804,0.217032,0.217032,-0.716804,-66.02363,504.5840)" inkscape:rounded="0.24000000" sodipodi:r1="38.196964" sodipodi:r2="9.5492411" sodipodi:arg1="-0.0000000" sodipodi:arg2="0.62831853" sodipodi:type="star" d="M323.81,626.7c0,7.44-26.1-0.4-30.47,5.62-4.37,6.01,11.15,28.41,4.08,30.71s-7.68-24.95-14.75-27.24c-7.08-2.3-23.58,19.38-27.96,13.37-4.37-6.02,21.36-15.02,21.36-22.46,0-7.43-25.73-16.43-21.36-22.45,4.38-6.01,20.88,15.67,27.96,13.37,7.07-2.3,7.68-29.54,14.75-27.24,7.07,2.29-8.45,24.7-4.08,30.71,4.37,6.02,30.47-1.82,30.47,5.61z" inkscape:randomized="0.0000000" sodipodi:cy="626.70453" sodipodi:cx="285.61685"/>
+ <path id="shapes-f16-ja.svgpath1586" stroke="#000" style="stroke-dasharray:1.4274618 1.4274618;" stroke-width="1.4274611" sodipodi:type="star" sodipodi:sides="3" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4677.821293500003) matrix(0.112357,6.849093e-3,6.849093e-3,-0.112357,7.881487,207.1500)" sodipodi:arg2="1.6461088" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-7.96,11.66-60.93,7.66-67.05-5.06-6.12-12.73,23.82-56.6,37.91-55.54,14.08,1.06,37.1,48.94,29.14,60.6z"/>
+ <path id="shapes-f16-ja.svgpath2214" stroke="#000" style="stroke-dasharray:1.4275137 1.4275137;" stroke-width="1.4275173" sodipodi:type="star" sodipodi:sides="4" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4677.821293500003) matrix(0.111212,-1.740816e-2,-1.740816e-2,-0.111212,34.31171,215.8190)" sodipodi:arg2="1.3843094" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-6.5,9.52-44.43,16.68-53.95,10.18s-16.68-44.43-10.18-53.95c6.5-9.53,44.43-16.68,53.95-10.18s16.68,44.43,10.18,53.95z"/>
+ <path id="shapes-f16-ja.svgpath2215" stroke="#000" style="stroke-dasharray:1.4274952 1.4274952;" stroke-width="1.4274960" sodipodi:type="star" sodipodi:sides="5" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4677.821293500003) matrix(0.106220,-3.726607e-2,-3.726607e-2,-0.106220,59.87360,219.4050)" sodipodi:arg2="1.2272298" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-5.4,7.91-33.77,18.06-42.97,15.37s-27.62-26.54-27.9-36.12,16.7-34.46,25.73-37.69c9.02-3.23,37.94,5.24,43.8,12.82,5.86,7.59,6.74,37.7,1.34,45.62z"/>
+ <path id="shapes-f16-ja.svgpath2216" stroke="#000" style="stroke-dasharray:1.4274604 1.4274604;" stroke-width="1.4274589" sodipodi:type="star" sodipodi:sides="6" fill-rule="evenodd" fill="#000" sodipodi:r1="38.821625" sodipodi:r2="36.683537" stroke-dashoffset="0.0000000" transform="translate(10, 4677.821293500003) matrix(0.112523,3.153940e-3,3.153940e-3,-0.112523,42.43847,209.5460)" sodipodi:arg2="1.1225100" sodipodi:arg1="0.59891126" inkscape:randomized="0.0000000" sodipodi:cy="649.26288" sodipodi:cx="346.60431" stroke-miterlimit="4.0000000" inkscape:rounded="0.21000000" inkscape:flatsided="true" d="M378.67,671.15c-4.6,6.73-26.86,17.44-34.99,16.82-8.13-0.61-28.53-14.53-32.06-21.88s-1.68-31.98,2.92-38.71c4.6-6.74,26.86-17.44,34.99-16.83,8.12,0.61,28.53,14.54,32.06,21.89,3.53,7.34,1.67,31.97-2.92,38.71z"/>
+ <path id="shapes-f16-ja.svgpath905" stroke-linejoin="miter" sodipodi:sides="3" fill-opacity="0.74998099" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="4.1999998" fill="#ff6000" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(6.043272e-2,0.000000,0.000000,-6.043272e-2,168.5167,2.007000)" stroke-miterlimit="4.0000000" inkscape:rounded="-3.0000000" sodipodi:r1="266.75140" sodipodi:r2="86.869286" sodipodi:arg1="0.54565505" sodipodi:arg2="0.65224913" sodipodi:type="star" d="M-423.46-910.2c-209.55-499.7-700.64-98-158.98-85.71,936.38,21.31-1232.1-42.69-302.93,75.52,537.5,68.35,435.24-557.81,153.71-94.81-486.64,800.26,652.97-1045.7,86.07-300.1-327.95,431.29,265.43,655.79,5.26,180.5-449.77-821.6,579.11,1088.3,216.87,224.6z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="-1048.6403" sodipodi:cx="-651.47363"/>
+ <path id="shapes-f16-ja.svgpath4053" stroke-linejoin="miter" sodipodi:sides="6" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#acacac" stroke-linecap="butt" stroke-width="1.0000001pt" fill="#fcfcfc" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(0.477810,7.371536e-2,7.371536e-2,-0.477810,-114.9199,309.0950)" inkscape:rounded="3.0000000" sodipodi:r1="27.681587" sodipodi:r2="11.966143" sodipodi:arg1="0.20131714" sodipodi:arg2="-3.0483195" sodipodi:type="star" d="M299.45,611.76c-49.54-107.97,39.73-95.58-39.03-6.65-68.24,77.04-38.87,111.31,20.68,27.37,68.74-96.89,102.64-13.38-13.76-37.13-100.84-20.57-115.83,21.99-13.36,31.6,118.28,11.08,62.91,82.19,25.27-30.49-32.6-97.61-76.96-89.31-34.04,4.23,49.54,107.97-39.73,95.58,39.04,6.65,68.23-77.05,38.87-111.31-20.69-27.37-68.73,96.89-102.64,13.38,13.76,37.13,100.85,20.57,115.84-21.99,13.37-31.6-118.28-11.08-62.91-82.19-25.28,30.48,32.6,97.62,76.96,89.32,34.04-4.22z" inkscape:randomized="0.0000000" sodipodi:cy="606.22424" sodipodi:cx="272.33234"/>
+ <path id="shapes-f16-ja.svgpath1545" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" sodipodi:sides="3" fill-rule="evenodd" fill="#000" sodipodi:r1="39.614254" sodipodi:r2="1.0779980" transform="translate(10, 4677.821293500003) matrix(0.270281,-8.043548e-2,-8.043548e-2,-0.270281,39.03150,168.4570)" sodipodi:arg2="3.3670445" sodipodi:arg1="2.3198469" inkscape:randomized="0.0000000" sodipodi:cy="420.22922" sodipodi:cx="397.50070" inkscape:rounded="-3.0000000" inkscape:flatsided="false" d="M370.53,449.24c85.87,79.85,52.13-143.54,25.92-29.25s101.5-72.07-10.59-37.63c-112.08,34.45,98.25,116.93,12.37,37.08-85.87-79.85,11.67,123.94,37.88,9.64,26.22-114.29-150.38,26.62-38.29-7.82,112.08-34.45-113.17-51.87-27.29,27.98z"/>
+ <path id="shapes-f16-ja.svgpath1591" stroke-linejoin="miter" sodipodi:sides="3" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.57520527" fill="#8eff00" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(1.627536,0.000000,0.000000,1.627536,-153.1836,-574.1410)" stroke-miterlimit="4.0000000" inkscape:rounded="0.25000000" sodipodi:r1="17.850517" sodipodi:r2="2.4989247" sodipodi:arg1="0.51914611" sodipodi:arg2="1.5663437" sodipodi:type="star" d="M278.42,385.92c-2.08,3.64-11.3-6.37-15.49-6.35-4.18,0.01-13.32,10.11-15.43,6.49-2.11-3.61,11.18-6.6,13.25-10.23,2.08-3.64-2.09-16.6,2.09-16.61,4.19-0.02,0.13,12.97,2.24,16.59,2.11,3.61,15.42,6.48,13.34,10.11z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="377.06650" sodipodi:cx="262.92249"/>
+ <text id="shapes-f16-ja.svgtext2547" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="72.533112" x="269.70953" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2548" sodipodi:role="line" x="269.70953" y="72.533112"/><tspan id="shapes-f16-ja.svgtspan2550"/><tspan id="shapes-f16-ja.svgtspan2552" y="77.307917" x="269.70953" role="line">0.25</tspan></text>
+ <text id="shapes-f16-ja.svgtext2856" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="37.697109" x="270.21283" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2555" sodipodi:role="line" x="270.21283" y="37.697109"/><tspan id="shapes-f16-ja.svgtspan2557"/><tspan id="shapes-f16-ja.svgtspan2559" y="42.471914" x="270.21283" role="line">0.25</tspan></text>
+ <text id="shapes-f16-ja.svgtext2561" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="114.07111" x="270.13705" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2562" sodipodi:role="line" x="270.13705" y="114.07111"/><tspan id="shapes-f16-ja.svgtspan2564"/><tspan id="shapes-f16-ja.svgtspan2566" y="118.84592" x="270.13705" role="line">0.25</tspan></text>
+ <text id="shapes-f16-ja.svgtext2568" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) matrix(0.500003,0.866024,-0.866024,0.500003,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790072" font-variant="normal" y="-106.66351" x="214.9263" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2569" sodipodi:role="line" x="214.92630" y="-106.66351"/><tspan id="shapes-f16-ja.svgtspan2571"/><tspan id="shapes-f16-ja.svgtspan2573" y="-101.88870" x="214.92630" role="line">0.37</tspan></text>
+ <path id="shapes-f16-ja.svgpath1554" stroke-linejoin="miter" sodipodi:sides="9" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.37500000" fill="#cecece" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(0.964586,6.719919e-2,6.719919e-2,-0.964586,-356.5721,688.7050)" stroke-miterlimit="4.0000000" inkscape:rounded="0.43000000" sodipodi:r1="23.086590" sodipodi:r2="14.298160" sodipodi:arg1="1.1382904" sodipodi:arg2="1.4814137" sodipodi:type="star" d="M461.58,641.84c-4.19,1.97-3.79-7.1-8.4-6.72-4.67,0.39-2.82,9.24-7.34,8.04-4.47-1.19,1.66-7.88-2.12-10.55-3.82-2.7-8.09,5.27-10.78,1.44-2.66-3.78,6.34-4.97,5.16-9.44-1.2-4.52-9.59-1.17-9.19-5.83,0.39-4.61,8.05,0.27,10.02-3.91,1.99-4.24-6.59-7.06-3.29-10.38,3.26-3.27,5.99,5.38,10.19,3.45,4.25-1.97-0.51-9.65,4.15-10.06,4.6-0.42,1.13,7.97,5.59,9.18,4.52,1.23,5.81-7.71,9.64-5.04,3.8,2.65-4.25,6.84-1.62,10.64,2.67,3.84,9.41-2.19,10.63,2.33,1.21,4.47-7.65,2.5-8.07,7.11-0.43,4.66,8.6,4.37,6.64,8.62-1.95,4.19-7.48-3.01-10.76,0.25-3.32,3.3,3.78,8.89-0.45,10.87z" inkscape:randomized="0.0000000" sodipodi:cy="620.88135" sodipodi:cx="451.89960"/>
+ <text id="shapes-f16-ja.svgtext2575" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="117.60011" x="116.22874" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2576" sodipodi:role="line" x="116.22874" y="117.60011"/><tspan id="shapes-f16-ja.svgtspan2578"/><tspan id="shapes-f16-ja.svgtspan2580" y="122.37492" x="116.22874" role="line">0.43</tspan></text>
+ <text id="shapes-f16-ja.svgtext2582" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) matrix(0.384906,0.922956,-0.922956,0.384906,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9789882" font-variant="normal" y="-39.030281" x="32.583221" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2583" sodipodi:role="line" x="32.583221" y="-39.030281"/><tspan id="shapes-f16-ja.svgtspan2585"/><tspan id="shapes-f16-ja.svgtspan2587" y="-34.255495" x="32.583221" role="line">3.00</tspan></text>
+ <text id="shapes-f16-ja.svgtext2589" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) matrix(1.000000,-5.974290e-4,5.974290e-4,1.000000,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9789798" font-variant="normal" y="38.639725" x="107.11456" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2590" y="43.414501" x="107.11456" role="line">-</tspan><tspan id="shapes-f16-ja.svgtspan2592"/><tspan id="shapes-f16-ja.svgtspan2594">3.00</tspan><tspan id="shapes-f16-ja.svgtspan2596" sodipodi:role="line" x="107.11456" y="43.414501"/></text>
+ <path id="shapes-f16-ja.svgpath896" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" sodipodi:sides="3" fill-rule="evenodd" fill="#000" sodipodi:r1="120.20276" sodipodi:r2="60.101379" transform="translate(10, 4677.821293500003) matrix(0.120864,0.000000,0.000000,-0.120864,214.0977,80.90800)" sodipodi:arg2="1.5752720" sodipodi:arg1="0.52807445" inkscape:randomized="0.0000000" sodipodi:cy="492.50204" sodipodi:cx="224.45302" inkscape:rounded="0.41000000" inkscape:flatsided="false" d="M328.28,553.07c-21.5,36.87-61.42-0.28-104.1-0.47s-82.92,36.59-104.09-0.46c-21.178-37.06,30.94-53.05,52.45-89.92,21.5-36.87,9.77-90.11,52.45-89.92s30.47,53.33,51.65,90.38c21.17,37.06,73.15,53.52,51.64,90.39z"/>
+ <text id="shapes-f16-ja.svgtext2598" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="17.90111" x="236.78233" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#ffffff"><tspan id="shapes-f16-ja.svgtspan2599" sodipodi:role="line" x="236.78233" y="17.901110"/><tspan id="shapes-f16-ja.svgtspan2601"/><tspan id="shapes-f16-ja.svgtspan2603" y="22.675915" x="236.78233" role="line">0.41</tspan></text>
+ <text id="shapes-f16-ja.svgtext2909" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="95.56311" x="21.764177" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2606" y="100.33792" x="21.764177" role="line">5.43</tspan><tspan id="shapes-f16-ja.svgtspan2608"/><tspan id="shapes-f16-ja.svgtspan2610" sodipodi:role="line" x="21.764177" y="100.33792"/></text>
+ <text id="shapes-f16-ja.svgtext2613" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="89.486107" x="63.424889" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan2613" sodipodi:role="line" x="63.424889" y="89.486107"/><tspan id="shapes-f16-ja.svgtspan2615"/><tspan id="shapes-f16-ja.svgtspan2617" y="94.260912" x="63.424889" role="line">1.85</tspan></text>
+ <text id="shapes-f16-ja.svgtext3240" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="141.7691" x="62.71822" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan3241" sodipodi:role="line" x="62.718220" y="141.76910"/><tspan id="shapes-f16-ja.svgtspan3243"/><tspan id="shapes-f16-ja.svgtspan3245" y="146.54391" x="62.718220" role="line">0.21</tspan></text>
+ <text id="shapes-f16-ja.svgtext3868" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) matrix(1.000000,-5.974290e-4,5.974290e-4,1.000000,0.000000,0.000000)" font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9789798" font-variant="normal" y="66.356537" x="106.78857" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan3869" y="71.131313" x="106.78857" role="line">-</tspan><tspan id="shapes-f16-ja.svgtspan3871"/><tspan id="shapes-f16-ja.svgtspan3873">3.00</tspan><tspan id="shapes-f16-ja.svgtspan3875" sodipodi:role="line" x="106.78857" y="71.131313"/></text>
+ <path id="shapes-f16-ja.svgpath4498" stroke-linejoin="miter" sodipodi:sides="9" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.71101642" fill="#cecece" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(0.503029,8.386162e-2,-8.386162e-2,0.503029,540.5811,-2474.824)" stroke-miterlimit="4.0000000" inkscape:rounded="-0.43000000" sodipodi:r1="46.149918" sodipodi:r2="18.172943" sodipodi:arg1="0.93231400" sodipodi:arg2="1.2813799" sodipodi:type="star" d="M132.89,5179.5c10.26-7.6-34.571-16-22.32-19.6,12.25-3.7-20.697,27.9-7.94,28.6,12.76,0.8-16.198-34.4-4.468-29.4,11.728,5.1-33.782,8.1-24.496,16.9,9.285,8.8,9.746-36.8,15.467-25.4s-31.059-15.5-29.594-2.8c1.466,12.7,31.136-22,28.169-9.6-2.966,12.5-13.803-31.8-20.843-21.2-7.041,10.7,37.955,3.3,27.689,10.9-10.265,7.6,9.916-33.3-2.34-29.7-12.252,3.7,27.016,26.9,14.256,26.1-12.763-0.7,28.99-19.1,17.26-24.2s3.43,38-5.85,29.2c-9.29-8.8,34.5,3.9,28.78-7.5s-21.76,31.3-23.22,18.6c-1.47-12.7,23.87,25.2,26.84,12.8,2.96-12.5-36.77,9.9-29.73-0.7,7.04-10.7,2.07,34.6,12.34,27z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="5142.4639" sodipodi:cx="105.38494"/>
+ <text id="shapes-f16-ja.svgtext4499" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="122.21311" x="156.34573" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan4500" y="126.98792" x="156.34573" role="line">-0.43</tspan><tspan id="shapes-f16-ja.svgtspan4502"/><tspan id="shapes-f16-ja.svgtspan4504" sodipodi:role="line" x="156.34573" y="126.98792"/></text>
+ <path id="shapes-f16-ja.svgpath5127" stroke-linejoin="miter" sodipodi:sides="5" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.71101642" fill="#00edff" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="translate(10, 4677.821293500003) matrix(0.306731,-4.267910e-2,4.267910e-2,0.306731,-195.0316,-1440.110)" stroke-miterlimit="4.0000000" inkscape:rounded="-8.9362223" sodipodi:r1="17.613136" sodipodi:r2="8.1117020" sodipodi:arg1="-2.7000003" sodipodi:arg2="-2.0716818" sodipodi:type="star" d="M-6.3694,5101.1c-45.965,97.2,106.37-51.3,12.028,0.4-94.339,51.6,112.81,3.3,6.1341-10.4-106.68-13.6,81.595,85.3,3.324,11.6-78.27-73.8,31.71,108.3,11.744,2.6s-55.938,104-9.973,6.8c45.965-97.3-93.215,63.6,1.124,11.9,94.338-51.6-116.17-21-9.4888-7.4,106.68,13.7-89.319-69-11.049,4.8,78.271,73.8-15.857-117,4.109-11.3s38.013-106.3-7.9528-9z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="5108.5903" sodipodi:cx="9.5541286"/>
+ <text id="shapes-f16-ja.svgtext6108" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="143.25011" x="21.20429" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f16-ja.svgtspan5129" y="148.02491" x="21.204290" role="line">-8.94</tspan><tspan id="shapes-f16-ja.svgtspan5131"/><tspan id="shapes-f16-ja.svgtspan5133" sodipodi:role="line" x="21.204290" y="148.02491"/></text>
+ <path id="shapes-f16-ja.svgpath5833" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" sodipodi:sides="4" fill-rule="evenodd" fill="#000" sodipodi:r1="45.711628" sodipodi:r2="32.323002" transform="translate(10, 4677.821293500003) matrix(0.241306,0.000000,0.000000,0.241306,59.66014,-1049.710)" sodipodi:arg2="1.5707963" sodipodi:arg1="0.78539816" inkscape:randomized="0.0000000" sodipodi:cy="4696.8921" sodipodi:cx="171.63371" inkscape:rounded="0.39000000" inkscape:flatsided="true" d="M203.96,4729.2c-17.83,17.8-46.82,17.8-64.65,0s-17.83-46.8,0-64.6c17.83-17.9,46.82-17.9,64.65,0,17.82,17.8,17.82,46.8,0,64.6z"/>
+ <text id="shapes-f16-ja.svgtext5837" line-height="120.00000%" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" xml:space="preserve" transform="translate(10, 4677.821293500003) " font-style="normal" sodipodi:linespacing="120.00000%" font-stretch="normal" font-size="3.9790041" font-variant="normal" y="80.288109" x="96.318428" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#ffffff"><tspan id="shapes-f16-ja.svgtspan5838" sodipodi:role="line" x="96.318428" y="80.288109"/><tspan id="shapes-f16-ja.svgtspan5840"/><tspan id="shapes-f16-ja.svgtspan5842" y="85.062914" x="96.318428" role="line">0.39</tspan></text>
+ <rect id="d0e628" display="none" height="1000px" width="288" y="4838.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e628"/>
</flowRegion>
<flowDiv xml:space="preserve">頂点を鋭く、凹な辺を滑らかにしたい場合、もしくはその逆の形状がほしい場合は、星形から<flowSpan font-style="italic">オフセット</flowSpan> (<flowSpan font-weight="bold">Ctrl+J</flowSpan>) を作ることで簡単に実現できます:</flowDiv>
</flowRoot>
- <path id="shapes-f17-ja.svgpath2694" stroke-linejoin="miter" style="marker-end:none;marker-start:none;marker-mid:none;" sodipodi:type="inkscape:offset" d="M95.281,5226.1c-0.505,1.3-0.992,2.3-1.531,3.8-0.965,2.7-1.946,5.5-3.281,8-1.336,2.6-2.997,5.3-6.625,6.3-3.809,1.1-6.832-0.5-9.532-2-2.699-1.6-5.288-3.6-7.718-5.4-1.16-0.8-1.941-1.2-2.969-1.9,0.626,0.8,0.92,1.3,1.656,2.2,1.901,2.3,4.002,4.7,5.688,7.3,1.686,2.5,3.47,5.4,2.469,9.3-0.987,3.8-3.865,5.7-6.563,7.2-2.698,1.6-5.7,2.8-8.469,4-1.371,0.6-2.144,1.1-3.281,1.7,1.049-0.2,1.689-0.1,2.875-0.4,2.912-0.5,6.066-1.1,9.125-1.3,3.059-0.1,6.475-0.2,9.344,2.6,2.825,2.7,2.97,6.1,2.969,9.3-0.002,3.1-0.439,6.3-0.782,9.3-0.165,1.4-0.105,2.3-0.187,3.6,0.388-1,0.694-1.5,1.093-2.6,1.012-2.8,2.065-5.8,3.438-8.5,1.373-2.8,3.005-5.8,6.875-6.8,3.809-1.1,6.832,0.5,9.531,2,2.704,1.6,5.284,3.5,7.714,5.3,1.16,0.9,1.95,1.3,2.97,2-0.62-0.8-0.92-1.4-1.65-2.3-1.9-2.2-4-4.6-5.69-7.2s-3.47-5.5-2.47-9.4c0.99-3.8,3.87-5.6,6.56-7.2,2.7-1.5,5.7-2.8,8.47-4,1.37-0.6,2.15-1.1,3.28-1.6-1.04,0.1-1.69,0.1-2.87,0.3-2.91,0.5-6.07,1.1-9.13,1.3s-6.47,0.3-9.34-2.5c-2.826-2.8-2.971-6.2-2.969-9.3s0.439-6.3,0.781-9.3c0.173-1.5,0.139-2.5,0.219-3.8z" fill-rule="evenodd" xlink:href="#shapes-f17-ja.svgpath2693" inkscape:original="M 96.125 5217.4375 C 90.627188 5218.3264 88.703454 5238.2845 82.65625 5239.9688 C 75.920688 5241.8446 62.131885 5223.9675 57.03125 5228.75 C 52.146599 5233.3298 70.825719 5246.1407 69.15625 5252.625 C 67.412966 5259.3961 45.033761 5262.3791 46.625 5269.1875 C 48.148858 5275.7076 68.594118 5265.9372 73.375 5270.625 C 78.367278 5275.5203 69.74563 5296.4115 76.4375 5298.4375 C 82.846009 5300.3779 84.612149 5277.7965 91.0625 5276 C 97.798062 5274.1242 111.58687 5292.0012 116.6875 5287.2188 C 121.57215 5282.639 102.89303 5269.8281 104.5625 5263.3438 C 106.30578 5256.5727 128.68499 5253.5897 127.09375 5246.7812 C 125.56989 5240.2611 105.12463 5250.0315 100.34375 5245.3438 C 95.351472 5240.4485 103.97312 5219.5572 97.28125 5217.5312 C 96.880718 5217.41 96.491521 5217.3782 96.125 5217.4375 z " transform="translate(10, 4742.4740145) matrix(1.320520,0.000000,0.000000,1.320520,32.68152,-6886.747)" stroke="#000" stroke-dashoffset="0.0000000" fill-opacity="0.75000000" inkscape:href="#shapes-f17-ja.svgpath2693" stroke-linecap="butt" stroke-miterlimit="4.0000000" inkscape:radius="-4.4234619" xmlns:cc="http://creativecommons.org/ns#" stroke-width="0.47329840" fill="#ffb800"/>
- <path id="shapes-f17-ja.svgpath2696" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="inkscape:offset" d="M97.5,5207.5c-0.947,0-1.963,0-2.969,0.2-7.058,1.1-9.237,5.9-10.781,8.8-1.544,3-2.513,5.9-3.469,8.5-0.465,1.3-0.798,2-1.219,3.1-1.266-0.9-2.361-1.7-3.937-2.8-2.538-1.9-5.19-3.9-8.75-5.5-1.78-0.9-3.857-1.7-6.75-1.8s-6.799,1.1-9.375,3.5c-2.603,2.4-4.091,6.7-3.938,9.8,0.154,3.1,1.118,5.1,2.032,6.9,1.827,3.4,3.957,5.8,5.937,8.1,1.153,1.4,1.853,2.4,2.75,3.5-1.387,0.6-2.558,1.2-4.343,2-2.892,1.2-5.986,2.5-9.188,4.8-1.601,1.1-3.349,2.5-4.875,5-1.526,2.4-2.46,6.4-1.656,9.8,0.812,3.5,3.785,6.9,6.531,8.4,2.746,1.4,4.998,1.5,6.938,1.6,3.879,0.1,7.028-0.5,10.062-1,1.765-0.3,2.917-0.5,4.344-0.7-0.128,1.5-0.217,2.8-0.438,4.8-0.358,3.1-0.792,6.4-0.437,10.3,0.177,2,0.508,4.2,1.875,6.7,1.366,2.6,4.337,5.4,7.718,6.4,3.416,1.1,7.877,0.2,10.469-1.5,2.592-1.6,3.879-3.5,4.907-5.2,2.054-3.2,3.071-6.3,4.124-9.2,0.614-1.7,1.064-2.8,1.594-4.1,1.267,0.9,2.361,1.6,3.938,2.8,2.536,1.9,5.186,3.9,8.746,5.5,1.78,0.8,3.86,1.6,6.75,1.7,2.9,0.1,6.8-1,9.38-3.4,2.6-2.5,4.09-6.8,3.94-9.8-0.16-3.1-1.12-5.2-2.03-6.9-1.83-3.4-3.96-5.8-5.94-8.2-1.16-1.3-1.86-2.3-2.75-3.4,1.39-0.7,2.56-1.2,4.34-2,2.89-1.3,5.99-2.5,9.19-4.8,1.6-1.1,3.35-2.5,4.87-5,1.53-2.5,2.46-6.4,1.66-9.9-0.81-3.4-3.78-6.9-6.53-8.3s-5-1.6-6.94-1.6c-3.88-0.2-7.03,0.5-10.06,1-1.77,0.3-2.92,0.4-4.34,0.6,0.12-1.5,0.21-2.8,0.43-4.7,0.36-3.1,0.79-6.4,0.44-10.3-0.18-2-0.51-4.2-1.87-6.8-1.37-2.5-4.34-5.3-7.72-6.4-0.827-0.2-1.713-0.4-2.66-0.5z" fill-rule="evenodd" xlink:href="#shapes-f17-ja.svgpath2693" inkscape:original="M 96.125 5217.4375 C 90.627188 5218.3264 88.703454 5238.2845 82.65625 5239.9688 C 75.920688 5241.8446 62.131885 5223.9675 57.03125 5228.75 C 52.146599 5233.3298 70.825719 5246.1407 69.15625 5252.625 C 67.412966 5259.3961 45.033761 5262.3791 46.625 5269.1875 C 48.148858 5275.7076 68.594118 5265.9372 73.375 5270.625 C 78.367278 5275.5203 69.74563 5296.4115 76.4375 5298.4375 C 82.846009 5300.3779 84.612149 5277.7965 91.0625 5276 C 97.798062 5274.1242 111.58687 5292.0012 116.6875 5287.2188 C 121.57215 5282.639 102.89303 5269.8281 104.5625 5263.3438 C 106.30578 5256.5727 128.68499 5253.5897 127.09375 5246.7812 C 125.56989 5240.2611 105.12463 5250.0315 100.34375 5245.3438 C 95.351472 5240.4485 103.97312 5219.5572 97.28125 5217.5312 C 96.880718 5217.41 96.491521 5217.3782 96.125 5217.4375 z " transform="translate(10, 4742.4740145) matrix(0.827366,0.000000,0.000000,0.827366,177.7036,-4293.463)" stroke="#000" stroke-dashoffset="0.0000000" fill-opacity="0.75000000" inkscape:href="#shapes-f17-ja.svgpath2693" stroke-linecap="butt" stroke-miterlimit="4.0000000" inkscape:radius="9.9201479" xmlns:cc="http://creativecommons.org/ns#" stroke-width="0.75540936" fill="#ffb800"/>
- <path id="shapes-f17-ja.svgpath2693" stroke-linejoin="miter" sodipodi:sides="6" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.62500000" fill="#ffb800" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="translate(10, 4742.4740145) translate(-32.78474,-5201.170)" stroke-miterlimit="4.0000000" inkscape:rounded="0.25000000" sodipodi:r1="41.765072" sodipodi:r2="18.491833" sodipodi:arg1="0.77559456" sodipodi:arg2="1.3411834" xmlns:cc="http://creativecommons.org/ns#" sodipodi:type="star" d="M116.68,5287.2c-5.1,4.8-18.88-13.1-25.616-11.2-6.45,1.8-8.213,24.4-14.622,22.4-6.692-2,1.916-22.9-3.076-27.8-4.781-4.7-25.22,5.1-26.744-1.4-1.592-6.8,20.792-9.8,22.535-16.6,1.67-6.5-17.006-19.3-12.122-23.9,5.101-4.7,18.876,13.2,25.612,11.3,6.45-1.8,8.214-24.4,14.622-22.5,6.691,2.1-1.916,22.9,3.081,27.8,4.78,4.7,25.22-5,26.74,1.5,1.59,6.8-20.79,9.8-22.54,16.5-1.67,6.5,17.01,19.3,12.13,23.9z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="5257.9824" sodipodi:cx="86.855721"/>
- <flowRoot id="shapes-f17-ja.svgflowRoot2701" style="text-anchor:middle;text-align:center;" xml:space="preserve" transform="translate(10, 4742.4740145) translate(-0.2315097,0)" font-size="6" xmlns:cc="http://creativecommons.org/ns#"><flowRegion id="shapes-f17-ja.svgflowRegion2703"><rect id="shapes-f17-ja.svgrect2705" style="text-align:center;" height="15" width="84.643" y="-0.13782" x="11.786"/></flowRegion><flowPara id="shapes-f17-ja.svgflowPara2707">オリジナルの星形</flowPara></flowRoot>
- <flowRoot id="shapes-f17-ja.svgflowRoot2709" style="text-anchor:middle;text-align:center;" xml:space="preserve" transform="translate(10, 4742.4740145) translate(93.078572,-5.8909855e-2)" font-size="6" xmlns:cc="http://creativecommons.org/ns#"><flowRegion id="shapes-f17-ja.svgflowRegion2711"><rect id="shapes-f17-ja.svgrect2713" style="text-align:center;" height="15" width="84.643" y="-0.13782" x="11.786"/></flowRegion><flowPara id="shapes-f17-ja.svgflowPara2715">リンクされたオフセット、インセット</flowPara></flowRoot>
- <flowRoot id="shapes-f17-ja.svgflowRoot2717" style="text-anchor:middle;text-align:center;" xml:space="preserve" transform="translate(10, 4742.4740145) translate(195.2656,-5.8909858e-2)" font-size="6" xmlns:cc="http://creativecommons.org/ns#"><flowRegion id="shapes-f17-ja.svgflowRegion2719"><rect id="shapes-f17-ja.svgrect2721" style="text-align:center;" height="15" width="84.643" y="-0.13782" x="11.786"/></flowRegion><flowPara id="shapes-f17-ja.svgflowPara2723">リンクされたオフセット、アウトセット</flowPara></flowRoot>
- <rect id="d0e647" display="none" height="1000px" width="288" y="4852.7" x="10"/>
+ <path id="shapes-f17-ja.svgpath2694" stroke-linejoin="miter" style="marker-end:none;marker-start:none;marker-mid:none;" sodipodi:type="inkscape:offset" d="M95.281,5226.1c-0.505,1.3-0.992,2.3-1.531,3.8-0.965,2.7-1.946,5.5-3.281,8-1.336,2.6-2.997,5.3-6.625,6.3-3.809,1.1-6.832-0.5-9.532-2-2.699-1.6-5.288-3.6-7.718-5.4-1.16-0.8-1.941-1.2-2.969-1.9,0.626,0.8,0.92,1.3,1.656,2.2,1.901,2.3,4.002,4.7,5.688,7.3,1.686,2.5,3.47,5.4,2.469,9.3-0.987,3.8-3.865,5.7-6.563,7.2-2.698,1.6-5.7,2.8-8.469,4-1.371,0.6-2.144,1.1-3.281,1.7,1.049-0.2,1.689-0.1,2.875-0.4,2.912-0.5,6.066-1.1,9.125-1.3,3.059-0.1,6.475-0.2,9.344,2.6,2.825,2.7,2.97,6.1,2.969,9.3-0.002,3.1-0.439,6.3-0.782,9.3-0.165,1.4-0.105,2.3-0.187,3.6,0.388-1,0.694-1.5,1.093-2.6,1.012-2.8,2.065-5.8,3.438-8.5,1.373-2.8,3.005-5.8,6.875-6.8,3.809-1.1,6.832,0.5,9.531,2,2.704,1.6,5.284,3.5,7.714,5.3,1.16,0.9,1.95,1.3,2.97,2-0.62-0.8-0.92-1.4-1.65-2.3-1.9-2.2-4-4.6-5.69-7.2s-3.47-5.5-2.47-9.4c0.99-3.8,3.87-5.6,6.56-7.2,2.7-1.5,5.7-2.8,8.47-4,1.37-0.6,2.15-1.1,3.28-1.6-1.04,0.1-1.69,0.1-2.87,0.3-2.91,0.5-6.07,1.1-9.13,1.3s-6.47,0.3-9.34-2.5c-2.826-2.8-2.971-6.2-2.969-9.3s0.439-6.3,0.781-9.3c0.173-1.5,0.139-2.5,0.219-3.8z" fill-rule="evenodd" xlink:href="#shapes-f17-ja.svgpath2693" inkscape:original="M 96.125 5217.4375 C 90.627188 5218.3264 88.703454 5238.2845 82.65625 5239.9688 C 75.920688 5241.8446 62.131885 5223.9675 57.03125 5228.75 C 52.146599 5233.3298 70.825719 5246.1407 69.15625 5252.625 C 67.412966 5259.3961 45.033761 5262.3791 46.625 5269.1875 C 48.148858 5275.7076 68.594118 5265.9372 73.375 5270.625 C 78.367278 5275.5203 69.74563 5296.4115 76.4375 5298.4375 C 82.846009 5300.3779 84.612149 5277.7965 91.0625 5276 C 97.798062 5274.1242 111.58687 5292.0012 116.6875 5287.2188 C 121.57215 5282.639 102.89303 5269.8281 104.5625 5263.3438 C 106.30578 5256.5727 128.68499 5253.5897 127.09375 5246.7812 C 125.56989 5240.2611 105.12463 5250.0315 100.34375 5245.3438 C 95.351472 5240.4485 103.97312 5219.5572 97.28125 5217.5312 C 96.880718 5217.41 96.491521 5217.3782 96.125 5217.4375 z " transform="translate(10, 4877.033924500002) matrix(1.320520,0.000000,0.000000,1.320520,32.68152,-6886.747)" stroke="#000" stroke-dashoffset="0.0000000" fill-opacity="0.75000000" inkscape:href="#shapes-f17-ja.svgpath2693" stroke-linecap="butt" stroke-miterlimit="4.0000000" inkscape:radius="-4.4234619" xmlns:cc="http://creativecommons.org/ns#" stroke-width="0.47329840" fill="#ffb800"/>
+ <path id="shapes-f17-ja.svgpath2696" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="inkscape:offset" d="M97.5,5207.5c-0.947,0-1.963,0-2.969,0.2-7.058,1.1-9.237,5.9-10.781,8.8-1.544,3-2.513,5.9-3.469,8.5-0.465,1.3-0.798,2-1.219,3.1-1.266-0.9-2.361-1.7-3.937-2.8-2.538-1.9-5.19-3.9-8.75-5.5-1.78-0.9-3.857-1.7-6.75-1.8s-6.799,1.1-9.375,3.5c-2.603,2.4-4.091,6.7-3.938,9.8,0.154,3.1,1.118,5.1,2.032,6.9,1.827,3.4,3.957,5.8,5.937,8.1,1.153,1.4,1.853,2.4,2.75,3.5-1.387,0.6-2.558,1.2-4.343,2-2.892,1.2-5.986,2.5-9.188,4.8-1.601,1.1-3.349,2.5-4.875,5-1.526,2.4-2.46,6.4-1.656,9.8,0.812,3.5,3.785,6.9,6.531,8.4,2.746,1.4,4.998,1.5,6.938,1.6,3.879,0.1,7.028-0.5,10.062-1,1.765-0.3,2.917-0.5,4.344-0.7-0.128,1.5-0.217,2.8-0.438,4.8-0.358,3.1-0.792,6.4-0.437,10.3,0.177,2,0.508,4.2,1.875,6.7,1.366,2.6,4.337,5.4,7.718,6.4,3.416,1.1,7.877,0.2,10.469-1.5,2.592-1.6,3.879-3.5,4.907-5.2,2.054-3.2,3.071-6.3,4.124-9.2,0.614-1.7,1.064-2.8,1.594-4.1,1.267,0.9,2.361,1.6,3.938,2.8,2.536,1.9,5.186,3.9,8.746,5.5,1.78,0.8,3.86,1.6,6.75,1.7,2.9,0.1,6.8-1,9.38-3.4,2.6-2.5,4.09-6.8,3.94-9.8-0.16-3.1-1.12-5.2-2.03-6.9-1.83-3.4-3.96-5.8-5.94-8.2-1.16-1.3-1.86-2.3-2.75-3.4,1.39-0.7,2.56-1.2,4.34-2,2.89-1.3,5.99-2.5,9.19-4.8,1.6-1.1,3.35-2.5,4.87-5,1.53-2.5,2.46-6.4,1.66-9.9-0.81-3.4-3.78-6.9-6.53-8.3s-5-1.6-6.94-1.6c-3.88-0.2-7.03,0.5-10.06,1-1.77,0.3-2.92,0.4-4.34,0.6,0.12-1.5,0.21-2.8,0.43-4.7,0.36-3.1,0.79-6.4,0.44-10.3-0.18-2-0.51-4.2-1.87-6.8-1.37-2.5-4.34-5.3-7.72-6.4-0.827-0.2-1.713-0.4-2.66-0.5z" fill-rule="evenodd" xlink:href="#shapes-f17-ja.svgpath2693" inkscape:original="M 96.125 5217.4375 C 90.627188 5218.3264 88.703454 5238.2845 82.65625 5239.9688 C 75.920688 5241.8446 62.131885 5223.9675 57.03125 5228.75 C 52.146599 5233.3298 70.825719 5246.1407 69.15625 5252.625 C 67.412966 5259.3961 45.033761 5262.3791 46.625 5269.1875 C 48.148858 5275.7076 68.594118 5265.9372 73.375 5270.625 C 78.367278 5275.5203 69.74563 5296.4115 76.4375 5298.4375 C 82.846009 5300.3779 84.612149 5277.7965 91.0625 5276 C 97.798062 5274.1242 111.58687 5292.0012 116.6875 5287.2188 C 121.57215 5282.639 102.89303 5269.8281 104.5625 5263.3438 C 106.30578 5256.5727 128.68499 5253.5897 127.09375 5246.7812 C 125.56989 5240.2611 105.12463 5250.0315 100.34375 5245.3438 C 95.351472 5240.4485 103.97312 5219.5572 97.28125 5217.5312 C 96.880718 5217.41 96.491521 5217.3782 96.125 5217.4375 z " transform="translate(10, 4877.033924500002) matrix(0.827366,0.000000,0.000000,0.827366,177.7036,-4293.463)" stroke="#000" stroke-dashoffset="0.0000000" fill-opacity="0.75000000" inkscape:href="#shapes-f17-ja.svgpath2693" stroke-linecap="butt" stroke-miterlimit="4.0000000" inkscape:radius="9.9201479" xmlns:cc="http://creativecommons.org/ns#" stroke-width="0.75540936" fill="#ffb800"/>
+ <path id="shapes-f17-ja.svgpath2693" stroke-linejoin="miter" sodipodi:sides="6" fill-opacity="0.75000000" inkscape:flatsided="false" stroke="#000" stroke-linecap="butt" stroke-width="0.62500000" fill="#ffb800" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" fill-rule="evenodd" transform="translate(10, 4877.033924500002) translate(-32.78474,-5201.170)" stroke-miterlimit="4.0000000" inkscape:rounded="0.25000000" sodipodi:r1="41.765072" sodipodi:r2="18.491833" sodipodi:arg1="0.77559456" sodipodi:arg2="1.3411834" xmlns:cc="http://creativecommons.org/ns#" sodipodi:type="star" d="M116.68,5287.2c-5.1,4.8-18.88-13.1-25.616-11.2-6.45,1.8-8.213,24.4-14.622,22.4-6.692-2,1.916-22.9-3.076-27.8-4.781-4.7-25.22,5.1-26.744-1.4-1.592-6.8,20.792-9.8,22.535-16.6,1.67-6.5-17.006-19.3-12.122-23.9,5.101-4.7,18.876,13.2,25.612,11.3,6.45-1.8,8.214-24.4,14.622-22.5,6.691,2.1-1.916,22.9,3.081,27.8,4.78,4.7,25.22-5,26.74,1.5,1.59,6.8-20.79,9.8-22.54,16.5-1.67,6.5,17.01,19.3,12.13,23.9z" stroke-dashoffset="0.0000000" inkscape:randomized="0.0000000" sodipodi:cy="5257.9824" sodipodi:cx="86.855721"/>
+ <flowRoot id="shapes-f17-ja.svgflowRoot2701" style="text-anchor:middle;text-align:center;" xml:space="preserve" transform="translate(10, 4877.033924500002) translate(-0.2315097,0)" font-size="6" xmlns:cc="http://creativecommons.org/ns#"><flowRegion id="shapes-f17-ja.svgflowRegion2703"><rect id="shapes-f17-ja.svgrect2705" style="text-align:center;" height="15" width="84.643" y="-0.13782" x="11.786"/></flowRegion><flowPara id="shapes-f17-ja.svgflowPara2707">オリジナルの星形</flowPara></flowRoot>
+ <flowRoot id="shapes-f17-ja.svgflowRoot2709" style="text-anchor:middle;text-align:center;" xml:space="preserve" transform="translate(10, 4877.033924500002) translate(93.078572,-5.8909855e-2)" font-size="6" xmlns:cc="http://creativecommons.org/ns#"><flowRegion id="shapes-f17-ja.svgflowRegion2711"><rect id="shapes-f17-ja.svgrect2713" style="text-align:center;" height="15" width="84.643" y="-0.13782" x="11.786"/></flowRegion><flowPara id="shapes-f17-ja.svgflowPara2715">リンクされたオフセット、インセット</flowPara></flowRoot>
+ <flowRoot id="shapes-f17-ja.svgflowRoot2717" style="text-anchor:middle;text-align:center;" xml:space="preserve" transform="translate(10, 4877.033924500002) translate(195.2656,-5.8909858e-2)" font-size="6" xmlns:cc="http://creativecommons.org/ns#"><flowRegion id="shapes-f17-ja.svgflowRegion2719"><rect id="shapes-f17-ja.svgrect2721" style="text-align:center;" height="15" width="84.643" y="-0.13782" x="11.786"/></flowRegion><flowPara id="shapes-f17-ja.svgflowPara2723">リンクされたオフセット、アウトセット</flowPara></flowRoot>
+ <rect id="d0e647" display="none" height="1000px" width="288" y="4987.4" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e647"/>
</flowRegion>
<flowDiv xml:space="preserve">Inkscape の星形のハンドルを<flowSpan font-weight="bold">Shift+ドラッグ</flowSpan>することは、最もすばらしい楽しみの一つです。しかしもっと楽しむことができます。</flowDiv>
</flowRoot>
- <rect id="d0e653" display="none" height="1000px" width="288" y="4881.5" x="10"/>
+ <rect id="d0e653" display="none" height="1000px" width="288" y="5017.3" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e653"/>
</flowRegion>
<flowDiv xml:space="preserve">現実世界の形状により似せるために、Inkscape は星形と多角形の<flowSpan font-style="italic">ランダム化</flowSpan> (乱雑なひずみ) を備えています。わずかなランダム化は、星形を少し乱します、より人間らしく、より可笑しく。強いランダム化は様々な熱狂的で予測不可能な形状を作り出す刺激的な方法です。丸めを施した星形は乱雑さを加えても丸まったままです。ショートカットは以下のとおりです:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 4949.0444175)"/>
- <rect id="d0e662" display="none" height="1000px" width="258" y="4943" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5089.980812500003)"/>
+ <rect id="d0e662" display="none" height="1000px" width="258" y="5084" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e662"/>
</flowRegion>
<flowDiv xml:space="preserve">ハンドルを接線方向に <flowSpan font-weight="bold">Alt+ドラッグ</flowSpan> で星形と多角形をランダム化する。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 4977.419144500001)"/>
- <rect id="d0e669" display="none" height="1000px" width="258" y="4971.4" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5119.666970500003)"/>
+ <rect id="d0e669" display="none" height="1000px" width="258" y="5113.7" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e669"/>
</flowRegion>
<flowDiv xml:space="preserve">ハンドルを <flowSpan font-weight="bold">Alt+クリック</flowSpan> でランダム化を取り除く。</flowDiv>
</flowRoot>
- <rect id="d0e676" display="none" height="1000px" width="288" y="4989.3" x="10"/>
+ <rect id="d0e676" display="none" height="1000px" width="288" y="5131.3" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e676"/>
</flowRegion>
<flowDiv xml:space="preserve">ランダムな星形を描いたり、ハンドルをドラッグして編集したりすると、星形は &quot;振動&quot; します。なぜならハンドルの固有の位置はその固有のランダム化に対応しているからです。ですから、Alt を押さずにドラッグすると同じランダム化のレベルでハンドルは動き、一方 Alt を押しながらドラッグするとランダム化しますがそのレベルは調整されます。ここに少しだけハンドルを動かしてランダムにした (ランダム化は 0.1 まで) 以外は同じパラメータをもつ星形があります:</flowDiv>
</flowRoot>
- <path id="shapes-f18-ja.svgpath2788" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M58.553,5590.9c-2.573,3.4-15.025-3.5-17.918-0.9-2.79,2.5,2.345,13.8-1.678,14.3-4.171,0.5-3.815-14.6-7.67-15.8-3.717-1.1-17.979,13.8-20.426,10.9-2.5377-3,10.265-12.7,9.009-16.5-1.211-3.7-17.879-6.6-17.172-10.4,0.7336-3.8,17.702-1.3,20.074-4.5,2.287-3.2-12.72-18.7-9.402-20.4,3.441-1.8,15.229,12.9,19.096,12,3.729-0.8,9.056-18.4,12.69-16.9,3.767,1.5-1.457,17.7,1.295,20.6,2.654,2.8,15.207-3.8,16.541-0.2,1.384,3.8-13.038,9.9-12.837,14.1,0.193,4,10.878,10.5,8.397,13.7z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.728476" inkscape:flatsided="false" transform="translate(10, 5081.468338500001) matrix(0.847225,0.000000,0.000000,0.847225,6.330246,-4695.815)" sodipodi:arg2="0.98389742" sodipodi:arg1="0.50595040" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.364238" sodipodi:sides="7"/>
- <path id="shapes-f18-ja.svgpath2789" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M62.192,5577.2c-0.733,3.7-11.065,1.3-13.354,4.4-2.202,3,0.954,16.5-2.147,18.6-3.224,2.1-10.016-9.4-13.797-9.6-3.637-0.2-5.862,11.4-9.399,10.1-3.677-1.3,2.956-10.2,0.649-13.4-2.22-3.2-17.575-0.2-18.85-3.8-1.3258-3.8,12.33-5.9,12.606-9.9,0.266-3.9-11.16-13.3-8.5838-16.1,2.6778-2.9,16.669,7.8,20.11,5.9,3.311-1.8,1.811-16.6,5.419-16.4,3.751,0.2,4.374,11.2,7.702,12.9,3.203,1.6,11.043-5.2,13.397-2.2,2.447,3.1-8.982,7.4-8.346,11.1,0.611,3.7,15.299,4.9,14.594,8.4z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="29.479511" inkscape:flatsided="false" transform="translate(10, 5081.468338500001) matrix(0.847225,0.000000,0.000000,0.847225,66.37022,-4695.815)" sodipodi:arg2="0.64669515" sodipodi:arg1="0.16874813" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.188270" sodipodi:sides="7"/>
- <path id="shapes-f18-ja.svgpath2790" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M62.487,5591.1c-2.584,3.2-19.795-4.8-23.125-2.6-3.211,2.1,1.401,15.8-2.556,16.8-4.103,1-1.338-12.7-5.129-13.9-3.657-1-19.069,8.4-21.492,5.3-2.5119-3.3,10.704-13.8,9.457-17.8-1.203-3.8-19.512-0.1-18.462-3.9,1.0886-4,14.981-5.7,17.32-9.1,2.256-3.2-6.854-14-3.398-16.1,3.584-2,15.403,9.4,19.48,9.5,3.933,0.1,6.508-13.9,9.898-12.1,3.515,1.8-4.156,14.7-1.096,17.2,2.951,2.4,17.494-6.3,19.072-2.7,1.636,3.7-13.965,11.1-14.782,15.1-0.788,3.7,17.305,11.1,14.813,14.3z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5081.468338500001) matrix(0.847225,0.000000,0.000000,0.847225,126.4111,-4695.815)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
- <path id="shapes-f18-ja.svgpath2791" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M60.008,5593.6c-1.883,3.4-12.402-8.2-15.83-6.5-3.306,1.6-1.726,20.6-5.635,20.7-4.053,0.1-4.988-16.2-8.797-17.4-3.673-1.1-13.903,7-16.41,4-2.598-3,9.392-11.8,8.745-15.9-0.624-3.8-15.727-2.2-15.135-6,0.6135-4,11.013-1.7,12.747-5.1,1.672-3.3-1.474-16.7,2.196-18.5,3.805-1.7,6.817,10.2,10.617,9.3,3.665-0.9,10.537-11.7,14.221-10.6,3.821,1.2-4.262,11.4-1.488,14.2,2.676,2.8,14.591-1.9,15.512,1.8,0.956,3.8-9.663,10.4-9.963,14.4-0.289,3.9,11.036,12.4,9.22,15.6z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.324377" inkscape:flatsided="false" transform="translate(10, 5081.468338500001) matrix(0.847225,0.000000,0.000000,0.847225,186.4497,-4695.815)" sodipodi:arg2="1.0759160" sodipodi:arg1="0.59796906" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.162188" sodipodi:sides="7"/>
- <path id="shapes-f18-ja.svgpath2792" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M59.226,5596.8c-2.425,3.3-15.132-7.7-18.888-6.7-3.624,1-6.802,16.9-10.457,16.7-3.789-0.1,2.399-14.8-1.253-16.7-3.522-1.7-14.588,7.8-16.308,4.3-1.783-3.6,6.846-14.3,5.691-18-1.114-3.6-16.06-6.3-14.948-10.2,1.1536-4,19.097,2.1,21.458-1.3,2.278-3.4-4.961-14.2-1.253-15,3.844-0.8,9.38,11.6,13.462,12.2,3.937,0.6,9.297-19,12.452-16.6,3.272,2.4-7.578,16.5-4.826,19.6,2.655,3,18.78-2,18.937,1.9,0.164,4-12.063,8.2-12.607,12.1-0.525,3.7,10.879,14.6,8.54,17.7z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.103865" inkscape:flatsided="false" transform="translate(10, 5081.468338500001) matrix(0.847225,0.000000,0.000000,0.847225,246.4904,-4695.815)" sodipodi:arg2="1.2035873" sodipodi:arg1="0.72564034" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.051932" sodipodi:sides="7"/>
- <rect id="d0e689" display="none" height="1000px" width="288" y="5148.7" x="10"/>
+ <path id="shapes-f18-ja.svgpath2788" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M58.553,5590.9c-2.573,3.4-15.025-3.5-17.918-0.9-2.79,2.5,2.345,13.8-1.678,14.3-4.171,0.5-3.815-14.6-7.67-15.8-3.717-1.1-17.979,13.8-20.426,10.9-2.5377-3,10.265-12.7,9.009-16.5-1.211-3.7-17.879-6.6-17.172-10.4,0.7336-3.8,17.702-1.3,20.074-4.5,2.287-3.2-12.72-18.7-9.402-20.4,3.441-1.8,15.229,12.9,19.096,12,3.729-0.8,9.056-18.4,12.69-16.9,3.767,1.5-1.457,17.7,1.295,20.6,2.654,2.8,15.207-3.8,16.541-0.2,1.384,3.8-13.038,9.9-12.837,14.1,0.193,4,10.878,10.5,8.397,13.7z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.728476" inkscape:flatsided="false" transform="translate(10, 5218.2774480000035) matrix(0.847225,0.000000,0.000000,0.847225,6.330246,-4695.815)" sodipodi:arg2="0.98389742" sodipodi:arg1="0.50595040" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.364238" sodipodi:sides="7"/>
+ <path id="shapes-f18-ja.svgpath2789" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M62.192,5577.2c-0.733,3.7-11.065,1.3-13.354,4.4-2.202,3,0.954,16.5-2.147,18.6-3.224,2.1-10.016-9.4-13.797-9.6-3.637-0.2-5.862,11.4-9.399,10.1-3.677-1.3,2.956-10.2,0.649-13.4-2.22-3.2-17.575-0.2-18.85-3.8-1.3258-3.8,12.33-5.9,12.606-9.9,0.266-3.9-11.16-13.3-8.5838-16.1,2.6778-2.9,16.669,7.8,20.11,5.9,3.311-1.8,1.811-16.6,5.419-16.4,3.751,0.2,4.374,11.2,7.702,12.9,3.203,1.6,11.043-5.2,13.397-2.2,2.447,3.1-8.982,7.4-8.346,11.1,0.611,3.7,15.299,4.9,14.594,8.4z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="29.479511" inkscape:flatsided="false" transform="translate(10, 5218.2774480000035) matrix(0.847225,0.000000,0.000000,0.847225,66.37022,-4695.815)" sodipodi:arg2="0.64669515" sodipodi:arg1="0.16874813" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.188270" sodipodi:sides="7"/>
+ <path id="shapes-f18-ja.svgpath2790" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M62.487,5591.1c-2.584,3.2-19.795-4.8-23.125-2.6-3.211,2.1,1.401,15.8-2.556,16.8-4.103,1-1.338-12.7-5.129-13.9-3.657-1-19.069,8.4-21.492,5.3-2.5119-3.3,10.704-13.8,9.457-17.8-1.203-3.8-19.512-0.1-18.462-3.9,1.0886-4,14.981-5.7,17.32-9.1,2.256-3.2-6.854-14-3.398-16.1,3.584-2,15.403,9.4,19.48,9.5,3.933,0.1,6.508-13.9,9.898-12.1,3.515,1.8-4.156,14.7-1.096,17.2,2.951,2.4,17.494-6.3,19.072-2.7,1.636,3.7-13.965,11.1-14.782,15.1-0.788,3.7,17.305,11.1,14.813,14.3z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5218.2774480000035) matrix(0.847225,0.000000,0.000000,0.847225,126.4111,-4695.815)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
+ <path id="shapes-f18-ja.svgpath2791" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M60.008,5593.6c-1.883,3.4-12.402-8.2-15.83-6.5-3.306,1.6-1.726,20.6-5.635,20.7-4.053,0.1-4.988-16.2-8.797-17.4-3.673-1.1-13.903,7-16.41,4-2.598-3,9.392-11.8,8.745-15.9-0.624-3.8-15.727-2.2-15.135-6,0.6135-4,11.013-1.7,12.747-5.1,1.672-3.3-1.474-16.7,2.196-18.5,3.805-1.7,6.817,10.2,10.617,9.3,3.665-0.9,10.537-11.7,14.221-10.6,3.821,1.2-4.262,11.4-1.488,14.2,2.676,2.8,14.591-1.9,15.512,1.8,0.956,3.8-9.663,10.4-9.963,14.4-0.289,3.9,11.036,12.4,9.22,15.6z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.324377" inkscape:flatsided="false" transform="translate(10, 5218.2774480000035) matrix(0.847225,0.000000,0.000000,0.847225,186.4497,-4695.815)" sodipodi:arg2="1.0759160" sodipodi:arg1="0.59796906" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.162188" sodipodi:sides="7"/>
+ <path id="shapes-f18-ja.svgpath2792" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M59.226,5596.8c-2.425,3.3-15.132-7.7-18.888-6.7-3.624,1-6.802,16.9-10.457,16.7-3.789-0.1,2.399-14.8-1.253-16.7-3.522-1.7-14.588,7.8-16.308,4.3-1.783-3.6,6.846-14.3,5.691-18-1.114-3.6-16.06-6.3-14.948-10.2,1.1536-4,19.097,2.1,21.458-1.3,2.278-3.4-4.961-14.2-1.253-15,3.844-0.8,9.38,11.6,13.462,12.2,3.937,0.6,9.297-19,12.452-16.6,3.272,2.4-7.578,16.5-4.826,19.6,2.655,3,18.78-2,18.937,1.9,0.164,4-12.063,8.2-12.607,12.1-0.525,3.7,10.879,14.6,8.54,17.7z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.103865" inkscape:flatsided="false" transform="translate(10, 5218.2774480000035) matrix(0.847225,0.000000,0.000000,0.847225,246.4904,-4695.815)" sodipodi:arg2="1.2035873" sodipodi:arg1="0.72564034" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.051932" sodipodi:sides="7"/>
+ <rect id="d0e689" display="none" height="1000px" width="288" y="5285.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e689"/>
</flowRegion>
<flowDiv xml:space="preserve">そして、ここに上の真中の星形の乱雑さを -0.2 から 0.2 まで変化させたものがあります:</flowDiv>
</flowRoot>
- <text id="shapes-f19-ja.svgtext2848" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5185.555975500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="274.15491" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2849" y="-2.4563127" x="274.15491" sodipodi:role="line"/><tspan id="shapes-f19-ja.svgtspan2851"/><tspan id="shapes-f19-ja.svgtspan2853" y="3.9817331" x="274.15491" role="line">+0.2</tspan></text>
- <text id="shapes-f19-ja.svgtext2841" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5185.555975500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="212.89142" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2842" y="-2.4563127" x="212.89142" sodipodi:role="line"/><tspan id="shapes-f19-ja.svgtspan2844"/><tspan id="shapes-f19-ja.svgtspan2846" y="3.9817331" x="212.89142" role="line">+0.1</tspan></text>
- <text id="shapes-f19-ja.svgtext2833" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5185.555975500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="4.1156874" x="151.42322" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2835" y="10.553733" x="151.42322" role="line">0</tspan><tspan id="shapes-f19-ja.svgtspan2837"/><tspan id="shapes-f19-ja.svgtspan2839" y="10.553733" x="151.42322" sodipodi:role="line"/></text>
- <text id="shapes-f19-ja.svgtext2814" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5185.555975500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="4.1156874" x="83.021225" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2821" y="10.553733" x="83.021225" role="line">-0.1</tspan><tspan id="shapes-f19-ja.svgtspan2829"/><tspan id="shapes-f19-ja.svgtspan2831" y="10.553733" x="83.021225" sodipodi:role="line"/></text>
- <text id="shapes-f19-ja.svgtext2805" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5185.555975500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="4.1156874" x="26.32832" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2807" y="10.553733" x="26.328320" role="line">-0.2</tspan><tspan id="shapes-f19-ja.svgtspan2809"/><tspan id="shapes-f19-ja.svgtspan2811" y="10.553733" x="26.328320" sodipodi:role="line"/></text>
- <path id="shapes-f19-ja.svgpath2797" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M62.487,5591.1c-2.584,3.2-19.795-4.8-23.125-2.6-3.211,2.1,1.401,15.8-2.556,16.8-4.103,1-1.338-12.7-5.129-13.9-3.657-1-19.069,8.4-21.492,5.3-2.5119-3.3,10.704-13.8,9.457-17.8-1.203-3.8-19.512-0.1-18.462-3.9,1.0886-4,14.981-5.7,17.32-9.1,2.256-3.2-6.854-14-3.398-16.1,3.584-2,15.403,9.4,19.48,9.5,3.933,0.1,6.508-13.9,9.898-12.1,3.515,1.8-4.156,14.7-1.096,17.2,2.951,2.4,17.494-6.3,19.072-2.7,1.636,3.7-13.965,11.1-14.782,15.1-0.788,3.7,17.305,11.1,14.813,14.3z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5185.555975500001) matrix(0.847225,0.000000,0.000000,0.847225,190.1905,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
- <path id="shapes-f19-ja.svgpath2798" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M60.295,5590.3c-2.167,3.4-14.768-4.9-18.133-2.7-3.245,2.2-0.057,16.9-3.924,17.3-4.01,0.4-5.384-14.6-9.219-15.9-3.699-1.2-13.19,10.5-15.922,7.7-2.833-2.9,8.055-13.3,6.638-17.1-1.367-3.6-16.392-3.8-15.931-7.6,0.4777-4.1,15.429-2,17.496-5.5,1.994-3.3-7.249-15.2-3.942-17.2,3.428-2.2,11.183,10.8,15.179,10.2,3.853-0.5,7.352-15.1,11.014-13.8,3.797,1.4-1.483,15.5,1.432,18.3,2.811,2.7,16.416-3.7,17.677,0,1.307,3.8-13.033,8.5-13.394,12.5-0.347,3.9,13.12,10.5,11.029,13.8z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5185.555975500001) matrix(0.847225,0.000000,0.000000,0.847225,126.4111,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.0000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
- <path id="shapes-f19-ja.svgpath2799" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M64.679,5591.8c-2.999,3.2-24.823-4.6-28.117-2.4-3.177,2.1,2.773,14.7-1.188,16.2-4.107,1.7,2.703-10.7-1.04-11.7-3.611-1-24.996,6.3-27.06,2.8-2.1399-3.6,13.334-14.3,12.275-18.5-1.022-4-22.639,3.6-20.993-0.2,1.7068-3.9,14.536-9.3,17.144-12.6,2.515-3.2-6.4602-13-2.853-15,3.739-2,19.716,8,23.781,8.7,3.921,0.6,5.725-12.7,8.781-10.5,3.169,2.3-6.804,14-3.625,16.3,3.067,2.1,18.584-8.9,20.468-5.5,1.954,3.6-14.914,13.9-16.17,17.6-1.212,3.7,21.489,11.8,18.597,14.8z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5185.555975500001) matrix(0.847225,0.000000,0.000000,0.847225,253.9699,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.20000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
- <path id="shapes-f19-ja.svgpath2800" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M58.104,5589.5c-1.756,3.5-9.742-5-13.142-2.8-3.28,2.2-1.593,17.9-5.293,17.8-3.835-0.2-9.433-16.5-13.307-17.9-3.737-1.3-7.367,12.5-10.354,10.1-3.098-2.5,5.388-12.8,3.82-16.4-1.513-3.4-13.292-7.6-13.4-11.4-0.1119-3.9,15.877,1.7,17.672-1.9,1.732-3.4-7.644-16.3-4.487-18.3,3.273-2.2,7.054,12.2,10.878,11.1,3.687-1.1,8.266-16.3,12.131-15.6,4.007,0.9,1.214,16.3,3.96,19.3,2.648,3,15.348-1,16.282,2.7,0.968,3.9-12.112,5.9-12.005,10,0.103,3.9,8.938,10,7.245,13.3z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5185.555975500001) matrix(0.847225,0.000000,0.000000,0.847225,59.08828,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="-0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
- <path id="shapes-f19-ja.svgpath2801" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M55.912,5588.8c-1.352,3.4-4.714-5.2-8.15-3-3.314,2.2-3.197,18.9-6.661,18.3-3.591-0.6-13.488-18.4-17.397-19.9-3.77-1.5-1.597,14.5-4.785,12.5-3.305-2,2.703-12.3,1.002-15.7-1.641-3.2-10.225-11.5-10.868-15.1-0.6669-3.8,16.323,5.3,17.848,1.7,1.47-3.4-8.041-17.4-5.033-19.5,3.12-2.2,3.01,13.6,6.577,11.9,3.44-1.6,9.257-17.4,13.247-17.2,4.138,0.2,3.937,17,6.489,20.3,2.462,3.2,14.285,1.6,14.887,5.4,0.624,4-11.195,3.4-10.617,7.4,0.558,3.9,4.765,9.5,3.461,12.9z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5185.555975500001) matrix(0.847225,0.000000,0.000000,0.847225,2.395329,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="-0.20000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
- <rect id="d0e702" display="none" height="1000px" width="288" y="5260.4" x="10"/>
+ <text id="shapes-f19-ja.svgtext2848" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5323.262806000003) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="274.15491" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2849" y="-2.4563127" x="274.15491" sodipodi:role="line"/><tspan id="shapes-f19-ja.svgtspan2851"/><tspan id="shapes-f19-ja.svgtspan2853" y="3.9817331" x="274.15491" role="line">+0.2</tspan></text>
+ <text id="shapes-f19-ja.svgtext2841" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5323.262806000003) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="212.89142" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2842" y="-2.4563127" x="212.89142" sodipodi:role="line"/><tspan id="shapes-f19-ja.svgtspan2844"/><tspan id="shapes-f19-ja.svgtspan2846" y="3.9817331" x="212.89142" role="line">+0.1</tspan></text>
+ <text id="shapes-f19-ja.svgtext2833" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5323.262806000003) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="4.1156874" x="151.42322" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2835" y="10.553733" x="151.42322" role="line">0</tspan><tspan id="shapes-f19-ja.svgtspan2837"/><tspan id="shapes-f19-ja.svgtspan2839" y="10.553733" x="151.42322" sodipodi:role="line"/></text>
+ <text id="shapes-f19-ja.svgtext2814" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5323.262806000003) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="4.1156874" x="83.021225" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2821" y="10.553733" x="83.021225" role="line">-0.1</tspan><tspan id="shapes-f19-ja.svgtspan2829"/><tspan id="shapes-f19-ja.svgtspan2831" y="10.553733" x="83.021225" sodipodi:role="line"/></text>
+ <text id="shapes-f19-ja.svgtext2805" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5323.262806000003) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="4.1156874" x="26.32832" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f19-ja.svgtspan2807" y="10.553733" x="26.328320" role="line">-0.2</tspan><tspan id="shapes-f19-ja.svgtspan2809"/><tspan id="shapes-f19-ja.svgtspan2811" y="10.553733" x="26.328320" sodipodi:role="line"/></text>
+ <path id="shapes-f19-ja.svgpath2797" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M62.487,5591.1c-2.584,3.2-19.795-4.8-23.125-2.6-3.211,2.1,1.401,15.8-2.556,16.8-4.103,1-1.338-12.7-5.129-13.9-3.657-1-19.069,8.4-21.492,5.3-2.5119-3.3,10.704-13.8,9.457-17.8-1.203-3.8-19.512-0.1-18.462-3.9,1.0886-4,14.981-5.7,17.32-9.1,2.256-3.2-6.854-14-3.398-16.1,3.584-2,15.403,9.4,19.48,9.5,3.933,0.1,6.508-13.9,9.898-12.1,3.515,1.8-4.156,14.7-1.096,17.2,2.951,2.4,17.494-6.3,19.072-2.7,1.636,3.7-13.965,11.1-14.782,15.1-0.788,3.7,17.305,11.1,14.813,14.3z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5323.262806000003) matrix(0.847225,0.000000,0.000000,0.847225,190.1905,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
+ <path id="shapes-f19-ja.svgpath2798" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M60.295,5590.3c-2.167,3.4-14.768-4.9-18.133-2.7-3.245,2.2-0.057,16.9-3.924,17.3-4.01,0.4-5.384-14.6-9.219-15.9-3.699-1.2-13.19,10.5-15.922,7.7-2.833-2.9,8.055-13.3,6.638-17.1-1.367-3.6-16.392-3.8-15.931-7.6,0.4777-4.1,15.429-2,17.496-5.5,1.994-3.3-7.249-15.2-3.942-17.2,3.428-2.2,11.183,10.8,15.179,10.2,3.853-0.5,7.352-15.1,11.014-13.8,3.797,1.4-1.483,15.5,1.432,18.3,2.811,2.7,16.416-3.7,17.677,0,1.307,3.8-13.033,8.5-13.394,12.5-0.347,3.9,13.12,10.5,11.029,13.8z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5323.262806000003) matrix(0.847225,0.000000,0.000000,0.847225,126.4111,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.0000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
+ <path id="shapes-f19-ja.svgpath2799" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M64.679,5591.8c-2.999,3.2-24.823-4.6-28.117-2.4-3.177,2.1,2.773,14.7-1.188,16.2-4.107,1.7,2.703-10.7-1.04-11.7-3.611-1-24.996,6.3-27.06,2.8-2.1399-3.6,13.334-14.3,12.275-18.5-1.022-4-22.639,3.6-20.993-0.2,1.7068-3.9,14.536-9.3,17.144-12.6,2.515-3.2-6.4602-13-2.853-15,3.739-2,19.716,8,23.781,8.7,3.921,0.6,5.725-12.7,8.781-10.5,3.169,2.3-6.804,14-3.625,16.3,3.067,2.1,18.584-8.9,20.468-5.5,1.954,3.6-14.914,13.9-16.17,17.6-1.212,3.7,21.489,11.8,18.597,14.8z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5323.262806000003) matrix(0.847225,0.000000,0.000000,0.847225,253.9699,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="0.20000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
+ <path id="shapes-f19-ja.svgpath2800" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M58.104,5589.5c-1.756,3.5-9.742-5-13.142-2.8-3.28,2.2-1.593,17.9-5.293,17.8-3.835-0.2-9.433-16.5-13.307-17.9-3.737-1.3-7.367,12.5-10.354,10.1-3.098-2.5,5.388-12.8,3.82-16.4-1.513-3.4-13.292-7.6-13.4-11.4-0.1119-3.9,15.877,1.7,17.672-1.9,1.732-3.4-7.644-16.3-4.487-18.3,3.273-2.2,7.054,12.2,10.878,11.1,3.687-1.1,8.266-16.3,12.131-15.6,4.007,0.9,1.214,16.3,3.96,19.3,2.648,3,15.348-1,16.282,2.7,0.968,3.9-12.112,5.9-12.005,10,0.103,3.9,8.938,10,7.245,13.3z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5323.262806000003) matrix(0.847225,0.000000,0.000000,0.847225,59.08828,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="-0.10000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
+ <path id="shapes-f19-ja.svgpath2801" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:type="star" d="M55.912,5588.8c-1.352,3.4-4.714-5.2-8.15-3-3.314,2.2-3.197,18.9-6.661,18.3-3.591-0.6-13.488-18.4-17.397-19.9-3.77-1.5-1.597,14.5-4.785,12.5-3.305-2,2.703-12.3,1.002-15.7-1.641-3.2-10.225-11.5-10.868-15.1-0.6669-3.8,16.323,5.3,17.848,1.7,1.47-3.4-8.041-17.4-5.033-19.5,3.12-2.2,3.01,13.6,6.577,11.9,3.44-1.6,9.257-17.4,13.247-17.2,4.138,0.2,3.937,17,6.489,20.3,2.462,3.2,14.285,1.6,14.887,5.4,0.624,4-11.195,3.4-10.617,7.4,0.558,3.9,4.765,9.5,3.461,12.9z" fill-rule="evenodd" fill="#ff6c2e" sodipodi:r1="30.461117" inkscape:flatsided="false" transform="translate(10, 5323.262806000003) matrix(0.847225,0.000000,0.000000,0.847225,2.395329,-4686.543)" sodipodi:arg2="1.0163215" sodipodi:arg1="0.53837452" inkscape:randomized="-0.20000000" sodipodi:cy="5574.6763" sodipodi:cx="34.143131" inkscape:rounded="0.22000000" sodipodi:r2="15.230559" sodipodi:sides="7"/>
+ <rect id="d0e702" display="none" height="1000px" width="288" y="5398.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e702"/>
</flowRegion>
<flowDiv xml:space="preserve">真ん中の星形のハンドルを <flowSpan font-weight="bold">Alt+ドラッグ</flowSpan> して、左右の、そしてさらにその隣の星形に変形していくところを観察してください。</flowDiv>
</flowRoot>
- <rect id="d0e708" display="none" height="1000px" width="288" y="5289.2" x="10"/>
+ <rect id="d0e708" display="none" height="1000px" width="288" y="5428.1" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e708"/>
</flowRegion>
<flowDiv xml:space="preserve">そのうち、自分なりのランダムな星形の使い道が見つかるでしょう。しかし私は特に丸めたアメーバ状のしみと大きく荒れた幻想的な稜線をもつ惑星の形が気に入っています:</flowDiv>
</flowRoot>
- <path id="shapes-f20-ja.svgpath1599" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:none;marker-mid:none;" d="M-37.728,155.36c4.227,5.72,9.747,7.87,17.311,4.35,40.796-18.97-86.673-90.888-45.309-108.75,41.367-17.867,38.426,133.61,79.447,115.95,41.021-17.65-85.882-102.37-43.768-118.02,42.114-15.657,10.671,111.76,52.829,96.853,42.157-14.9-66.905-108.38-24.487-123.77,42.418-15.392,6.3067,143.19,49.273,130.56,42.966-12.64-78.565-123.49-35.751-136.42,42.814-12.924,15.198,146.6,58.146,134.79,42.947-11.81-78.229-132.05-34.315-142.3,43.914-10.254-9.116,133.12,34.2,123.57,43.312-9.55-55.846-112.53-11.336-119.51,44.508-6.9782-13.312,122.66,31.18,117.54,44.488-5.12-45.236-120.29-0.842-125.27,44.39-4.9762-14.104,134.72,30.31,130.13,44.42-4.59-38.921-132.64,6.05-134.45,44.96-1.8022-41.683,133.51,3.31,131.19,44.99-2.32-24.87-122.59,19.84-122.69,44.7-0.0957-25.39,112.8,18.95,113.58,44.35,0.77-45.2-127.22-0.28-125.5,44.92,1.7216-33.15,131.8,11.65,134.88,44.8,3.09-19.34-129.92,25.3-126.81,44.63,3.1096-49.14,114.08-4.38,118.97,44.75,4.89-14.85-128.64,29.28-121.21,44.12,7.4301-61.17,122.66-17.13,131.19,44.04,8.54-13.12-140.8,30.73-132.29,43.84,8.5157-40.4,123.15,2.99,134,43.4,10.85-5.71-129.78,37.05-118.25,42.76,11.528-72.52,105.89-29.78,118.07,42.73,12.18-0.72-125.38,41.83-112.09,42.55,13.287-66.61,102.32-24.04,116.43,42.56,14.12,13.33-115.43,55.14-99.753,41.81,15.673-83.28,110.41-41.37,125.72s23.59-141.93,64.91-125.23c41.32,16.702-75.91,110.59-35.42,128.69,40.48,18.09,19.6-145.73,59.91-126.04,39.69,19.385-87.02,109.18-53.1,131.99" stroke-dashoffset="0.0000000" transform="translate(10, 5336.497341500001) " stroke="#d9d9d9" stroke-linecap="butt" stroke-miterlimit="4.0000000" stroke-width="0.69434953" fill="none"/>
- <path id="shapes-f20-ja.svgrect1295" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:none;marker-mid:none;" d="M328.54,123.82c-2.04,2.51-3.88,4.35-4.99,3.66-3.33-2.05,0.34-25.26-3.01-27.22-3.69-2.163-6.36,12.8-10.07,10.7-3.37-1.91,9.25-8.58,5.79-10.35-3.83-1.946-14.7,5.13-18.57,3.32-3.5-1.64-2.36-13.322-5.88-14.985-3.87-1.837-3.35,14.265-7.33,12.595-3.61-1.51,6.69-16.724,3.09-18.164-3.97-1.59-20.54,13.704-24.53,12.199-3.61-1.364,10.79-12.038,7.12-13.304-4.05-1.397-14.43,13.878-18.52,12.552-3.7-1.201,7.5-21.868,3.8-22.982-4.09-1.23-10.7,11.069-14.85,9.988-3.76-0.978,4.93-10.615,1.15-11.491-4.18-0.967-10,14.484-14.14,13.436-3.76-0.949-6.84-13.073-10.66-13.745-4.21-0.743-3.03,11.415-7.24,10.563-3.82-0.772,2.79-21.082-1.06-21.657-4.26-0.635-6.91,16.709-11.14,16.088-3.83-0.562-1.2-11.067-5.08-11.535-4.29-0.518-14.76,11.12-19.01,10.695-3.85-0.385,8.19-11.526,4.29-11.756-4.32-0.254-15.9,14.753-20.2,14.496-3.89-0.232,2.93-17.09-0.97-17.148-4.31-0.064-8.5,14.957-12.78,14.983-3.87,0.023-4.31-20.487-8.17-20.331-4.27,0.173,1.13,16.525-3.18,16.839-3.91,0.285-4.59-7.679-8.45-7.381-4.25,0.329-0.49,7.461-4.73,7.956-3.83,0.448-11.19-13.514-15.02-12.994-4.235,0.574-2.67,21.621-6.941,22.275-3.87,0.592,0.631-18.393-3.182-17.634-4.211,0.837-2.413,14.4-6.586,15.292-3.778,0.807-6.453-18.313-10.209-17.37-4.148,1.042,3.682,20.97-0.442,22.055-3.734,0.982-11.935-16.567-15.646-15.469-4.098,1.212,2.892,16.488-1.237,17.634-3.74,1.038-13.97-8.376-17.635-7.116-4.047,1.393,6.564,16.692,2.519,18.165-3.662,1.334-9.859-20.465-13.48-19.093-3.998,1.516,0.721,24.664-3.27,26.294-3.615,1.48-12.287-23.561-15.823-21.962-3.9044,1.765,10.94,19.832,7.027,21.652-3.543,1.66-19.163-10.446-22.629-8.658-3.8271,1.973,12.636,13.638,8.7952,15.558-3.4775,1.74-13.58-17.343-16.928-15.426-3.696,2.118,1.6126,18.456-2.121,20.506-3.381,1.86-7.656-7.7-11.005-5.74-3.699,2.16,5.923,11.37,2.254,13.65-2.198,1.37-7.606-4.02-12.022-7.33" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccc" transform="translate(10, 5336.497341500001) " stroke-dashoffset="0.0000000" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4.0000000" stroke-width="1.0607138" fill="none"/>
- <path id="shapes-f20-ja.svgpath2853" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="10" fill-rule="evenodd" fill="#000" sodipodi:r1="1251.4492" sodipodi:r2="717.90320" transform="translate(10, 5336.497341500001) matrix(1.441040e-2,1.441040e-2,-1.441040e-2,1.441040e-2,203.3568,30.94721)" sodipodi:arg2="0.67945593" sodipodi:arg1="0.32910642" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.35000000" inkscape:flatsided="false" d="M586.43,1426.2c-43.66,223.1-607.31-342.5-726.13-152.6-112.6,180,553.03,440.4,382.12,578.7-180.35,145.8-273.95-407.7-456.44-305.9-172.93,96.6-11.44,801.3-215.6,792.8-215.44-8.9-83.98-767-303.43-842.7-207.96-71.8-426.05,622.4-600.85,515.3-184.3-113,354.64-587.5,223.6-773.3-124.2-176-522.9,318.6-603.8,115.2-85.4-214.7,303.1-189.8,324.7-409.71,20.5-208.42-506.8-141.74-455.7-344.73,54-214.2,691.1,193.6,847.25,59.03,147.96-127.53-367.85-470.09-183.95-586,193.95-122.32,341.55,357.44,556.76,280.71,203.92-72.7-292.41-729.01-70.13-723.96,234.58,5.33,103.62,441.76,304.16,552.87,190.04,105.3,296.29-451.98,460.08-332.45,172.84,126.14-122.18,713.87,42.571,871.44,156.12,149.32,631.61-214.95,669.22-24.66,39.69,200.81-672.27,93.03-650.52,316.16,20.61,211.5,497.47,202.4,456.09,413.8z"/>
- <path id="shapes-f20-ja.svgpath1638" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="10" fill-rule="evenodd" fill="#000" sodipodi:r1="288.60358" sodipodi:r2="523.09772" transform="translate(10, 5336.497341500001) matrix(-3.240508e-2,0.000000,0.000000,-3.653582e-2,215.3936,64.44452)" sodipodi:arg2="1.3344848" sodipodi:arg1="1.0714496" inkscape:randomized="0.20000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.41000000" inkscape:flatsided="false" d="M-461.01,1115.3c-89.54,41.8,75.07,313.5-17,344.7-98.55,33.3-21.14-293.8-140.04-305.5-111.07-10.9-111.45,326.3-202.38,280-97.33-49.6,83.59-124.6-8.13-203.1-85.68-73.3-217.34,121-280.94,31.1-67.9-96.3,330.7-149.6,269.99-250-56.72-93.86-231.19,102.2-214.29-10.5,18.2-120.56,209.37-120.36,257.39-210.46,44.86-84.18-352.89-87.96-262.89-151.1,96.34-67.59,261.53,92.71,343.86,25.88,76.92-62.43-65.72-224.3,28.27-248.04,100.62-25.42-3.67,213.88,114.04,241.54,109.97,25.83,122.89-255.01,205.82-200,88.79,58.89-72.68,131.54,16.18,214.57,83.02,77.57,253.34-68.35,311.9,11.53,62.687,85.5-314.7,4.05-297.71,106.42,15.88,95.63,215.94,192.38,225.53,293.06,10.26,107.9-238.61-200.78-268.64-95.28-28.04,98.58,356.82,219.98,305.42,308.28-55.021,94.6-290.54-227.7-386.38-183.1z"/>
- <path id="shapes-f20-ja.svgpath2855" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="10" fill-rule="evenodd" fill="#000" sodipodi:r1="2299.5850" sodipodi:r2="4673.7515" transform="translate(10, 5336.497341500001) matrix(5.131326e-3,8.887717e-3,-8.887717e-3,5.131326e-3,121.9634,127.9393)" sodipodi:arg2="-0.12863391" sodipodi:arg1="-0.33254745" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.35000000" inkscape:flatsided="false" d="M1192.9-27.844c482.9,745.56,2477.9-79.186,2577.4,724.7,110.8,895.34-2260.4,135.2-2413.8,1083.5-137.7,851.6,2372.7,1191.9,1776.1,1742.2-664.3,612.9-1875.5-2082.8-2485.3-1340.6-547.54,666.4,1284.1,2154,488.72,2366.5-885.8,236.7-327.08-871.4-1212.1-704.9-794.67,149.6-1006,2531.5-1792.1,2199.1-875.5-370.3,215.8-2086.9-630.4-2610.8-759.8-470.4-646.4,1051.7-1051.3,224.5-451-921.3,1293.2-948.2,719.9-1705.5-514.9-680-2808.4,351.2-2892.3-503.1-93.6-951.53,2411.1,176.5,2464.1-721.78,47.6-806.61-2506.4-1245.3-1870.9-1908.7,707.7-738.9,1743.6,498.15,2577.5-27.6,748.7-472-1190-1457.1-315.1-1613.5,974.4-174.2,1798.9,855,2800.8,879.2,899.56,21.7-605.38-1743.7,274.02-1624.5,979.41,132.8-545.19,2655.8,315.59,2977.2,772.92,288.59,1449.9-1912.2,1911.9-1176.6,514.6,819.05-1780.6,910.33-1242.7,1740.7z"/>
- <path id="shapes-f20-ja.svgpath2856" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="7" fill-rule="evenodd" fill="#000" sodipodi:r1="1962.3131" sodipodi:r2="987.28790" transform="translate(10, 5336.497341500001) matrix(-1.219143e-2,-8.074166e-9,-1.133882e-9,-9.208558e-3,34.48550,55.79367)" sodipodi:arg2="-1.0812633" sodipodi:arg1="-1.6417338" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" inkscape:flatsided="false" d="M-588.58-1237.5c467.43-23.4-60.18,1037,375.08,1257.3,378.77,191.71,563.66-436.8,875.13-141.04,357.97,339.87-464.71,212.17-396.03,674.57,59.77,402.38,1333,182.42,1226.9,572.11-122,447.9-1057.6,283-1244.2,717.5-162.35,378.1,678.16,506.9,313.49,713.6-419.07,237.6-421.33-855-908.3-886.5-423.76-27.5-847.12,1206.8-1171.1,947.7-372.4-297.8,553.08-987,143.9-1326.3-356-295.38-1063.4,758.9-1074.6,341.3-12.8-479.8,1041.5-607.5,1031.9-1137.5-8.4-461.25-1145.3-356.26-833.1-656.03,358.8-344.49,684.6,339.49,1117.8,40.25,376.93-260.39,136.36-1096.5,543.12-1116.9z"/>
- <path id="shapes-f20-ja.svgpath2857" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="7" fill-rule="evenodd" fill="#000" sodipodi:r1="1395.4882" sodipodi:r2="866.36334" transform="translate(10, 5336.497341500001) matrix(-8.987418e-3,-5.952208e-9,-8.358880e-10,-6.788472e-3,23.87873,128.7202)" sodipodi:arg2="-1.0962105" sodipodi:arg1="-1.6706296" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" inkscape:flatsided="false" d="M-624.47-581.43c325.22,56.06,9.04,753.22,309.98,918.23,234.37,128.49,581.31-539.04,760.22-379.94,229.74,204.3-465.84,517.23-317.07,802.08,115.86,221.83,895.34-44.69,853.46,194.02-53.76,306.54-699.31,70.34-850.97,383.64-118.1,244.1,261.11,693.7,5.94,752.3-327.68,75.2-268.14-428.6-571.08-381.9-235.91,36.3-425.65,907.6-636.91,739-271.2-216.4,198.9-667.1-80.9-853.5-217.9-145.2-642.1-86.7-720.7-317.8-100.9-296.85,545-125.9,617-441.67,56.1-245.91-582.1-516.88-375.5-681.65,265.4-211.58,294.8,291.45,603.6,157.1,240.48-104.61,149.66-933.56,402.93-889.91z"/>
- <path id="shapes-f20-ja.svgpath2854" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="7" fill-rule="evenodd" fill="#000" sodipodi:r1="1251.4492" sodipodi:r2="717.90320" transform="translate(10, 5336.497341500001) matrix(1.575340e-2,0.000000,0.000000,1.575340e-2,262.2065,110.7547)" sodipodi:arg2="0.77790537" sodipodi:arg1="0.32910642" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" inkscape:flatsided="false" d="M586.43,1426.2c-43.92,278.2-473.02-298.8-642.88-85.9s30.811,778.3-228.28,900.4c-259.08,122.1-113.21-638-388.63-674-275.42-35.9-331.64,698.6-527.44,521s331.95-497.4,148.8-716.3c-183.2-218.9-587.8,149-658.5-126.8-70.6-275.77,281.5-364.74,412.3-596.47,130.9-231.72-276.9-479-71.1-630.45s366.1,220.76,643.81,138.72c277.68-82.038,182.27-375.84,449.97-389.69,267.7-13.84-241.94,460.31,23.78,552.89,265.71,92.58,626.34-408.15,720.34-156.88,94,251.28-346.05,473.06-354.59,754.57s516.35,230.81,472.42,508.91z"/>
- <path id="shapes-f20-ja.svgpath1295" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" d="M-243.69,1096.3c-31.67,187.7,292.04,205.5,168.19,354.5-123.84,149-286.2-273-452.9-185-166.7,88.1,66.85,485.7-113.85,439.6-180.69-46.1,150.24-338.8-32.76-413.9-182.99-75-457.29,259.8-578.79,103.8-121.4-155.9,444.91-179.2,432.09-357.1-12.83-177.95-402.59-55.07-345.89-244.36,56.7-189.28,305.03-15.84,451.14-142.56,146.1-126.73-325.34-272.92-157.71-375.45,167.66-102.53,216.43,413.99,406.72,457.3s142.12-528.03,290.44-397.43c148.31,130.6-148.45,281.4-72.6,448.02s316.86-148.25,361.58,32.57-323.99,92.41-355.66,280.01z" fill-rule="evenodd" fill="#000" sodipodi:r1="292.23001" inkscape:flatsided="false" transform="translate(10, 5336.497341500001) matrix(1.575340e-2,0.000000,0.000000,1.575340e-2,170.8244,135.1697)" sodipodi:arg2="0.77809157" sodipodi:arg1="0.32929262" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" sodipodi:r2="717.90320" sodipodi:sides="7"/>
- <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="5540.284431500001" x="10" font-family="Sans" font-style="normal" fill="#000000">
- <tspan y="5540.284431500001" x="10">螺旋</tspan>
+ <path id="shapes-f20-ja.svgpath1599" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:none;marker-mid:none;" d="M-37.728,155.36c4.227,5.72,9.747,7.87,17.311,4.35,40.796-18.97-86.673-90.888-45.309-108.75,41.367-17.867,38.426,133.61,79.447,115.95,41.021-17.65-85.882-102.37-43.768-118.02,42.114-15.657,10.671,111.76,52.829,96.853,42.157-14.9-66.905-108.38-24.487-123.77,42.418-15.392,6.3067,143.19,49.273,130.56,42.966-12.64-78.565-123.49-35.751-136.42,42.814-12.924,15.198,146.6,58.146,134.79,42.947-11.81-78.229-132.05-34.315-142.3,43.914-10.254-9.116,133.12,34.2,123.57,43.312-9.55-55.846-112.53-11.336-119.51,44.508-6.9782-13.312,122.66,31.18,117.54,44.488-5.12-45.236-120.29-0.842-125.27,44.39-4.9762-14.104,134.72,30.31,130.13,44.42-4.59-38.921-132.64,6.05-134.45,44.96-1.8022-41.683,133.51,3.31,131.19,44.99-2.32-24.87-122.59,19.84-122.69,44.7-0.0957-25.39,112.8,18.95,113.58,44.35,0.77-45.2-127.22-0.28-125.5,44.92,1.7216-33.15,131.8,11.65,134.88,44.8,3.09-19.34-129.92,25.3-126.81,44.63,3.1096-49.14,114.08-4.38,118.97,44.75,4.89-14.85-128.64,29.28-121.21,44.12,7.4301-61.17,122.66-17.13,131.19,44.04,8.54-13.12-140.8,30.73-132.29,43.84,8.5157-40.4,123.15,2.99,134,43.4,10.85-5.71-129.78,37.05-118.25,42.76,11.528-72.52,105.89-29.78,118.07,42.73,12.18-0.72-125.38,41.83-112.09,42.55,13.287-66.61,102.32-24.04,116.43,42.56,14.12,13.33-115.43,55.14-99.753,41.81,15.673-83.28,110.41-41.37,125.72s23.59-141.93,64.91-125.23c41.32,16.702-75.91,110.59-35.42,128.69,40.48,18.09,19.6-145.73,59.91-126.04,39.69,19.385-87.02,109.18-53.1,131.99" stroke-dashoffset="0.0000000" transform="translate(10, 5478.404794000003) " stroke="#d9d9d9" stroke-linecap="butt" stroke-miterlimit="4.0000000" stroke-width="0.69434953" fill="none"/>
+ <path id="shapes-f20-ja.svgrect1295" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:none;marker-mid:none;" d="M328.54,123.82c-2.04,2.51-3.88,4.35-4.99,3.66-3.33-2.05,0.34-25.26-3.01-27.22-3.69-2.163-6.36,12.8-10.07,10.7-3.37-1.91,9.25-8.58,5.79-10.35-3.83-1.946-14.7,5.13-18.57,3.32-3.5-1.64-2.36-13.322-5.88-14.985-3.87-1.837-3.35,14.265-7.33,12.595-3.61-1.51,6.69-16.724,3.09-18.164-3.97-1.59-20.54,13.704-24.53,12.199-3.61-1.364,10.79-12.038,7.12-13.304-4.05-1.397-14.43,13.878-18.52,12.552-3.7-1.201,7.5-21.868,3.8-22.982-4.09-1.23-10.7,11.069-14.85,9.988-3.76-0.978,4.93-10.615,1.15-11.491-4.18-0.967-10,14.484-14.14,13.436-3.76-0.949-6.84-13.073-10.66-13.745-4.21-0.743-3.03,11.415-7.24,10.563-3.82-0.772,2.79-21.082-1.06-21.657-4.26-0.635-6.91,16.709-11.14,16.088-3.83-0.562-1.2-11.067-5.08-11.535-4.29-0.518-14.76,11.12-19.01,10.695-3.85-0.385,8.19-11.526,4.29-11.756-4.32-0.254-15.9,14.753-20.2,14.496-3.89-0.232,2.93-17.09-0.97-17.148-4.31-0.064-8.5,14.957-12.78,14.983-3.87,0.023-4.31-20.487-8.17-20.331-4.27,0.173,1.13,16.525-3.18,16.839-3.91,0.285-4.59-7.679-8.45-7.381-4.25,0.329-0.49,7.461-4.73,7.956-3.83,0.448-11.19-13.514-15.02-12.994-4.235,0.574-2.67,21.621-6.941,22.275-3.87,0.592,0.631-18.393-3.182-17.634-4.211,0.837-2.413,14.4-6.586,15.292-3.778,0.807-6.453-18.313-10.209-17.37-4.148,1.042,3.682,20.97-0.442,22.055-3.734,0.982-11.935-16.567-15.646-15.469-4.098,1.212,2.892,16.488-1.237,17.634-3.74,1.038-13.97-8.376-17.635-7.116-4.047,1.393,6.564,16.692,2.519,18.165-3.662,1.334-9.859-20.465-13.48-19.093-3.998,1.516,0.721,24.664-3.27,26.294-3.615,1.48-12.287-23.561-15.823-21.962-3.9044,1.765,10.94,19.832,7.027,21.652-3.543,1.66-19.163-10.446-22.629-8.658-3.8271,1.973,12.636,13.638,8.7952,15.558-3.4775,1.74-13.58-17.343-16.928-15.426-3.696,2.118,1.6126,18.456-2.121,20.506-3.381,1.86-7.656-7.7-11.005-5.74-3.699,2.16,5.923,11.37,2.254,13.65-2.198,1.37-7.606-4.02-12.022-7.33" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccc" transform="translate(10, 5478.404794000003) " stroke-dashoffset="0.0000000" stroke="#000" stroke-linecap="butt" stroke-miterlimit="4.0000000" stroke-width="1.0607138" fill="none"/>
+ <path id="shapes-f20-ja.svgpath2853" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="10" fill-rule="evenodd" fill="#000" sodipodi:r1="1251.4492" sodipodi:r2="717.90320" transform="translate(10, 5478.404794000003) matrix(1.441040e-2,1.441040e-2,-1.441040e-2,1.441040e-2,203.3568,30.94721)" sodipodi:arg2="0.67945593" sodipodi:arg1="0.32910642" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.35000000" inkscape:flatsided="false" d="M586.43,1426.2c-43.66,223.1-607.31-342.5-726.13-152.6-112.6,180,553.03,440.4,382.12,578.7-180.35,145.8-273.95-407.7-456.44-305.9-172.93,96.6-11.44,801.3-215.6,792.8-215.44-8.9-83.98-767-303.43-842.7-207.96-71.8-426.05,622.4-600.85,515.3-184.3-113,354.64-587.5,223.6-773.3-124.2-176-522.9,318.6-603.8,115.2-85.4-214.7,303.1-189.8,324.7-409.71,20.5-208.42-506.8-141.74-455.7-344.73,54-214.2,691.1,193.6,847.25,59.03,147.96-127.53-367.85-470.09-183.95-586,193.95-122.32,341.55,357.44,556.76,280.71,203.92-72.7-292.41-729.01-70.13-723.96,234.58,5.33,103.62,441.76,304.16,552.87,190.04,105.3,296.29-451.98,460.08-332.45,172.84,126.14-122.18,713.87,42.571,871.44,156.12,149.32,631.61-214.95,669.22-24.66,39.69,200.81-672.27,93.03-650.52,316.16,20.61,211.5,497.47,202.4,456.09,413.8z"/>
+ <path id="shapes-f20-ja.svgpath1638" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="10" fill-rule="evenodd" fill="#000" sodipodi:r1="288.60358" sodipodi:r2="523.09772" transform="translate(10, 5478.404794000003) matrix(-3.240508e-2,0.000000,0.000000,-3.653582e-2,215.3936,64.44452)" sodipodi:arg2="1.3344848" sodipodi:arg1="1.0714496" inkscape:randomized="0.20000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.41000000" inkscape:flatsided="false" d="M-461.01,1115.3c-89.54,41.8,75.07,313.5-17,344.7-98.55,33.3-21.14-293.8-140.04-305.5-111.07-10.9-111.45,326.3-202.38,280-97.33-49.6,83.59-124.6-8.13-203.1-85.68-73.3-217.34,121-280.94,31.1-67.9-96.3,330.7-149.6,269.99-250-56.72-93.86-231.19,102.2-214.29-10.5,18.2-120.56,209.37-120.36,257.39-210.46,44.86-84.18-352.89-87.96-262.89-151.1,96.34-67.59,261.53,92.71,343.86,25.88,76.92-62.43-65.72-224.3,28.27-248.04,100.62-25.42-3.67,213.88,114.04,241.54,109.97,25.83,122.89-255.01,205.82-200,88.79,58.89-72.68,131.54,16.18,214.57,83.02,77.57,253.34-68.35,311.9,11.53,62.687,85.5-314.7,4.05-297.71,106.42,15.88,95.63,215.94,192.38,225.53,293.06,10.26,107.9-238.61-200.78-268.64-95.28-28.04,98.58,356.82,219.98,305.42,308.28-55.021,94.6-290.54-227.7-386.38-183.1z"/>
+ <path id="shapes-f20-ja.svgpath2855" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="10" fill-rule="evenodd" fill="#000" sodipodi:r1="2299.5850" sodipodi:r2="4673.7515" transform="translate(10, 5478.404794000003) matrix(5.131326e-3,8.887717e-3,-8.887717e-3,5.131326e-3,121.9634,127.9393)" sodipodi:arg2="-0.12863391" sodipodi:arg1="-0.33254745" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.35000000" inkscape:flatsided="false" d="M1192.9-27.844c482.9,745.56,2477.9-79.186,2577.4,724.7,110.8,895.34-2260.4,135.2-2413.8,1083.5-137.7,851.6,2372.7,1191.9,1776.1,1742.2-664.3,612.9-1875.5-2082.8-2485.3-1340.6-547.54,666.4,1284.1,2154,488.72,2366.5-885.8,236.7-327.08-871.4-1212.1-704.9-794.67,149.6-1006,2531.5-1792.1,2199.1-875.5-370.3,215.8-2086.9-630.4-2610.8-759.8-470.4-646.4,1051.7-1051.3,224.5-451-921.3,1293.2-948.2,719.9-1705.5-514.9-680-2808.4,351.2-2892.3-503.1-93.6-951.53,2411.1,176.5,2464.1-721.78,47.6-806.61-2506.4-1245.3-1870.9-1908.7,707.7-738.9,1743.6,498.15,2577.5-27.6,748.7-472-1190-1457.1-315.1-1613.5,974.4-174.2,1798.9,855,2800.8,879.2,899.56,21.7-605.38-1743.7,274.02-1624.5,979.41,132.8-545.19,2655.8,315.59,2977.2,772.92,288.59,1449.9-1912.2,1911.9-1176.6,514.6,819.05-1780.6,910.33-1242.7,1740.7z"/>
+ <path id="shapes-f20-ja.svgpath2856" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="7" fill-rule="evenodd" fill="#000" sodipodi:r1="1962.3131" sodipodi:r2="987.28790" transform="translate(10, 5478.404794000003) matrix(-1.219143e-2,-8.074166e-9,-1.133882e-9,-9.208558e-3,34.48550,55.79367)" sodipodi:arg2="-1.0812633" sodipodi:arg1="-1.6417338" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" inkscape:flatsided="false" d="M-588.58-1237.5c467.43-23.4-60.18,1037,375.08,1257.3,378.77,191.71,563.66-436.8,875.13-141.04,357.97,339.87-464.71,212.17-396.03,674.57,59.77,402.38,1333,182.42,1226.9,572.11-122,447.9-1057.6,283-1244.2,717.5-162.35,378.1,678.16,506.9,313.49,713.6-419.07,237.6-421.33-855-908.3-886.5-423.76-27.5-847.12,1206.8-1171.1,947.7-372.4-297.8,553.08-987,143.9-1326.3-356-295.38-1063.4,758.9-1074.6,341.3-12.8-479.8,1041.5-607.5,1031.9-1137.5-8.4-461.25-1145.3-356.26-833.1-656.03,358.8-344.49,684.6,339.49,1117.8,40.25,376.93-260.39,136.36-1096.5,543.12-1116.9z"/>
+ <path id="shapes-f20-ja.svgpath2857" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="7" fill-rule="evenodd" fill="#000" sodipodi:r1="1395.4882" sodipodi:r2="866.36334" transform="translate(10, 5478.404794000003) matrix(-8.987418e-3,-5.952208e-9,-8.358880e-10,-6.788472e-3,23.87873,128.7202)" sodipodi:arg2="-1.0962105" sodipodi:arg1="-1.6706296" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" inkscape:flatsided="false" d="M-624.47-581.43c325.22,56.06,9.04,753.22,309.98,918.23,234.37,128.49,581.31-539.04,760.22-379.94,229.74,204.3-465.84,517.23-317.07,802.08,115.86,221.83,895.34-44.69,853.46,194.02-53.76,306.54-699.31,70.34-850.97,383.64-118.1,244.1,261.11,693.7,5.94,752.3-327.68,75.2-268.14-428.6-571.08-381.9-235.91,36.3-425.65,907.6-636.91,739-271.2-216.4,198.9-667.1-80.9-853.5-217.9-145.2-642.1-86.7-720.7-317.8-100.9-296.85,545-125.9,617-441.67,56.1-245.91-582.1-516.88-375.5-681.65,265.4-211.58,294.8,291.45,603.6,157.1,240.48-104.61,149.66-933.56,402.93-889.91z"/>
+ <path id="shapes-f20-ja.svgpath2854" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" sodipodi:sides="7" fill-rule="evenodd" fill="#000" sodipodi:r1="1251.4492" sodipodi:r2="717.90320" transform="translate(10, 5478.404794000003) matrix(1.575340e-2,0.000000,0.000000,1.575340e-2,262.2065,110.7547)" sodipodi:arg2="0.77790537" sodipodi:arg1="0.32910642" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" inkscape:flatsided="false" d="M586.43,1426.2c-43.92,278.2-473.02-298.8-642.88-85.9s30.811,778.3-228.28,900.4c-259.08,122.1-113.21-638-388.63-674-275.42-35.9-331.64,698.6-527.44,521s331.95-497.4,148.8-716.3c-183.2-218.9-587.8,149-658.5-126.8-70.6-275.77,281.5-364.74,412.3-596.47,130.9-231.72-276.9-479-71.1-630.45s366.1,220.76,643.81,138.72c277.68-82.038,182.27-375.84,449.97-389.69,267.7-13.84-241.94,460.31,23.78,552.89,265.71,92.58,626.34-408.15,720.34-156.88,94,251.28-346.05,473.06-354.59,754.57s516.35,230.81,472.42,508.91z"/>
+ <path id="shapes-f20-ja.svgpath1295" style="color:#000000;marker-start:none;marker-mid:none;marker-end:none;" sodipodi:type="star" d="M-243.69,1096.3c-31.67,187.7,292.04,205.5,168.19,354.5-123.84,149-286.2-273-452.9-185-166.7,88.1,66.85,485.7-113.85,439.6-180.69-46.1,150.24-338.8-32.76-413.9-182.99-75-457.29,259.8-578.79,103.8-121.4-155.9,444.91-179.2,432.09-357.1-12.83-177.95-402.59-55.07-345.89-244.36,56.7-189.28,305.03-15.84,451.14-142.56,146.1-126.73-325.34-272.92-157.71-375.45,167.66-102.53,216.43,413.99,406.72,457.3s142.12-528.03,290.44-397.43c148.31,130.6-148.45,281.4-72.6,448.02s316.86-148.25,361.58,32.57-323.99,92.41-355.66,280.01z" fill-rule="evenodd" fill="#000" sodipodi:r1="292.23001" inkscape:flatsided="false" transform="translate(10, 5478.404794000003) matrix(1.575340e-2,0.000000,0.000000,1.575340e-2,170.8244,135.1697)" sodipodi:arg2="0.77809157" sodipodi:arg1="0.32929262" inkscape:randomized="0.14000000" sodipodi:cy="945.83423" sodipodi:cx="-564.31024" inkscape:rounded="0.40000000" sodipodi:r2="717.90320" sodipodi:sides="7"/>
+ <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="5682.191884000003" x="10" font-family="Sans" font-style="normal" fill="#000000">
+ <tspan y="5682.191884000003" x="10">螺旋</tspan>
</text>
- <rect id="d0e727" display="none" height="1000px" width="288" y="5545.5" x="10"/>
+ <rect id="d0e727" display="none" height="1000px" width="288" y="5687.4" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e727"/>
</flowRegion>
<flowDiv xml:space="preserve">Inkscape の螺旋は多機能なシェイプです。そして星形ほど夢中になれませんが、ときにとても有用です。螺旋は星形のように中心から描画されます。これは描画中も編集中と同様です。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 5591.089181500001)"/>
- <rect id="d0e733" display="none" height="1000px" width="258" y="5585.1" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5735.561075000002)"/>
+ <rect id="d0e733" display="none" height="1000px" width="258" y="5729.6" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e733"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Ctrl+ドラッグ</flowSpan> で角度の増分を 15 度にスナップする。</flowDiv>
</flowRoot>
- <rect id="d0e739" display="none" height="1000px" width="288" y="5603.3" x="10"/>
+ <rect id="d0e739" display="none" height="1000px" width="288" y="5747.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e739"/>
</flowRegion>
<flowDiv xml:space="preserve">描画されると、螺旋は内側と外側の端点に 2 つのハンドルをもちます。どちらのハンドルも螺旋を巻いたり、解いたりします (つまり、&quot;続けて&quot; 巻き数を変えます)。その他のショートカットは以下のとおりです:</flowDiv>
</flowRoot>
- <rect id="d0e742" display="none" height="1000px" width="288" y="5642.8" x="10"/>
+ <rect id="d0e742" display="none" height="1000px" width="288" y="5789.6" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e742"/>
</flowRegion>
<flowDiv xml:space="preserve">外側のハンドル:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 5666.533245000001)"/>
- <rect id="d0e748" display="none" height="1000px" width="258" y="5660.5" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5813.1990165000025)"/>
+ <rect id="d0e748" display="none" height="1000px" width="258" y="5807.2" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e748"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Shift+ドラッグ</flowSpan> で螺旋の中心からの拡大縮小/回転 (巻き/解きはしない)。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 5695.864069000001)"/>
- <rect id="d0e754" display="none" height="1000px" width="258" y="5689.9" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5843.443768500002)"/>
+ <rect id="d0e754" display="none" height="1000px" width="258" y="5837.4" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e754"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Alt+ドラッグ</flowSpan> で巻き/解きの間隔、半径を固定する。</flowDiv>
</flowRoot>
- <rect id="d0e760" display="none" height="1000px" width="288" y="5708" x="10"/>
+ <rect id="d0e760" display="none" height="1000px" width="288" y="5855.3" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e760"/>
</flowRegion>
<flowDiv xml:space="preserve">内側のハンドル:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 5731.957819000001)"/>
- <rect id="d0e766" display="none" height="1000px" width="258" y="5726" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5879.076581000002)"/>
+ <rect id="d0e766" display="none" height="1000px" width="258" y="5873.1" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e766"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Alt+ドラッグ</flowSpan> 垂直に動かすと収束/発散する。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 5750.207819000001)"/>
- <rect id="d0e772" display="none" height="1000px" width="258" y="5744.2" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5896.873456000002)"/>
+ <rect id="d0e772" display="none" height="1000px" width="258" y="5890.9" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e772"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Alt+クリック</flowSpan> で収束/発散を取り消す。</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 5768.317194000001)"/>
- <rect id="d0e778" display="none" height="1000px" width="258" y="5762.3" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 5914.584393500002)"/>
+ <rect id="d0e778" display="none" height="1000px" width="258" y="5908.6" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e778"/>
</flowRegion>
<flowDiv xml:space="preserve"><flowSpan font-weight="bold">Shift+クリック</flowSpan> で内側のハンドルを中心に移動する。</flowDiv>
</flowRoot>
- <rect id="d0e784" display="none" height="1000px" width="288" y="5780.5" x="10"/>
+ <rect id="d0e784" display="none" height="1000px" width="288" y="5926.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e784"/>
</flowRegion>
<flowDiv xml:space="preserve">螺旋の <flowSpan font-style="italic">発散度</flowSpan> は巻きの非線形度の尺度です。発散度が 1 なら、螺旋は均一になります。これが 1 より小さければ (<flowSpan font-weight="bold">Alt+上へドラッグ</flowSpan>)、外周で密度が高くなり、 1 より大きければ (<flowSpan font-weight="bold">Alt+下へドラッグ</flowSpan>)、中心に向かって密度が高くなります:</flowDiv>
</flowRoot>
- <text id="shapes-f21-ja.svgtext2996" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5840.201405500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="45.595207" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2985" y="-2.4563127" x="45.595207" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2987"/><tspan id="shapes-f21-ja.svgtspan2989" y="3.9817331" x="45.595207" role="line">0.2</tspan></text>
- <text id="shapes-f21-ja.svgtext3053" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5840.201405500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="105.28775" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2978" y="-2.4563127" x="105.28775" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2980"/><tspan id="shapes-f21-ja.svgtspan2982" y="3.9817331" x="105.28775" role="line">0.5</tspan></text>
- <text id="shapes-f21-ja.svgtext2982" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5840.201405500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="285.30881" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2971" y="-2.4563127" x="285.30881" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2973"/><tspan id="shapes-f21-ja.svgtspan2975" y="3.9817331" x="285.30881" role="line">6</tspan></text>
- <text id="shapes-f21-ja.svgtext3039" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5840.201405500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="227.84541" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2964" y="-2.4563127" x="227.84541" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2966"/><tspan id="shapes-f21-ja.svgtspan2968" y="3.9817331" x="227.84541" role="line">2</tspan></text>
- <text id="shapes-f21-ja.svgtext2960" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5840.201405500001) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="167.37082" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2956" y="-2.4563127" x="167.37082" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2958"/><tspan id="shapes-f21-ja.svgtspan2960" y="3.9817331" x="167.37082" role="line">1</tspan></text>
- <path id="shapes-f21-ja.svgpath2948" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5c0.42,0.6-0.57,0.8-0.95,0.7-1.05-0.4-1-1.8-0.44-2.6,1.01-1.4,3.06-1.3,4.24-0.2,1.74,1.6,1.49,4.3-0.08,5.9-2.09,2.1-5.56,1.7-7.53-0.3-2.47-2.7-1.99-6.9,0.6-9.2,3.14-2.9,8.09-2.3,10.82,0.8,3.21,3.7,2.51,9.4-1.11,12.5-4.19,3.6-10.62,2.8-14.11-1.4-3.97-4.7-3.03-11.9,1.62-15.7,5.23-4.4,13.15-3.3,17.4,1.9,4.72,5.7,3.55,14.4-2.14,19-6.26,5.1-15.68,3.8-20.69-2.4-5.47-6.8-4.06-16.9,2.66-22.3,7.3-5.9,18.21-4.4,23.98,2.9,6.22,7.8,4.59,19.5-3.17,25.6-8.34,6.6-20.75,4.9-27.27-3.4-6.98-8.9-5.11-22,3.69-28.9,9.37-7.4,23.27-5.4,30.55,3.9,7.74,9.9,5.63,24.6-4.2,32.2-10.41,8.1-25.81,5.9-33.84-4.4-8.49-11-6.15-27.1,4.71-35.5,11.45-8.9,28.34-6.4,37.14,4.9,9.24,12,6.67,29.6-5.24,38.8" stroke-linecap="butt" transform="translate(10, 5840.201405500001) matrix(-1.000000,0.000000,0.000000,1.000000,308.1285,-6286.366)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="1.0000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
- <path id="shapes-f21-ja.svgpath2949" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5h-0.04c-0.09,0-0.1-0.1-0.08-0.2,0.08-0.2,0.33-0.2,0.48-0.1,0.31,0.2,0.3,0.7,0.1,0.9-0.34,0.5-1.03,0.5-1.45,0.1-0.66-0.5-0.59-1.5-0.05-2.1,0.79-0.9,2.17-0.8,2.98,0,1.13,1,0.96,2.9-0.09,3.9-1.4,1.4-3.73,1.2-5.06-0.2-1.72-1.7-1.42-4.6,0.32-6.3,2.19-2,5.7-1.7,7.68,0.5,2.45,2.6,1.97,6.8-0.63,9.2-3.15,2.8-8.1,2.3-10.86-0.8-3.29-3.7-2.6-9.5,1.04-12.7,4.28-3.7,10.92-2.9,14.58,1.3,4.26,4.9,3.32,12.5-1.52,16.6-5.59,4.8-14.17,3.7-18.85-1.8-5.36-6.3-4.13-15.9,2.09-21.2,7.06-5.9,17.83-4.5,23.67,2.5,6.58,7.8,5.02,19.8-2.75,26.2-8.72,7.3-21.92,5.5-29.04-3.1-7.93-9.6-6-24.1,3.49-31.9,10.54-8.7,26.44-6.5,34.95,3.9,9.42,11.5,7.07,28.8-4.32,38.1" stroke-linecap="butt" transform="translate(10, 5840.201405500001) matrix(-1.000000,0.000000,0.000000,1.000000,368.3648,-6287.793)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="2.0000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
- <path id="shapes-f21-ja.svgpath2950" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5h0.01,0.01-0.08c-0.06,0-0.06-0.1-0.03-0.1,0.07-0.1,0.21-0.1,0.3-0.1,0.17,0.1,0.16,0.4,0.05,0.5-0.2,0.3-0.59,0.3-0.84,0.1-0.41-0.3-0.38-0.9-0.08-1.3,0.5-0.6,1.44-0.6,2.02-0.1,0.91,0.8,0.83,2.1,0.1,3-1.11,1.3-3.12,1.2-4.34,0.1-1.83-1.6-1.62-4.5-0.08-6.2,2.25-2.5,6.21-2.2,8.58,0,3.4,3.1,2.96,8.5-0.05,11.7-4.24,4.6-11.51,4-15.82-0.1-5.97-5.7-5.13-15.4,0.37-21.1,7.52-7.7,20.15-6.6,27.56,0.7,10,9.8,8.47,26.2-1.04,35.7" stroke-linecap="butt" transform="translate(10, 5840.201405500001) matrix(-1.000000,0.000000,0.000000,1.000000,428.6010,-6293.024)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="6.0000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
- <path id="shapes-f21-ja.svgpath2952" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5c2.66,3.6-2.06,5.3-4.66,3.4-3.29-2.4-2.8-7.3-0.15-10,3.6-3.6,9.58-2.9,12.88,0.7,4.01,4.4,3.15,11.4-1.28,15.2-5.11,4.4-12.98,3.4-17.21-1.7-4.75-5.7-3.58-14.4,2.1-19,6.25-5.1,15.66-3.8,20.65,2.4,5.41,6.8,3.99,16.8-2.72,22.2-7.22,5.7-17.96,4.2-23.59-3-6-7.7-4.38-19,3.24-24.9,8.06-6.3,19.98-4.6,26.19,3.4,6.55,8.5,4.73,20.9-3.68,27.4-8.83,6.8-21.83,4.9-28.57-3.9-7.05-9.1-5.06-22.7,4.09-29.6,9.53-7.3,23.52-5.3,30.76,4.2,7.51,9.9,5.36,24.4-4.46,31.8-10.18,7.8-25.11,5.5-32.8-4.6-7.96-10.5-5.66-25.9,4.79-33.8,10.8-8.2,26.6-5.8,34.73,5,8.38,11.1,5.94,27.3-5.12,35.6-11.38,8.6-28,6.1-36.54-5.2-8.78-11.7-6.21-28.7,5.41-37.5,11.94-8.9,29.36-6.3,38.29,5.6,9.15,12.2,6.46,30-5.71,39.1" stroke-linecap="butt" transform="translate(10, 5840.201405500001) matrix(-1.000000,0.000000,0.000000,1.000000,247.8923,-6285.415)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="0.50000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
- <path id="shapes-f21-ja.svgpath2953" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5c9.96,13.6-4.98,16.3-12.09,8.8-6.17-6.5-4.74-17.1,1.96-22.7,7.59-6.3,19.13-4.7,25.19,2.9,6.56,8.2,4.8,20.5-3.43,26.9-8.72,6.8-21.62,4.9-28.31-3.8-7.01-9.1-5.03-22.5,4.07-29.4,9.44-7.2,23.31-5.1,30.45,4.3,7.38,9.7,5.24,24-4.48,31.3-10,7.6-24.62,5.3-32.12-4.6-7.69-10.3-5.43-25.2,4.79-32.9,10.45-7.8,25.7-5.5,33.5,4.9,7.96,10.7,5.6,26.2-5.04,34.2-10.84,8-26.63,5.6-34.68-5.2-8.2-11-5.75-27,5.25-35.2,11.18-8.3,27.43-5.8,35.72,5.3,8.41,11.4,5.88,27.8-5.43,36.2-11.48,8.5-28.17,6-36.66-5.5-8.6-11.6-6.01-28.5,5.6-37.1,11.75-8.7,28.82-6,37.49,5.7,8.79,11.9,6.13,29.1-5.73,37.9-12,8.9-29.42,6.2-38.28-5.8-8.95-12.1-6.23-29.7,5.87-38.6,12.23-9.1,29.98-6.3,38.99,5.9,9.11,12.3,6.34,30.2-5.99,39.3" stroke-linecap="butt" transform="translate(10, 5840.201405500001) matrix(-1.000000,0.000000,0.000000,1.000000,187.6560,-6285.415)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="0.20000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
- <rect id="d0e806" display="none" height="1000px" width="288" y="5917.1" x="10"/>
+ <text id="shapes-f21-ja.svgtext2996" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5988.689744000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="45.595207" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2985" y="-2.4563127" x="45.595207" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2987"/><tspan id="shapes-f21-ja.svgtspan2989" y="3.9817331" x="45.595207" role="line">0.2</tspan></text>
+ <text id="shapes-f21-ja.svgtext3053" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5988.689744000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="105.28775" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2978" y="-2.4563127" x="105.28775" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2980"/><tspan id="shapes-f21-ja.svgtspan2982" y="3.9817331" x="105.28775" role="line">0.5</tspan></text>
+ <text id="shapes-f21-ja.svgtext2982" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5988.689744000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="285.30881" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2971" y="-2.4563127" x="285.30881" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2973"/><tspan id="shapes-f21-ja.svgtspan2975" y="3.9817331" x="285.30881" role="line">6</tspan></text>
+ <text id="shapes-f21-ja.svgtext3039" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5988.689744000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="227.84541" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2964" y="-2.4563127" x="227.84541" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2966"/><tspan id="shapes-f21-ja.svgtspan2968" y="3.9817331" x="227.84541" role="line">2</tspan></text>
+ <text id="shapes-f21-ja.svgtext2960" style="writing-mode:lr-tb;text-anchor:start;" font-weight="normal" sodipodi:linespacing="120.00000%" transform="translate(10, 5988.689744000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="120.00000%" font-size="5.3650379" font-variant="normal" y="-2.4563127" x="167.37082" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="shapes-f21-ja.svgtspan2956" y="-2.4563127" x="167.37082" sodipodi:role="line"/><tspan id="shapes-f21-ja.svgtspan2958"/><tspan id="shapes-f21-ja.svgtspan2960" y="3.9817331" x="167.37082" role="line">1</tspan></text>
+ <path id="shapes-f21-ja.svgpath2948" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5c0.42,0.6-0.57,0.8-0.95,0.7-1.05-0.4-1-1.8-0.44-2.6,1.01-1.4,3.06-1.3,4.24-0.2,1.74,1.6,1.49,4.3-0.08,5.9-2.09,2.1-5.56,1.7-7.53-0.3-2.47-2.7-1.99-6.9,0.6-9.2,3.14-2.9,8.09-2.3,10.82,0.8,3.21,3.7,2.51,9.4-1.11,12.5-4.19,3.6-10.62,2.8-14.11-1.4-3.97-4.7-3.03-11.9,1.62-15.7,5.23-4.4,13.15-3.3,17.4,1.9,4.72,5.7,3.55,14.4-2.14,19-6.26,5.1-15.68,3.8-20.69-2.4-5.47-6.8-4.06-16.9,2.66-22.3,7.3-5.9,18.21-4.4,23.98,2.9,6.22,7.8,4.59,19.5-3.17,25.6-8.34,6.6-20.75,4.9-27.27-3.4-6.98-8.9-5.11-22,3.69-28.9,9.37-7.4,23.27-5.4,30.55,3.9,7.74,9.9,5.63,24.6-4.2,32.2-10.41,8.1-25.81,5.9-33.84-4.4-8.49-11-6.15-27.1,4.71-35.5,11.45-8.9,28.34-6.4,37.14,4.9,9.24,12,6.67,29.6-5.24,38.8" stroke-linecap="butt" transform="translate(10, 5988.689744000002) matrix(-1.000000,0.000000,0.000000,1.000000,308.1285,-6286.366)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="1.0000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
+ <path id="shapes-f21-ja.svgpath2949" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5h-0.04c-0.09,0-0.1-0.1-0.08-0.2,0.08-0.2,0.33-0.2,0.48-0.1,0.31,0.2,0.3,0.7,0.1,0.9-0.34,0.5-1.03,0.5-1.45,0.1-0.66-0.5-0.59-1.5-0.05-2.1,0.79-0.9,2.17-0.8,2.98,0,1.13,1,0.96,2.9-0.09,3.9-1.4,1.4-3.73,1.2-5.06-0.2-1.72-1.7-1.42-4.6,0.32-6.3,2.19-2,5.7-1.7,7.68,0.5,2.45,2.6,1.97,6.8-0.63,9.2-3.15,2.8-8.1,2.3-10.86-0.8-3.29-3.7-2.6-9.5,1.04-12.7,4.28-3.7,10.92-2.9,14.58,1.3,4.26,4.9,3.32,12.5-1.52,16.6-5.59,4.8-14.17,3.7-18.85-1.8-5.36-6.3-4.13-15.9,2.09-21.2,7.06-5.9,17.83-4.5,23.67,2.5,6.58,7.8,5.02,19.8-2.75,26.2-8.72,7.3-21.92,5.5-29.04-3.1-7.93-9.6-6-24.1,3.49-31.9,10.54-8.7,26.44-6.5,34.95,3.9,9.42,11.5,7.07,28.8-4.32,38.1" stroke-linecap="butt" transform="translate(10, 5988.689744000002) matrix(-1.000000,0.000000,0.000000,1.000000,368.3648,-6287.793)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="2.0000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
+ <path id="shapes-f21-ja.svgpath2950" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5h0.01,0.01-0.08c-0.06,0-0.06-0.1-0.03-0.1,0.07-0.1,0.21-0.1,0.3-0.1,0.17,0.1,0.16,0.4,0.05,0.5-0.2,0.3-0.59,0.3-0.84,0.1-0.41-0.3-0.38-0.9-0.08-1.3,0.5-0.6,1.44-0.6,2.02-0.1,0.91,0.8,0.83,2.1,0.1,3-1.11,1.3-3.12,1.2-4.34,0.1-1.83-1.6-1.62-4.5-0.08-6.2,2.25-2.5,6.21-2.2,8.58,0,3.4,3.1,2.96,8.5-0.05,11.7-4.24,4.6-11.51,4-15.82-0.1-5.97-5.7-5.13-15.4,0.37-21.1,7.52-7.7,20.15-6.6,27.56,0.7,10,9.8,8.47,26.2-1.04,35.7" stroke-linecap="butt" transform="translate(10, 5988.689744000002) matrix(-1.000000,0.000000,0.000000,1.000000,428.6010,-6293.024)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="6.0000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
+ <path id="shapes-f21-ja.svgpath2952" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5c2.66,3.6-2.06,5.3-4.66,3.4-3.29-2.4-2.8-7.3-0.15-10,3.6-3.6,9.58-2.9,12.88,0.7,4.01,4.4,3.15,11.4-1.28,15.2-5.11,4.4-12.98,3.4-17.21-1.7-4.75-5.7-3.58-14.4,2.1-19,6.25-5.1,15.66-3.8,20.65,2.4,5.41,6.8,3.99,16.8-2.72,22.2-7.22,5.7-17.96,4.2-23.59-3-6-7.7-4.38-19,3.24-24.9,8.06-6.3,19.98-4.6,26.19,3.4,6.55,8.5,4.73,20.9-3.68,27.4-8.83,6.8-21.83,4.9-28.57-3.9-7.05-9.1-5.06-22.7,4.09-29.6,9.53-7.3,23.52-5.3,30.76,4.2,7.51,9.9,5.36,24.4-4.46,31.8-10.18,7.8-25.11,5.5-32.8-4.6-7.96-10.5-5.66-25.9,4.79-33.8,10.8-8.2,26.6-5.8,34.73,5,8.38,11.1,5.94,27.3-5.12,35.6-11.38,8.6-28,6.1-36.54-5.2-8.78-11.7-6.21-28.7,5.41-37.5,11.94-8.9,29.36-6.3,38.29,5.6,9.15,12.2,6.46,30-5.71,39.1" stroke-linecap="butt" transform="translate(10, 5988.689744000002) matrix(-1.000000,0.000000,0.000000,1.000000,247.8923,-6285.415)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="0.50000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
+ <path id="shapes-f21-ja.svgpath2953" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="6.0000000" sodipodi:radius="28.251171" d="M138.39,6322.5c9.96,13.6-4.98,16.3-12.09,8.8-6.17-6.5-4.74-17.1,1.96-22.7,7.59-6.3,19.13-4.7,25.19,2.9,6.56,8.2,4.8,20.5-3.43,26.9-8.72,6.8-21.62,4.9-28.31-3.8-7.01-9.1-5.03-22.5,4.07-29.4,9.44-7.2,23.31-5.1,30.45,4.3,7.38,9.7,5.24,24-4.48,31.3-10,7.6-24.62,5.3-32.12-4.6-7.69-10.3-5.43-25.2,4.79-32.9,10.45-7.8,25.7-5.5,33.5,4.9,7.96,10.7,5.6,26.2-5.04,34.2-10.84,8-26.63,5.6-34.68-5.2-8.2-11-5.75-27,5.25-35.2,11.18-8.3,27.43-5.8,35.72,5.3,8.41,11.4,5.88,27.8-5.43,36.2-11.48,8.5-28.17,6-36.66-5.5-8.6-11.6-6.01-28.5,5.6-37.1,11.75-8.7,28.82-6,37.49,5.7,8.79,11.9,6.13,29.1-5.73,37.9-12,8.9-29.42,6.2-38.28-5.8-8.95-12.1-6.23-29.7,5.87-38.6,12.23-9.1,29.98-6.3,38.99,5.9,9.11,12.3,6.34,30.2-5.99,39.3" stroke-linecap="butt" transform="translate(10, 5988.689744000002) matrix(-1.000000,0.000000,0.000000,1.000000,187.6560,-6285.415)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.758350" sodipodi:cy="6322.4868" sodipodi:cx="138.38965" stroke-miterlimit="4.0000000" sodipodi:expansion="0.20000000" sodipodi:type="spiral" stroke-width="1.0000000pt" sodipodi:t0="0.0000000" fill="none"/>
+ <rect id="d0e806" display="none" height="1000px" width="288" y="6065.6" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e806"/>
</flowRegion>
<flowDiv xml:space="preserve">巻き数の最大値は 1024 です。</flowDiv>
</flowRoot>
- <rect id="d0e809" display="none" height="1000px" width="288" y="5935.3" x="10"/>
+ <rect id="d0e809" display="none" height="1000px" width="288" y="6083.3" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e809"/>
</flowRegion>
<flowDiv xml:space="preserve">円/弧ツールが楕円だけでなく弧 (曲率が一定の線) も作成できるように、螺旋ツールは<flowSpan font-style="italic">滑らかに変化する</flowSpan>曲線を作ることもできます。通常のベジエ曲線に比べ、弧や螺旋はより利便性が高いでしょう。なぜなら形状に変更を加えずに曲線に沿ってハンドルを動かすことで長くしたり短くしたりできるからです。また通常、螺旋はフィルなしで描かれますが、フィルの追加やストロークの削除で面白い効果が出せます。</flowDiv>
</flowRoot>
- <path id="shapes-f22-ja.svgpath3031" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.3807619" sodipodi:radius="40.249962" d="M84.272,6515.5c-0.242-12,11.069-20.8,22.538-20.1,13.64,0.9,23.48,13.7,22.21,27.1-1.42,14.9-15.51,25.6-30.22,24-15.983-1.8-27.382-17-25.491-32.8,2.021-16.9,18.085-28.9,34.831-26.8,17.69,2.3,30.27,19.1,27.98,36.7-2.4,18.4-19.98,31.5-38.288,29-19.079-2.5-32.606-20.8-30.025-39.7,2.679-19.7,21.521-33.7,41.113-31,20.25,2.8,34.59,22.2,31.77,42.4-2.9,20.8-22.82,35.5-43.522,32.6-21.279-3-36.334-23.5-33.315-44.7,1.448-10.1,6.893-19.5,14.978-25.8" fill-rule="evenodd" transform="translate(10, 6014.759400500001) matrix(-0.128635,0.679333,-0.679333,-0.128635,4573.635,795.7550)" sodipodi:argument="-17.179831" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" sodipodi:expansion="0.28900903" sodipodi:type="spiral" sodipodi:t0="0.076614626" fill="#ff6c2e"/>
- <path id="shapes-f22-ja.svgpath2997" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8106463" sodipodi:radius="36.507183" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.43,9.3-4.18,18.1-10.49,24.6" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,18.84725,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.77700925" fill="none"/>
- <path id="shapes-f22-ja.svgpath2998" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8656998" sodipodi:radius="47.161507" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.72,15.6-11.89,28.6-25.07,34.8" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,10.64587,-4436.601)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.76208192" fill="none"/>
- <path id="shapes-f22-ja.svgpath2999" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.21,4.6-0.84,9.1-2.7,13.3" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,27.46530,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.79235041" fill="none"/>
- <path id="shapes-f22-ja.svgpath3000" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.6865160" sodipodi:radius="20.110537" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.01,0.2,0.01,0.3,0.02,0.4" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,36.19077,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.81291085" fill="none"/>
- <path id="shapes-f22-ja.svgpath3001" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.5610781" sodipodi:radius="10.697699" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,2.73-0.3,5.41,1,7.4,2.8" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,45.02361,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.85272610" fill="none"/>
- <path id="shapes-f22-ja.svgpath3002" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.9435861" sodipodi:radius="67.193001" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,1.25,27.1-31.04,40.9-53.46,40.9-1.64,0-3.28,0-4.91-0.1" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.690923,2.577214e-2,-2.577214e-2,0.690923,168.8262,-4440.038)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.74191737" fill="none"/>
- <path id="shapes-f22-ja.svgpath3003" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8106463" sodipodi:radius="32.027428" d="M171.5,6461.9c-1.86,12.1-13.94,20-25.81,18-13.63-2.2-22.45-15.8-20.15-29.2,2.61-15.2,17.81-24.9,32.7-22.3,15.51,2.8,26.13,17.7,24.73,33.2" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,-6.203756,-4382.329)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-17.513800" sodipodi:cy="6456.9546" sodipodi:cx="151.28812" stroke-miterlimit="4.0000000" sodipodi:expansion="1.0000000" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.64947820" fill="none"/>
- <path id="shapes-f22-ja.svgpath3004" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8106463" sodipodi:radius="32.027428" d="M171.5,6461.9c-1.86,12.1-13.94,20-25.81,18-13.63-2.2-22.45-15.8-20.15-29.2,2.61-15.2,17.81-24.9,32.7-22.3,15.51,2.8,26.13,17.7,24.73,33.2" stroke-linecap="round" transform="translate(10, 6014.759400500001) matrix(-0.691404,0.000000,0.000000,0.691404,220.3145,-4382.458)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-17.513800" sodipodi:cy="6456.9546" sodipodi:cx="151.28812" stroke-miterlimit="4.0000000" sodipodi:expansion="1.0000000" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.64947820" fill="none"/>
- <path id="shapes-f22-ja.svgpath3626" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="44.105801" d="M103.2,6518.4h0.09c0.06,0.1-0.03,0.2-0.12,0.3-0.25,0.1-0.52-0.1-0.61-0.3-0.21-0.6,0.26-1.1,0.77-1.3,1.04-0.3,2,0.6,2.24,1.6,0.44,1.8-1.09,3.4-2.77,3.7-2.917,0.6-5.435-1.9-5.903-4.6-0.767-4.5,3.027-8.3,7.243-8.9,6.58-0.9,12.05,4.7,12.82,10.9,1.15,9.3-6.8,17-15.68,17.9-12.862,1.4-23.347-9.6-24.448-21.9-1.551-17.3,13.282-31.3,29.858-32.6,17.76-1.3,33.85,10.7,39.85,27.1" fill-rule="evenodd" transform="translate(10, 6014.759400500001) matrix(0.679332,-0.128635,-0.128635,-0.679332,981.4957,4517.767)" sodipodi:argument="-17.179831" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" sodipodi:expansion="3.8924387" sodipodi:type="spiral" sodipodi:t0="0.0000000" fill="#ff6c2e"/>
- <path id="shapes-f22-ja.svgpath3627" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.178949,-0.667845,0.667845,0.178949,-4374.555,-1086.497)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
- <path id="shapes-f22-ja.svgpath3628" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(-0.178949,-0.667845,-0.667845,0.178949,4472.981,-1093.846)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
- <path id="shapes-f22-ja.svgpath3629" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.488897,-0.488897,0.488897,0.488897,-3201.239,-3162.787)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
- <path id="shapes-f22-ja.svgpath3630" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,35.65217,-4530.089)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
- <path id="shapes-f22-ja.svgpath3632" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M253.98,6460.7c6.16,6.9,5.36,17.5,1.84,25.4" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,104.6817,-4434.008)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.93520707" fill="none"/>
- <path id="shapes-f22-ja.svgpath3633" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-0.33,1-0.7,1.9-1.12,2.9" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.691404,0.000000,0.000000,0.691404,104.8965,-4448.923)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.81344151" fill="none"/>
- <path id="shapes-f22-ja.svgpath3634" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-0.33,1-0.7,1.9-1.12,2.9" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(0.345702,-0.598773,0.598773,0.345702,-3695.309,-2066.525)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.81344151" fill="none"/>
- <path id="shapes-f22-ja.svgpath3635" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8132913" sodipodi:radius="36.963310" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-1.9,5.6-5.29,10.6-9.45,14.7" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(-0.488897,-0.488897,0.488897,-0.488897,-2792.131,3319.223)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.79694211" fill="none"/>
- <path id="shapes-f22-ja.svgpath3636" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8126345" sodipodi:radius="36.849499" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-1.88,5.5-5.22,10.5-9.32,14.6" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(-0.691404,6.120670e-8,-6.120670e-8,-0.691404,425.7790,4523.887)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.79712820" fill="none"/>
- <path id="shapes-f22-ja.svgpath3089" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.9095716" sodipodi:radius="57.635422" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-5.81,17-23.61,26.9-40.46,29.6" stroke-linecap="butt" transform="translate(10, 6014.759400500001) matrix(-0.345702,0.598773,-0.598773,-0.345702,4235.693,2171.952)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.77057040" fill="none"/>
- <rect id="d0e825" display="none" height="1000px" width="288" y="6126.7" x="10"/>
+ <path id="shapes-f22-ja.svgpath3031" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.3807619" sodipodi:radius="40.249962" d="M84.272,6515.5c-0.242-12,11.069-20.8,22.538-20.1,13.64,0.9,23.48,13.7,22.21,27.1-1.42,14.9-15.51,25.6-30.22,24-15.983-1.8-27.382-17-25.491-32.8,2.021-16.9,18.085-28.9,34.831-26.8,17.69,2.3,30.27,19.1,27.98,36.7-2.4,18.4-19.98,31.5-38.288,29-19.079-2.5-32.606-20.8-30.025-39.7,2.679-19.7,21.521-33.7,41.113-31,20.25,2.8,34.59,22.2,31.77,42.4-2.9,20.8-22.82,35.5-43.522,32.6-21.279-3-36.334-23.5-33.315-44.7,1.448-10.1,6.893-19.5,14.978-25.8" fill-rule="evenodd" transform="translate(10, 6170.2944055000025) matrix(-0.128635,0.679333,-0.679333,-0.128635,4573.635,795.7550)" sodipodi:argument="-17.179831" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" sodipodi:expansion="0.28900903" sodipodi:type="spiral" sodipodi:t0="0.076614626" fill="#ff6c2e"/>
+ <path id="shapes-f22-ja.svgpath2997" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8106463" sodipodi:radius="36.507183" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.43,9.3-4.18,18.1-10.49,24.6" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,18.84725,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.77700925" fill="none"/>
+ <path id="shapes-f22-ja.svgpath2998" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8656998" sodipodi:radius="47.161507" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.72,15.6-11.89,28.6-25.07,34.8" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,10.64587,-4436.601)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.76208192" fill="none"/>
+ <path id="shapes-f22-ja.svgpath2999" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.21,4.6-0.84,9.1-2.7,13.3" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,27.46530,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.79235041" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3000" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.6865160" sodipodi:radius="20.110537" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,0.01,0.2,0.01,0.3,0.02,0.4" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,36.19077,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.81291085" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3001" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.5610781" sodipodi:radius="10.697699" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,2.73-0.3,5.41,1,7.4,2.8" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,45.02361,-4437.019)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.85272610" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3002" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.9435861" sodipodi:radius="67.193001" d="M241.28,6460.6c-0.33-2.3,2.45-3.6,4.23-3.7,8.24-0.8,12.7,9.2,13.01,15.9,1.25,27.1-31.04,40.9-53.46,40.9-1.64,0-3.28,0-4.91-0.1" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.690923,2.577214e-2,-2.577214e-2,0.690923,168.8262,-4440.038)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.74191737" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3003" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8106463" sodipodi:radius="32.027428" d="M171.5,6461.9c-1.86,12.1-13.94,20-25.81,18-13.63-2.2-22.45-15.8-20.15-29.2,2.61-15.2,17.81-24.9,32.7-22.3,15.51,2.8,26.13,17.7,24.73,33.2" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,-6.203756,-4382.329)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-17.513800" sodipodi:cy="6456.9546" sodipodi:cx="151.28812" stroke-miterlimit="4.0000000" sodipodi:expansion="1.0000000" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.64947820" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3004" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8106463" sodipodi:radius="32.027428" d="M171.5,6461.9c-1.86,12.1-13.94,20-25.81,18-13.63-2.2-22.45-15.8-20.15-29.2,2.61-15.2,17.81-24.9,32.7-22.3,15.51,2.8,26.13,17.7,24.73,33.2" stroke-linecap="round" transform="translate(10, 6170.2944055000025) matrix(-0.691404,0.000000,0.000000,0.691404,220.3145,-4382.458)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-17.513800" sodipodi:cy="6456.9546" sodipodi:cx="151.28812" stroke-miterlimit="4.0000000" sodipodi:expansion="1.0000000" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.64947820" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3626" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="44.105801" d="M103.2,6518.4h0.09c0.06,0.1-0.03,0.2-0.12,0.3-0.25,0.1-0.52-0.1-0.61-0.3-0.21-0.6,0.26-1.1,0.77-1.3,1.04-0.3,2,0.6,2.24,1.6,0.44,1.8-1.09,3.4-2.77,3.7-2.917,0.6-5.435-1.9-5.903-4.6-0.767-4.5,3.027-8.3,7.243-8.9,6.58-0.9,12.05,4.7,12.82,10.9,1.15,9.3-6.8,17-15.68,17.9-12.862,1.4-23.347-9.6-24.448-21.9-1.551-17.3,13.282-31.3,29.858-32.6,17.76-1.3,33.85,10.7,39.85,27.1" fill-rule="evenodd" transform="translate(10, 6170.2944055000025) matrix(0.679332,-0.128635,-0.128635,-0.679332,981.4957,4517.767)" sodipodi:argument="-17.179831" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" sodipodi:expansion="3.8924387" sodipodi:type="spiral" sodipodi:t0="0.0000000" fill="#ff6c2e"/>
+ <path id="shapes-f22-ja.svgpath3627" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.178949,-0.667845,0.667845,0.178949,-4374.555,-1086.497)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3628" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(-0.178949,-0.667845,-0.667845,0.178949,4472.981,-1093.846)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3629" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.488897,-0.488897,0.488897,0.488897,-3201.239,-3162.787)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3630" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="3.7046297" sodipodi:radius="30.881491" d="M36.158,6582.7c-0.323-2,1.42-3.6,3.28-3.9,3.058-0.4,5.517,2.3,5.813,5.2,0.465,4.5-3.495,8.1-7.752,8.4-6.396,0.5-11.402-5.1-11.786-11.2-0.557-8.8,7.261-15.7,15.683-16.1,11.888-0.5,21.035,10,21.425,21.4,0.466,13.6-10.269,25-23.271,27.5" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,35.65217,-4530.089)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-21.729349" sodipodi:cy="6583.0801" sodipodi:cx="38.831650" stroke-miterlimit="4.0000000" sodipodi:expansion="3.8924387" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.53471386" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3632" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M253.98,6460.7c6.16,6.9,5.36,17.5,1.84,25.4" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,104.6817,-4434.008)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.93520707" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3633" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-0.33,1-0.7,1.9-1.12,2.9" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.691404,0.000000,0.000000,0.691404,104.8965,-4448.923)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.81344151" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3634" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.7562277" sodipodi:radius="28.202633" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-0.33,1-0.7,1.9-1.12,2.9" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(0.345702,-0.598773,0.598773,0.345702,-3695.309,-2066.525)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.81344151" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3635" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8132913" sodipodi:radius="36.963310" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-1.9,5.6-5.29,10.6-9.45,14.7" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(-0.488897,-0.488897,0.488897,-0.488897,-2792.131,3319.223)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.79694211" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3636" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.8126345" sodipodi:radius="36.849499" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-1.88,5.5-5.22,10.5-9.32,14.6" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(-0.691404,6.120670e-8,-6.120670e-8,-0.691404,425.7790,4523.887)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.79712820" fill="none"/>
+ <path id="shapes-f22-ja.svgpath3089" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;marker-mid:none;" sodipodi:revolution="2.9095716" sodipodi:radius="57.635422" d="M241.32,6459.8c0.7-3,4.87-3.3,7.23-2.6,10.57,3,11.3,17.5,8.39,26-5.81,17-23.61,26.9-40.46,29.6" stroke-linecap="butt" transform="translate(10, 6170.2944055000025) matrix(-0.345702,0.598773,-0.598773,-0.345702,4235.693,2171.952)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-16.245340" sodipodi:cy="6461.3071" sodipodi:cx="242.34204" stroke-miterlimit="4.0000000" sodipodi:expansion="13.200652" sodipodi:type="spiral" stroke-width="1.4463346pt" sodipodi:t0="0.77057040" fill="none"/>
+ <rect id="d0e825" display="none" height="1000px" width="288" y="6282.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e825"/>
</flowRegion>
<flowDiv xml:space="preserve">特に面白いのは螺旋に破線のストロークを与えることです。滑らかな収束と等間隔の印 (点や短い線) は相まって美しいモアレ効果となります:</flowDiv>
</flowRoot>
- <path id="shapes-f23-ja.svgpath3032" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:1.8749997 1.8749997;marker-mid:none;" sodipodi:revolution="18.821123" sodipodi:radius="68.998032" d="M103.2,6518.4c0.37,0.5-0.43,0.7-0.76,0.6-0.87-0.3-0.89-1.4-0.45-2.1,0.77-1.1,2.44-1.1,3.45-0.3,1.47,1.2,1.37,3.5,0.15,4.8-1.61,1.8-4.43,1.6-6.101,0-2.092-2-1.871-5.4,0.134-7.4,2.417-2.4,6.427-2.1,8.747,0.3,2.72,2.8,2.37,7.4-0.43,10-3.22,3.1-8.406,2.6-11.363-0.5-3.354-3.7-2.878-9.4,0.705-12.7,4.018-3.7,10.388-3.2,13.988,0.8,3.98,4.4,3.38,11.4-0.99,15.3-4.81,4.3-12.365,3.6-16.596-1.1-4.616-5.2-3.884-13.4,1.272-17.9,5.594-4.9,14.334-4.2,19.194,1.4,5.25,6,4.39,15.3-1.55,20.5-6.38,5.6-16.299,4.6-21.796-1.7-5.875-6.8-4.889-17.3,1.835-23.1,7.16-6.2,18.261-5.1,24.391,2,6.5,7.5,5.39,19.2-2.12,25.7-7.94,6.8-20.219,5.6-26.976-2.3-7.132-8.3-5.891-21.2,2.395-28.3,8.724-7.4,22.181-6.1,29.561,2.6,7.76,9.1,6.39,23.1-2.67,30.8-9.5,8.1-24.135,6.7-32.149-2.8-8.385-9.9-6.89-25.1,2.954-33.4,10.283-8.7,26.085-7.2,34.725,3.1,9.01,10.6,7.39,27-3.23,36-11.06,9.3-28.038,7.6-37.305-3.4-9.636-11.4-7.888-29,3.511-38.6,11.839-9.9,29.984-8.1,39.884,3.7,10.26,12.2,8.38,30.9-3.79,41.1-12.62,10.6-31.937,8.7-42.455-3.9-10.886-13-8.885-32.9,4.067-43.7,13.391-11.2,33.878-9.2,45.018,4.2,11.51,13.8,9.39,34.8-4.34,46.3-14.17,11.8-35.824,9.6-47.591-4.5-12.132-14.5-9.879-36.8,4.622-48.9,14.941-12.4,37.769-10.1,50.159,4.8,12.75,15.3,10.37,38.7-4.9,51.4-15.72,13.1-39.709,10.7-52.722-5-13.378-16.1-10.873-40.7,5.176-54,16.488-13.7,41.646-11.1,55.286,5.3,14,16.9,11.37,42.6-5.46,56.6-17.26,14.3-43.581,11.6-57.839-5.6-14.622-17.7-11.865-44.6,5.729-59.1,18.033-15,45.52-12.2,60.4,5.8,15.24,18.4,12.36,46.5-6,61.7-18.81,15.6-47.461,12.6-62.963-6.1-15.864-19.2-12.856-48.5,6.282-64.3,19.576-16.2,49.391-13.1,65.511,6.4,16.49,20,13.36,50.4-6.55,66.8-20.35,16.8-51.33,13.6-68.073-6.7-17.105-20.7-13.847-52.3,6.833-69.3,21.118-17.4,53.26-14.1,70.62,7,17.73,21.5,14.34,54.2-7.11,71.9-21.88,18-55.187,14.5-73.17-7.3-18.345-22.3-14.836-56.1,7.384-74.4,22.658-18.7,57.126-15.1,75.726,7.5,18.96,23,15.33,58.1-7.66,77-23.43,19.3-59.052,15.6-78.275-7.8-19.583-23.8-15.823-60,7.934-79.6,24.197-19.9,60.981-16,80.821,8.1,20.2,24.6,16.32,62-8.21,82.1-24.96,20.5-62.906,16.6-83.367-8.3-20.82-25.4-16.811-63.9,8.485-84.7,25.733-21.1,64.832-17,85.912,8.6,21.44,26.2,17.31,65.8-8.76,87.2-26.5,21.8-66.759,17.6-88.456-8.9-22.057-26.9-17.797-67.7,9.033-89.7,27.269-22.4,68.683-18,91.003,9.2,22.68,27.6,18.29,69.6-9.31,92.2-28.03,23-70.61,18.6-93.543-9.4-23.293-28.4-18.783-71.6,9.582-94.8,28.804-23.6,72.541-19,96.091,9.7,6.5,7.9,11.19,17.3,13.62,27.3" stroke-linecap="butt" transform="translate(10, 6164.116519500001) matrix(-0.172154,0.642449,-0.642449,-0.172154,4263.769,1103.767)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.806286" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" stroke-miterlimit="4.0000000" sodipodi:expansion="0.98582262" sodipodi:type="spiral" stroke-width="3.7499993" sodipodi:t0="0.0000000" fill="none"/>
- <path id="shapes-f23-ja.svgpath3088" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:3.7499994 3.7499994;marker-mid:none;" sodipodi:revolution="18.821123" sodipodi:radius="68.998032" d="M103.2,6518.4c0.37,0.5-0.43,0.7-0.76,0.6-0.87-0.3-0.89-1.4-0.45-2.1,0.77-1.1,2.44-1.1,3.45-0.3,1.47,1.2,1.37,3.5,0.15,4.8-1.61,1.8-4.43,1.6-6.101,0-2.092-2-1.871-5.4,0.134-7.4,2.417-2.4,6.427-2.1,8.747,0.3,2.72,2.8,2.37,7.4-0.43,10-3.22,3.1-8.406,2.6-11.363-0.5-3.354-3.7-2.878-9.4,0.705-12.7,4.018-3.7,10.388-3.2,13.988,0.8,3.98,4.4,3.38,11.4-0.99,15.3-4.81,4.3-12.365,3.6-16.596-1.1-4.616-5.2-3.884-13.4,1.272-17.9,5.594-4.9,14.334-4.2,19.194,1.4,5.25,6,4.39,15.3-1.55,20.5-6.38,5.6-16.299,4.6-21.796-1.7-5.875-6.8-4.889-17.3,1.835-23.1,7.16-6.2,18.261-5.1,24.391,2,6.5,7.5,5.39,19.2-2.12,25.7-7.94,6.8-20.219,5.6-26.976-2.3-7.132-8.3-5.891-21.2,2.395-28.3,8.724-7.4,22.181-6.1,29.561,2.6,7.76,9.1,6.39,23.1-2.67,30.8-9.5,8.1-24.135,6.7-32.149-2.8-8.385-9.9-6.89-25.1,2.954-33.4,10.283-8.7,26.085-7.2,34.725,3.1,9.01,10.6,7.39,27-3.23,36-11.06,9.3-28.038,7.6-37.305-3.4-9.636-11.4-7.888-29,3.511-38.6,11.839-9.9,29.984-8.1,39.884,3.7,10.26,12.2,8.38,30.9-3.79,41.1-12.62,10.6-31.937,8.7-42.455-3.9-10.886-13-8.885-32.9,4.067-43.7,13.391-11.2,33.878-9.2,45.018,4.2,11.51,13.8,9.39,34.8-4.34,46.3-14.17,11.8-35.824,9.6-47.591-4.5-12.132-14.5-9.879-36.8,4.622-48.9,14.941-12.4,37.769-10.1,50.159,4.8,12.75,15.3,10.37,38.7-4.9,51.4-15.72,13.1-39.709,10.7-52.722-5-13.378-16.1-10.873-40.7,5.176-54,16.488-13.7,41.646-11.1,55.286,5.3,14,16.9,11.37,42.6-5.46,56.6-17.26,14.3-43.581,11.6-57.839-5.6-14.622-17.7-11.865-44.6,5.729-59.1,18.033-15,45.52-12.2,60.4,5.8,15.24,18.4,12.36,46.5-6,61.7-18.81,15.6-47.461,12.6-62.963-6.1-15.864-19.2-12.856-48.5,6.282-64.3,19.576-16.2,49.391-13.1,65.511,6.4,16.49,20,13.36,50.4-6.55,66.8-20.35,16.8-51.33,13.6-68.073-6.7-17.105-20.7-13.847-52.3,6.833-69.3,21.118-17.4,53.26-14.1,70.62,7,17.73,21.5,14.34,54.2-7.11,71.9-21.88,18-55.187,14.5-73.17-7.3-18.345-22.3-14.836-56.1,7.384-74.4,22.658-18.7,57.126-15.1,75.726,7.5,18.96,23,15.33,58.1-7.66,77-23.43,19.3-59.052,15.6-78.275-7.8-19.583-23.8-15.823-60,7.934-79.6,24.197-19.9,60.981-16,80.821,8.1,20.2,24.6,16.32,62-8.21,82.1-24.96,20.5-62.906,16.6-83.367-8.3-20.82-25.4-16.811-63.9,8.485-84.7,25.733-21.1,64.832-17,85.912,8.6,21.44,26.2,17.31,65.8-8.76,87.2-26.5,21.8-66.759,17.6-88.456-8.9-22.057-26.9-17.797-67.7,9.033-89.7,27.269-22.4,68.683-18,91.003,9.2,22.68,27.6,18.29,69.6-9.31,92.2-28.03,23-70.61,18.6-93.543-9.4-23.293-28.4-18.783-71.6,9.582-94.8,28.804-23.6,72.541-19,96.091,9.7,6.5,7.9,11.19,17.3,13.62,27.3" stroke-linecap="butt" transform="translate(10, 6164.116519500001) matrix(-0.179293,0.654509,-0.669124,-0.175376,4637.701,1123.624)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.806286" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" stroke-miterlimit="4.0000000" sodipodi:expansion="0.98582262" sodipodi:type="spiral" stroke-width="7.4999986" sodipodi:t0="0.0000000" fill="none"/>
- <path id="shapes-f23-ja.svgpath3090" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.60429269 7.2515122;marker-mid:none;" sodipodi:revolution="18.821123" sodipodi:radius="68.998032" d="M103.2,6518.4c0.37,0.5-0.43,0.7-0.76,0.6-0.87-0.3-0.89-1.4-0.45-2.1,0.77-1.1,2.44-1.1,3.45-0.3,1.47,1.2,1.37,3.5,0.15,4.8-1.61,1.8-4.43,1.6-6.101,0-2.092-2-1.871-5.4,0.134-7.4,2.417-2.4,6.427-2.1,8.747,0.3,2.72,2.8,2.37,7.4-0.43,10-3.22,3.1-8.406,2.6-11.363-0.5-3.354-3.7-2.878-9.4,0.705-12.7,4.018-3.7,10.388-3.2,13.988,0.8,3.98,4.4,3.38,11.4-0.99,15.3-4.81,4.3-12.365,3.6-16.596-1.1-4.616-5.2-3.884-13.4,1.272-17.9,5.594-4.9,14.334-4.2,19.194,1.4,5.25,6,4.39,15.3-1.55,20.5-6.38,5.6-16.299,4.6-21.796-1.7-5.875-6.8-4.889-17.3,1.835-23.1,7.16-6.2,18.261-5.1,24.391,2,6.5,7.5,5.39,19.2-2.12,25.7-7.94,6.8-20.219,5.6-26.976-2.3-7.132-8.3-5.891-21.2,2.395-28.3,8.724-7.4,22.181-6.1,29.561,2.6,7.76,9.1,6.39,23.1-2.67,30.8-9.5,8.1-24.135,6.7-32.149-2.8-8.385-9.9-6.89-25.1,2.954-33.4,10.283-8.7,26.085-7.2,34.725,3.1,9.01,10.6,7.39,27-3.23,36-11.06,9.3-28.038,7.6-37.305-3.4-9.636-11.4-7.888-29,3.511-38.6,11.839-9.9,29.984-8.1,39.884,3.7,10.26,12.2,8.38,30.9-3.79,41.1-12.62,10.6-31.937,8.7-42.455-3.9-10.886-13-8.885-32.9,4.067-43.7,13.391-11.2,33.878-9.2,45.018,4.2,11.51,13.8,9.39,34.8-4.34,46.3-14.17,11.8-35.824,9.6-47.591-4.5-12.132-14.5-9.879-36.8,4.622-48.9,14.941-12.4,37.769-10.1,50.159,4.8,12.75,15.3,10.37,38.7-4.9,51.4-15.72,13.1-39.709,10.7-52.722-5-13.378-16.1-10.873-40.7,5.176-54,16.488-13.7,41.646-11.1,55.286,5.3,14,16.9,11.37,42.6-5.46,56.6-17.26,14.3-43.581,11.6-57.839-5.6-14.622-17.7-11.865-44.6,5.729-59.1,18.033-15,45.52-12.2,60.4,5.8,15.24,18.4,12.36,46.5-6,61.7-18.81,15.6-47.461,12.6-62.963-6.1-15.864-19.2-12.856-48.5,6.282-64.3,19.576-16.2,49.391-13.1,65.511,6.4,16.49,20,13.36,50.4-6.55,66.8-20.35,16.8-51.33,13.6-68.073-6.7-17.105-20.7-13.847-52.3,6.833-69.3,21.118-17.4,53.26-14.1,70.62,7,17.73,21.5,14.34,54.2-7.11,71.9-21.88,18-55.187,14.5-73.17-7.3-18.345-22.3-14.836-56.1,7.384-74.4,22.658-18.7,57.126-15.1,75.726,7.5,18.96,23,15.33,58.1-7.66,77-23.43,19.3-59.052,15.6-78.275-7.8-19.583-23.8-15.823-60,7.934-79.6,24.197-19.9,60.981-16,80.821,8.1,20.2,24.6,16.32,62-8.21,82.1-24.96,20.5-62.906,16.6-83.367-8.3-20.82-25.4-16.811-63.9,8.485-84.7,25.733-21.1,64.832-17,85.912,8.6,21.44,26.2,17.31,65.8-8.76,87.2-26.5,21.8-66.759,17.6-88.456-8.9-22.057-26.9-17.797-67.7,9.033-89.7,27.269-22.4,68.683-18,91.003,9.2,22.68,27.6,18.29,69.6-9.31,92.2-28.03,23-70.61,18.6-93.543-9.4-23.293-28.4-18.783-71.6,9.582-94.8,28.804-23.6,72.541-19,96.091,9.7,6.5,7.9,11.19,17.3,13.62,27.3" stroke-linecap="butt" transform="translate(10, 6164.116519500001) matrix(-0.179293,0.654509,-0.669124,-0.175376,4536.363,1123.244)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.806286" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" stroke-miterlimit="4.0000000" sodipodi:expansion="0.98582262" sodipodi:type="spiral" stroke-width="0.60429269" sodipodi:t0="0.0000000" fill="none"/>
- <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="6286.221571500001" x="10" font-family="Sans" font-style="normal" fill="#000000">
- <tspan y="6286.221571500001" x="10">最後に</tspan>
+ <path id="shapes-f23-ja.svgpath3032" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:1.8749997 1.8749997;marker-mid:none;" sodipodi:revolution="18.821123" sodipodi:radius="68.998032" d="M103.2,6518.4c0.37,0.5-0.43,0.7-0.76,0.6-0.87-0.3-0.89-1.4-0.45-2.1,0.77-1.1,2.44-1.1,3.45-0.3,1.47,1.2,1.37,3.5,0.15,4.8-1.61,1.8-4.43,1.6-6.101,0-2.092-2-1.871-5.4,0.134-7.4,2.417-2.4,6.427-2.1,8.747,0.3,2.72,2.8,2.37,7.4-0.43,10-3.22,3.1-8.406,2.6-11.363-0.5-3.354-3.7-2.878-9.4,0.705-12.7,4.018-3.7,10.388-3.2,13.988,0.8,3.98,4.4,3.38,11.4-0.99,15.3-4.81,4.3-12.365,3.6-16.596-1.1-4.616-5.2-3.884-13.4,1.272-17.9,5.594-4.9,14.334-4.2,19.194,1.4,5.25,6,4.39,15.3-1.55,20.5-6.38,5.6-16.299,4.6-21.796-1.7-5.875-6.8-4.889-17.3,1.835-23.1,7.16-6.2,18.261-5.1,24.391,2,6.5,7.5,5.39,19.2-2.12,25.7-7.94,6.8-20.219,5.6-26.976-2.3-7.132-8.3-5.891-21.2,2.395-28.3,8.724-7.4,22.181-6.1,29.561,2.6,7.76,9.1,6.39,23.1-2.67,30.8-9.5,8.1-24.135,6.7-32.149-2.8-8.385-9.9-6.89-25.1,2.954-33.4,10.283-8.7,26.085-7.2,34.725,3.1,9.01,10.6,7.39,27-3.23,36-11.06,9.3-28.038,7.6-37.305-3.4-9.636-11.4-7.888-29,3.511-38.6,11.839-9.9,29.984-8.1,39.884,3.7,10.26,12.2,8.38,30.9-3.79,41.1-12.62,10.6-31.937,8.7-42.455-3.9-10.886-13-8.885-32.9,4.067-43.7,13.391-11.2,33.878-9.2,45.018,4.2,11.51,13.8,9.39,34.8-4.34,46.3-14.17,11.8-35.824,9.6-47.591-4.5-12.132-14.5-9.879-36.8,4.622-48.9,14.941-12.4,37.769-10.1,50.159,4.8,12.75,15.3,10.37,38.7-4.9,51.4-15.72,13.1-39.709,10.7-52.722-5-13.378-16.1-10.873-40.7,5.176-54,16.488-13.7,41.646-11.1,55.286,5.3,14,16.9,11.37,42.6-5.46,56.6-17.26,14.3-43.581,11.6-57.839-5.6-14.622-17.7-11.865-44.6,5.729-59.1,18.033-15,45.52-12.2,60.4,5.8,15.24,18.4,12.36,46.5-6,61.7-18.81,15.6-47.461,12.6-62.963-6.1-15.864-19.2-12.856-48.5,6.282-64.3,19.576-16.2,49.391-13.1,65.511,6.4,16.49,20,13.36,50.4-6.55,66.8-20.35,16.8-51.33,13.6-68.073-6.7-17.105-20.7-13.847-52.3,6.833-69.3,21.118-17.4,53.26-14.1,70.62,7,17.73,21.5,14.34,54.2-7.11,71.9-21.88,18-55.187,14.5-73.17-7.3-18.345-22.3-14.836-56.1,7.384-74.4,22.658-18.7,57.126-15.1,75.726,7.5,18.96,23,15.33,58.1-7.66,77-23.43,19.3-59.052,15.6-78.275-7.8-19.583-23.8-15.823-60,7.934-79.6,24.197-19.9,60.981-16,80.821,8.1,20.2,24.6,16.32,62-8.21,82.1-24.96,20.5-62.906,16.6-83.367-8.3-20.82-25.4-16.811-63.9,8.485-84.7,25.733-21.1,64.832-17,85.912,8.6,21.44,26.2,17.31,65.8-8.76,87.2-26.5,21.8-66.759,17.6-88.456-8.9-22.057-26.9-17.797-67.7,9.033-89.7,27.269-22.4,68.683-18,91.003,9.2,22.68,27.6,18.29,69.6-9.31,92.2-28.03,23-70.61,18.6-93.543-9.4-23.293-28.4-18.783-71.6,9.582-94.8,28.804-23.6,72.541-19,96.091,9.7,6.5,7.9,11.19,17.3,13.62,27.3" stroke-linecap="butt" transform="translate(10, 6320.358951500003) matrix(-0.172154,0.642449,-0.642449,-0.172154,4263.769,1103.767)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.806286" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" stroke-miterlimit="4.0000000" sodipodi:expansion="0.98582262" sodipodi:type="spiral" stroke-width="3.7499993" sodipodi:t0="0.0000000" fill="none"/>
+ <path id="shapes-f23-ja.svgpath3088" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:3.7499994 3.7499994;marker-mid:none;" sodipodi:revolution="18.821123" sodipodi:radius="68.998032" d="M103.2,6518.4c0.37,0.5-0.43,0.7-0.76,0.6-0.87-0.3-0.89-1.4-0.45-2.1,0.77-1.1,2.44-1.1,3.45-0.3,1.47,1.2,1.37,3.5,0.15,4.8-1.61,1.8-4.43,1.6-6.101,0-2.092-2-1.871-5.4,0.134-7.4,2.417-2.4,6.427-2.1,8.747,0.3,2.72,2.8,2.37,7.4-0.43,10-3.22,3.1-8.406,2.6-11.363-0.5-3.354-3.7-2.878-9.4,0.705-12.7,4.018-3.7,10.388-3.2,13.988,0.8,3.98,4.4,3.38,11.4-0.99,15.3-4.81,4.3-12.365,3.6-16.596-1.1-4.616-5.2-3.884-13.4,1.272-17.9,5.594-4.9,14.334-4.2,19.194,1.4,5.25,6,4.39,15.3-1.55,20.5-6.38,5.6-16.299,4.6-21.796-1.7-5.875-6.8-4.889-17.3,1.835-23.1,7.16-6.2,18.261-5.1,24.391,2,6.5,7.5,5.39,19.2-2.12,25.7-7.94,6.8-20.219,5.6-26.976-2.3-7.132-8.3-5.891-21.2,2.395-28.3,8.724-7.4,22.181-6.1,29.561,2.6,7.76,9.1,6.39,23.1-2.67,30.8-9.5,8.1-24.135,6.7-32.149-2.8-8.385-9.9-6.89-25.1,2.954-33.4,10.283-8.7,26.085-7.2,34.725,3.1,9.01,10.6,7.39,27-3.23,36-11.06,9.3-28.038,7.6-37.305-3.4-9.636-11.4-7.888-29,3.511-38.6,11.839-9.9,29.984-8.1,39.884,3.7,10.26,12.2,8.38,30.9-3.79,41.1-12.62,10.6-31.937,8.7-42.455-3.9-10.886-13-8.885-32.9,4.067-43.7,13.391-11.2,33.878-9.2,45.018,4.2,11.51,13.8,9.39,34.8-4.34,46.3-14.17,11.8-35.824,9.6-47.591-4.5-12.132-14.5-9.879-36.8,4.622-48.9,14.941-12.4,37.769-10.1,50.159,4.8,12.75,15.3,10.37,38.7-4.9,51.4-15.72,13.1-39.709,10.7-52.722-5-13.378-16.1-10.873-40.7,5.176-54,16.488-13.7,41.646-11.1,55.286,5.3,14,16.9,11.37,42.6-5.46,56.6-17.26,14.3-43.581,11.6-57.839-5.6-14.622-17.7-11.865-44.6,5.729-59.1,18.033-15,45.52-12.2,60.4,5.8,15.24,18.4,12.36,46.5-6,61.7-18.81,15.6-47.461,12.6-62.963-6.1-15.864-19.2-12.856-48.5,6.282-64.3,19.576-16.2,49.391-13.1,65.511,6.4,16.49,20,13.36,50.4-6.55,66.8-20.35,16.8-51.33,13.6-68.073-6.7-17.105-20.7-13.847-52.3,6.833-69.3,21.118-17.4,53.26-14.1,70.62,7,17.73,21.5,14.34,54.2-7.11,71.9-21.88,18-55.187,14.5-73.17-7.3-18.345-22.3-14.836-56.1,7.384-74.4,22.658-18.7,57.126-15.1,75.726,7.5,18.96,23,15.33,58.1-7.66,77-23.43,19.3-59.052,15.6-78.275-7.8-19.583-23.8-15.823-60,7.934-79.6,24.197-19.9,60.981-16,80.821,8.1,20.2,24.6,16.32,62-8.21,82.1-24.96,20.5-62.906,16.6-83.367-8.3-20.82-25.4-16.811-63.9,8.485-84.7,25.733-21.1,64.832-17,85.912,8.6,21.44,26.2,17.31,65.8-8.76,87.2-26.5,21.8-66.759,17.6-88.456-8.9-22.057-26.9-17.797-67.7,9.033-89.7,27.269-22.4,68.683-18,91.003,9.2,22.68,27.6,18.29,69.6-9.31,92.2-28.03,23-70.61,18.6-93.543-9.4-23.293-28.4-18.783-71.6,9.582-94.8,28.804-23.6,72.541-19,96.091,9.7,6.5,7.9,11.19,17.3,13.62,27.3" stroke-linecap="butt" transform="translate(10, 6320.358951500003) matrix(-0.179293,0.654509,-0.669124,-0.175376,4637.701,1123.624)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.806286" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" stroke-miterlimit="4.0000000" sodipodi:expansion="0.98582262" sodipodi:type="spiral" stroke-width="7.4999986" sodipodi:t0="0.0000000" fill="none"/>
+ <path id="shapes-f23-ja.svgpath3090" stroke-linejoin="miter" style="marker-end:none;color:#000000;marker-start:none;stroke-dasharray:0.60429269 7.2515122;marker-mid:none;" sodipodi:revolution="18.821123" sodipodi:radius="68.998032" d="M103.2,6518.4c0.37,0.5-0.43,0.7-0.76,0.6-0.87-0.3-0.89-1.4-0.45-2.1,0.77-1.1,2.44-1.1,3.45-0.3,1.47,1.2,1.37,3.5,0.15,4.8-1.61,1.8-4.43,1.6-6.101,0-2.092-2-1.871-5.4,0.134-7.4,2.417-2.4,6.427-2.1,8.747,0.3,2.72,2.8,2.37,7.4-0.43,10-3.22,3.1-8.406,2.6-11.363-0.5-3.354-3.7-2.878-9.4,0.705-12.7,4.018-3.7,10.388-3.2,13.988,0.8,3.98,4.4,3.38,11.4-0.99,15.3-4.81,4.3-12.365,3.6-16.596-1.1-4.616-5.2-3.884-13.4,1.272-17.9,5.594-4.9,14.334-4.2,19.194,1.4,5.25,6,4.39,15.3-1.55,20.5-6.38,5.6-16.299,4.6-21.796-1.7-5.875-6.8-4.889-17.3,1.835-23.1,7.16-6.2,18.261-5.1,24.391,2,6.5,7.5,5.39,19.2-2.12,25.7-7.94,6.8-20.219,5.6-26.976-2.3-7.132-8.3-5.891-21.2,2.395-28.3,8.724-7.4,22.181-6.1,29.561,2.6,7.76,9.1,6.39,23.1-2.67,30.8-9.5,8.1-24.135,6.7-32.149-2.8-8.385-9.9-6.89-25.1,2.954-33.4,10.283-8.7,26.085-7.2,34.725,3.1,9.01,10.6,7.39,27-3.23,36-11.06,9.3-28.038,7.6-37.305-3.4-9.636-11.4-7.888-29,3.511-38.6,11.839-9.9,29.984-8.1,39.884,3.7,10.26,12.2,8.38,30.9-3.79,41.1-12.62,10.6-31.937,8.7-42.455-3.9-10.886-13-8.885-32.9,4.067-43.7,13.391-11.2,33.878-9.2,45.018,4.2,11.51,13.8,9.39,34.8-4.34,46.3-14.17,11.8-35.824,9.6-47.591-4.5-12.132-14.5-9.879-36.8,4.622-48.9,14.941-12.4,37.769-10.1,50.159,4.8,12.75,15.3,10.37,38.7-4.9,51.4-15.72,13.1-39.709,10.7-52.722-5-13.378-16.1-10.873-40.7,5.176-54,16.488-13.7,41.646-11.1,55.286,5.3,14,16.9,11.37,42.6-5.46,56.6-17.26,14.3-43.581,11.6-57.839-5.6-14.622-17.7-11.865-44.6,5.729-59.1,18.033-15,45.52-12.2,60.4,5.8,15.24,18.4,12.36,46.5-6,61.7-18.81,15.6-47.461,12.6-62.963-6.1-15.864-19.2-12.856-48.5,6.282-64.3,19.576-16.2,49.391-13.1,65.511,6.4,16.49,20,13.36,50.4-6.55,66.8-20.35,16.8-51.33,13.6-68.073-6.7-17.105-20.7-13.847-52.3,6.833-69.3,21.118-17.4,53.26-14.1,70.62,7,17.73,21.5,14.34,54.2-7.11,71.9-21.88,18-55.187,14.5-73.17-7.3-18.345-22.3-14.836-56.1,7.384-74.4,22.658-18.7,57.126-15.1,75.726,7.5,18.96,23,15.33,58.1-7.66,77-23.43,19.3-59.052,15.6-78.275-7.8-19.583-23.8-15.823-60,7.934-79.6,24.197-19.9,60.981-16,80.821,8.1,20.2,24.6,16.32,62-8.21,82.1-24.96,20.5-62.906,16.6-83.367-8.3-20.82-25.4-16.811-63.9,8.485-84.7,25.733-21.1,64.832-17,85.912,8.6,21.44,26.2,17.31,65.8-8.76,87.2-26.5,21.8-66.759,17.6-88.456-8.9-22.057-26.9-17.797-67.7,9.033-89.7,27.269-22.4,68.683-18,91.003,9.2,22.68,27.6,18.29,69.6-9.31,92.2-28.03,23-70.61,18.6-93.543-9.4-23.293-28.4-18.783-71.6,9.582-94.8,28.804-23.6,72.541-19,96.091,9.7,6.5,7.9,11.19,17.3,13.62,27.3" stroke-linecap="butt" transform="translate(10, 6320.358951500003) matrix(-0.179293,0.654509,-0.669124,-0.175376,4536.363,1123.244)" stroke="#000" stroke-dashoffset="0.0000000" sodipodi:argument="-36.806286" sodipodi:cy="6518.4199" sodipodi:cx="103.19778" stroke-miterlimit="4.0000000" sodipodi:expansion="0.98582262" sodipodi:type="spiral" stroke-width="0.60429269" sodipodi:t0="0.0000000" fill="none"/>
+ <text style="writing-mode:lr;text-anchor:start;" font-weight="bold" font-size="8" y="6442.464003500003" x="10" font-family="Sans" font-style="normal" fill="#000000">
+ <tspan y="6442.464003500003" x="10">最後に</tspan>
</text>
- <rect id="d0e844" display="none" height="1000px" width="288" y="6291.4" x="10"/>
+ <rect id="d0e844" display="none" height="1000px" width="288" y="6447.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e844"/>
</flowRegion>
<flowDiv xml:space="preserve">Inkscape のシェイプツールはとても強力です。技術を学び、暇なときに遊んでみることであなたがデザインするときの力になるでしょう。なぜなら簡単なパスの代わりにシェイプを使うことでベクタアートを速く作り、簡単に変更することができるからです。もし、さらなるシェイプの改善の提案があれば、開発者まで連絡してください。</flowDiv>
</flowRoot>
- <g transform="translate(0, 6352.173508500001)">
+ <g transform="translate(0, 6514.072698500003)">
<defs id="defs3" xmlns:cc="http://creativecommons.org/ns#">
<linearGradient id="linearGradient2465" y2="-7528.7" xlink:href="#linearGradient841" gradientUnits="userSpaceOnUse" x2="76.847" gradientTransform="matrix(2.149642,0.000000,0.000000,0.465194,-0.130153,3495.428)" y1="-7656.4" x1="76.847" inkscape:collect="always"/>
<filter id="filter56" height="1.2" width="1.2" color-interpolation-filters="sRGB" y="-0.1" x="-0.1" inkscape:label="Drop shadow, custom">
diff --git a/share/tutorials/tutorial-shapes.sk.svg b/share/tutorials/tutorial-shapes.sk.svg
index 66d3aee6e..e90fd8a3e 100644
--- a/share/tutorials/tutorial-shapes.sk.svg
+++ b/share/tutorials/tutorial-shapes.sk.svg
@@ -318,7 +318,7 @@
<flowRegion>
<use y="0" x="0" xlink:href="#d0e298"/>
</flowRegion>
- <flowDiv xml:space="preserve">Keďže úchopy na zmenu veľkosti sú dva, môžete meniť veľkosť obdĺžnika v akomkoľvek smere alebo ho dokonca posúvať po stanách. Úchopy na zmenu veľkosti vždy zachovávajú polomery zaoblenia.</flowDiv>
+ <flowDiv xml:space="preserve">Keďže úchopy na zmenu veľkosti sú dva, môžete meniť veľkosť obdĺžnika v akomkoľvek smere alebo ho dokonca posúvať po stranách. Úchopy na zmenu veľkosti vždy zachovávajú polomery zaoblenia.</flowDiv>
</flowRoot>
<rect id="d0e301" display="none" height="1000px" width="288" y="2183.4" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
@@ -561,7 +561,7 @@
<flowRegion>
<use y="0" x="0" xlink:href="#d0e436"/>
</flowRegion>
- <flowDiv xml:space="preserve">Všimnite si skupiny úzkych úsekov vľavo v tvare ventilátora. Bolo jednoduché ich vytvoriť pomocou <flowSpan font-style="italic">prichytávania úchopu k uhlu</flowSpan> pri stlačenom <flowSpan font-weight="bold">Ctrl</flowSpan>. Du sú skratky úchopov oblúkov/segmentov:</flowDiv>
+ <flowDiv xml:space="preserve">Všimnite si skupiny úzkych úsekov vľavo v tvare ventilátora. Bolo jednoduché ich vytvoriť pomocou <flowSpan font-style="italic">prichytávania úchopu k uhlu</flowSpan> pri stlačenom <flowSpan font-weight="bold">Ctrl</flowSpan>. Tu sú skratky úchopov oblúkov/segmentov:</flowDiv>
</flowRoot>
<circle cy="0" cx="0" r="2" transform="translate(15, 3357.218699600001)"/>
<rect id="d0e448" display="none" height="1000px" width="258" y="3351.2" x="20"/>
diff --git a/share/tutorials/tutorial-tracing.ja.svg b/share/tutorials/tutorial-tracing.ja.svg
index f8d85f3d0..77501e1bd 100644
--- a/share/tutorials/tutorial-tracing.ja.svg
+++ b/share/tutorials/tutorial-tracing.ja.svg
@@ -50,150 +50,150 @@
</flowRegion>
<flowDiv xml:space="preserve">Inkscape の特徴の一つにビットマップをトレースして &lt;パス&gt; 要素を作成するツールがあります。このチュートリアルはあなたがこのツールがどう動くかを知る助けになるはずです。</flowDiv>
</flowRoot>
- <rect id="d0e16" display="none" height="1000px" width="288" y="77.267" x="10"/>
+ <rect id="d0e16" display="none" height="1000px" width="288" y="77.873" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e16"/>
</flowRegion>
<flowDiv xml:space="preserve">現在 Inkscape はビットマップトレースエンジンに Peter Selinger が制作した Potrace (<flowSpan font-weight="bold" font-family="Sans">potrace.sourceforge.net</flowSpan>) を使用しています。将来的には他のトレーシングエンジンも使えるようになると思いますが、今のところ、この素晴らしいツールは我々にとって必要にして十分です。</flowDiv>
</flowRoot>
- <rect id="d0e22" display="none" height="1000px" width="288" y="128.25" x="10"/>
+ <rect id="d0e22" display="none" height="1000px" width="288" y="132.13" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e22"/>
</flowRegion>
<flowDiv xml:space="preserve">トレースの目的は、オリジナルの画像を忠実に再現することではなく、最終的な完成品を作成することでもないということを覚えておいてください。自動トレーサにそんなことはできません。トレースがすることは、あなたが描く作品の一つの資源としての一連の曲線を提供することなのです。</flowDiv>
</flowRoot>
- <rect id="d0e25" display="none" height="1000px" width="288" y="178.31" x="10"/>
+ <rect id="d0e25" display="none" height="1000px" width="288" y="187.01" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e25"/>
</flowRegion>
<flowDiv xml:space="preserve">Potrace は白黒のビットマップを解釈し、曲線のセットを作成します。入力画像を Potrace が使用できるようにするため、現在 3 タイプのフィルタが用意されています。</flowDiv>
</flowRoot>
- <rect id="d0e28" display="none" height="1000px" width="288" y="218.64" x="10"/>
+ <rect id="d0e28" display="none" height="1000px" width="288" y="228.83" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e28"/>
</flowRegion>
<flowDiv xml:space="preserve">ほとんどの場合、中間像のビットマップの暗いピクセルを、Potrace はより多くトレースします。トレース量が増えると、より多くの CPU 時間を消費し、&lt;パス&gt; 要素は非常に多くなります。まずより小さい中間像で実験し、徐々に暗くして希望する割合や出力パスの複雑さを決めていくことをおすすめします。</flowDiv>
</flowRoot>
- <rect id="d0e31" display="none" height="1000px" width="288" y="269.62" x="10"/>
+ <rect id="d0e31" display="none" height="1000px" width="288" y="283.4" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e31"/>
</flowRegion>
<flowDiv xml:space="preserve">トレーサを使うには、画像を読み込むかインポートし、<flowSpan font-family="Sans">パス &gt; ビットマップをトレース</flowSpan> アイテムを選ぶか、<flowSpan font-weight="bold">Shift+Alt+B</flowSpan> を押します。</flowDiv>
</flowRoot>
- <text id="tracing-f01-ja.svgtext7000" style="writing-mode:lr-tb;text-anchor:start;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 307.11397500000004) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="5.7038479" font-variant="normal" y="99.753128" x="101.47987" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f01-ja.svgtspan7001" y="99.753128" x="101.47987" role="line">トレースダイアログの主なオプション</tspan></text>
- <image id="tracing-f01-ja.svgimage2577" sodipodi:absref="/potrace-ja.png" xlink:href="potrace-ja.png" transform="translate(10, 307.11397500000004) " height="91.738" width="189.28" display="block" y="-0.000017236" x="65.359"/>
- <rect id="d0e50" display="none" height="1000px" width="288" y="419.9" x="10"/>
+ <text id="tracing-f01-ja.svgtext7000" style="writing-mode:lr-tb;text-anchor:start;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 321.674002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="5.7038479" font-variant="normal" y="99.753128" x="101.47987" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f01-ja.svgtspan7001" y="99.753128" x="101.47987" role="line">トレースダイアログの主なオプション</tspan></text>
+ <image id="tracing-f01-ja.svgimage2577" sodipodi:absref="/potrace-ja.png" xlink:href="potrace-ja.png" transform="translate(10, 321.674002) " height="91.738" width="189.28" display="block" y="-0.000017236" x="65.359"/>
+ <rect id="d0e50" display="none" height="1000px" width="288" y="433.71" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e50"/>
</flowRegion>
<flowDiv xml:space="preserve">3 つのフィルタオプションが見えるでしょう:</flowDiv>
</flowRoot>
- <circle cy="0" cx="0" r="2" transform="translate(15, 444.15541750000006)"/>
- <rect id="d0e56" display="none" height="1000px" width="258" y="438.16" x="20"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 457.23788199999996)"/>
+ <rect id="d0e56" display="none" height="1000px" width="258" y="451.24" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e56"/>
</flowRegion>
<flowDiv xml:space="preserve">明るさの境界 しきい値</flowDiv>
</flowRoot>
- <rect id="d0e60" display="none" height="1000px" width="288" y="456.21" x="10"/>
+ <rect id="d0e60" display="none" height="1000px" width="288" y="469.08" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e60"/>
</flowRegion>
<flowDiv xml:space="preserve">これは単にピクセルの赤、青、および緑 (またはグレーのシェード) の合計を黒あるいは白とみなす指標として使用しているだけです。しきい値は 0.0 (黒) から 1.0 (白) が設定できます。高いしきい値を設定すると、少数のピクセルだけが「白」とみなされ、中間像は暗くなります。</flowDiv>
</flowRoot>
- <text id="tracing-f02-ja.svgtext1823" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 514.384542) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.154671" x="69.581543" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f02-ja.svgtspan1824" y="97.154671" x="69.581543" role="line">オリジナル画像</tspan></text>
- <text id="tracing-f02-ja.svgtext1826" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 514.384542) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="158.69894" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f02-ja.svgtspan1827" y="97.378670" x="158.69894" role="line">明るさの境界 しきい値</tspan><tspan id="tracing-f02-ja.svgtspan1829" y="103.37867" x="158.69894" role="line">フィルあり、ストロークなし</tspan></text>
- <text id="tracing-f02-ja.svgtext1483" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 514.384542) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="244.99974" font-family="Bitstream Vera Sans" fill="#000000"><tspan id="tracing-f02-ja.svgtspan1488" y="97.378670" x="244.99974" role="line">明るさの境界 しきい値</tspan><tspan id="tracing-f02-ja.svgtspan1490" y="103.37867" x="244.99974" role="line">ストロークあり、フィルなし</tspan></text>
- <image id="tracing-f02-ja.svgimage1881" sodipodi:absref="/tux.png" xlink:href="tux.png" transform="translate(10, 514.384542) " height="91.143" width="76.965" y="-0.000030566" x="31.099"/>
- <path id="tracing-f02-ja.svgpath1510" d="M143.52,88.292c-0.98-0.462-5.29-1.79-9.59-2.949-4.69-1.268-8.01-2.426-8.31-2.906-0.35-0.559-0.23-1.667,0.4-3.69,0.63-1.993,0.81-3.616,0.59-5.227-0.23-1.699-0.17-2.185,0.24-1.78,0.58,0.578,0.39,5.786-0.3,8.391-0.33,1.249-0.18,1.469,1.38,2.123,0.96,0.402,2.98,0.878,4.49,1.059,1.51,0.18,5.17,0.9,8.13,1.599,5.16,1.219,5.46,1.236,7.17,0.42,2.23-1.056,3.52-3.54,3.06-5.864-0.18-0.912-1.93-4.183-3.88-7.27-6.12-9.695-7.43-10.949-10.05-9.61-1.3,0.662-1.37,0.63-1.67-0.755-0.44-1.973,0.07-3.816,2.05-7.4,0.91-1.671,2.24-4.797,2.94-6.947,1.58-4.861,1.98-5.607,4.63-8.75,1.18-1.393,2.84-3.637,3.69-4.988l1.55-2.455-0.3-9.799c-0.27-8.636-0.2-10.078,0.6-12.155,2.02-5.2943,5.84-7.6314,11.78-7.2033,5.44,0.3915,9.13,2.6265,11.64,7.0429,1.39,2.4446,1.65,3.8166,2.1,11.044,0.38,5.991,0.44,6.24,2.8,10.903,1.33,2.624,3.54,6.058,4.92,7.63,4.74,5.416,7.27,12.192,7.26,19.475,0,4.73-0.04,4.859-1.95,7.733-2.45,3.696-3.51,4.42-6.43,4.42-3.64,0-3.75-0.301-3.78-10.332-0.03-9.592-0.62-12.245-3.68-16.613-0.84-1.194-1.68-2.968-1.86-3.943-0.36-1.872-4.22-10.158-4.98-10.696-0.24-0.174-0.19-0.473,0.12-0.663,0.7-0.434,0.73-3.155,0.04-3.581-0.32-0.201-0.23-0.717,0.26-1.409,1.04-1.49,0.96-3.563-0.24-5.913-1.16-2.267-2.53-2.888-4.54-2.055-1.82,0.756-2.77,2.56-2.44,4.669,0.28,1.844,0.04,2.939-0.65,2.939-0.25,0-0.31-0.377-0.13-0.838,0.28-0.719,0.03-0.798-1.73-0.562l-2.06,0.276,0.25-1.843c0.18-1.383-0.03-2.192-0.85-3.236-2.21-2.801-4.57-1.026-4.57,3.434,0,2.704,0.95,4.697,1.95,4.079,0.44-0.268,0.39-0.653-0.17-1.456-0.91-1.296-1-3.468-0.18-4.286,0.81-0.816,2.26,0.052,2.64,1.586,0.17,0.678,0.45,1.596,0.62,2.039,0.18,0.457,0.05,0.807-0.29,0.807-0.82,0-1.75,1.003-2.78,3.002-0.83,1.615-0.83,1.727,0.09,2.649,2.15,2.147,7.39,1.506,11.85-1.449,1.09-0.722,2.11-1.193,2.25-1.048,0.26,0.26-1.92,1.798-5.04,3.554-0.9,0.506-2.63,0.886-4.04,0.886-2.14,0.001-2.38,0.103-1.84,0.761,0.84,1.012,2.28,0.957,5.87-0.226,2.94-0.967,2.97-0.968,1.73-0.012-3.9,2.997-6.45,3.044-9.62,0.177-2.06-1.856-2.53-1.631-2.53,1.197,0,0.719-0.67,2.352-1.49,3.63-0.82,1.277-1.77,3.462-2.11,4.854-0.34,1.393-1.73,4.811-3.07,7.596-2.53,5.219-3.72,10.589-2.97,13.412,0.21,0.78,2.23,2.794,5.23,5.213,5.27,4.24,6.21,5.742,4.64,7.472-0.49,0.546-1.2,0.992-1.58,0.992-1.88,0,0.64,3.606,3.23,4.611,2.07,0.809,7.95,0.631,10.84-0.329,2.78-0.922,6.39-3.415,8.92-6.156l1.65-1.782v5.145c0,5.79,0.69,7.842,2.93,8.694,2,0.759,4.39,0.138,9.17-2.376,4.89-2.573,5.77-2.838,2.73-0.821-1.17,0.776-3.11,2.335-4.31,3.464-2.93,2.745-3.94,3.222-6.82,3.22-2.62-0.002-5.73-1.476-5.73-2.717,0-1.108-1.67-1.318-10.58-1.325l-8.3-0.007-2.26,1.852c-2.71,2.221-5.89,2.721-8.73,1.373zm30.67-58.699c-1.25-0.92-1.55-0.614-0.79,0.799,0.45,0.848,0.73,0.97,1.18,0.516,0.44-0.452,0.35-0.769-0.39-1.315zm-6.37-22.281c0-0.1228-0.22-0.2233-0.5-0.2233s-0.51,0.2413-0.51,0.5363c0,0.2949,0.23,0.3954,0.51,0.2232,0.28-0.1721,0.5-0.4134,0.5-0.5362zm-41.47,62.658c-0.06-1.419,0.79-3.132,1.55-3.132,0.37,0,0.36,0.236-0.05,0.727-0.33,0.4-0.8,1.369-1.03,2.152-0.39,1.283-0.44,1.308-0.47,0.253zm4.51-3.491c1.71-0.137,2.58-0.525,3.47-1.557,0.66-0.756,1.02-1.033,0.81-0.615-1.02,2.012-1.92,2.531-4.23,2.443l-2.33-0.089,2.28-0.182zm33.11-43.574c-1.09-0.716-1.32-2.655-0.48-3.942,1.47-2.247,3.83-1.298,3.83,1.544,0,2.322-1.66,3.51-3.35,2.398z" transform="translate(10, 514.384542) "/>
- <path id="tracing-f02-ja.svgpath1515" d="M229.82,88.292c-0.98-0.463-5.29-1.79-9.59-2.949-4.69-1.268-8.01-2.426-8.31-2.907-0.35-0.558-0.23-1.666,0.4-3.689,0.63-1.993,0.81-3.616,0.59-5.227-0.23-1.699-0.16-2.185,0.24-1.78,0.58,0.578,0.39,5.786-0.3,8.391-0.33,1.249-0.18,1.469,1.38,2.123,0.96,0.402,2.98,0.878,4.49,1.059,1.51,0.18,5.17,0.9,8.13,1.599,5.16,1.219,5.46,1.236,7.18,0.42,2.22-1.056,3.51-3.54,3.05-5.864-0.18-0.912-1.93-4.183-3.88-7.27-6.12-9.695-7.43-10.949-10.05-9.61-1.3,0.662-1.37,0.63-1.67-0.755-0.44-1.973,0.07-3.816,2.05-7.4,0.92-1.671,2.24-4.797,2.94-6.947,1.58-4.861,1.98-5.607,4.63-8.75,1.18-1.393,2.84-3.637,3.69-4.988l1.55-2.455-0.3-9.799c-0.27-8.636-0.19-10.078,0.6-12.155,2.02-5.2943,5.84-7.6314,11.79-7.2033,5.43,0.3914,9.12,2.6265,11.63,7.0429,1.39,2.4446,1.65,3.8166,2.1,11.044,0.38,5.991,0.44,6.24,2.8,10.903,1.33,2.624,3.55,6.058,4.92,7.63,4.74,5.416,7.27,12.192,7.26,19.475,0,4.73-0.03,4.859-1.94,7.733-2.46,3.696-3.52,4.42-6.44,4.42-3.63,0-3.75-0.302-3.78-10.332-0.03-9.592-0.62-12.245-3.68-16.613-0.84-1.194-1.68-2.968-1.86-3.943-0.36-1.872-4.22-10.158-4.98-10.696-0.24-0.174-0.19-0.473,0.12-0.663,0.7-0.434,0.73-3.155,0.04-3.581-0.32-0.201-0.23-0.717,0.26-1.409,1.04-1.49,0.96-3.563-0.24-5.913-1.16-2.267-2.53-2.888-4.54-2.055-1.82,0.756-2.77,2.56-2.44,4.669,0.28,1.844,0.04,2.939-0.65,2.939-0.25,0-0.31-0.377-0.13-0.838,0.28-0.719,0.03-0.798-1.73-0.562l-2.05,0.276,0.24-1.843c0.19-1.383-0.03-2.192-0.85-3.236-2.21-2.801-4.57-1.026-4.57,3.434,0,2.704,0.96,4.697,1.95,4.079,0.44-0.268,0.39-0.653-0.17-1.456-0.91-1.296-1-3.468-0.18-4.286,0.81-0.816,2.26,0.052,2.64,1.586,0.17,0.678,0.45,1.596,0.62,2.039,0.18,0.457,0.05,0.807-0.28,0.807-0.82,0-1.75,1.003-2.79,3.002-0.83,1.615-0.83,1.727,0.09,2.649,2.15,2.147,7.39,1.506,11.85-1.449,1.1-0.722,2.11-1.193,2.25-1.048,0.26,0.259-1.92,1.798-5.04,3.554-0.9,0.506-2.63,0.886-4.04,0.886-2.13,0.001-2.38,0.103-1.84,0.761,0.84,1.012,2.28,0.957,5.88-0.226,2.93-0.967,2.96-0.968,1.72-0.012-3.89,2.997-6.45,3.044-9.62,0.177-2.06-1.856-2.53-1.631-2.53,1.197,0,0.719-0.67,2.352-1.49,3.63-0.82,1.277-1.77,3.462-2.11,4.854-0.34,1.393-1.72,4.811-3.07,7.596-2.53,5.219-3.72,10.589-2.97,13.412,0.21,0.78,2.23,2.794,5.23,5.213,5.27,4.24,6.21,5.742,4.64,7.472-0.49,0.546-1.2,0.992-1.58,0.992-1.88,0,0.64,3.606,3.23,4.611,2.07,0.809,7.95,0.631,10.84-0.329,2.78-0.922,6.39-3.415,8.92-6.156l1.65-1.782v5.145c0,5.79,0.69,7.842,2.93,8.694,2,0.759,4.39,0.138,9.17-2.376,4.89-2.573,5.77-2.838,2.73-0.821-1.17,0.776-3.11,2.335-4.31,3.464-2.93,2.745-3.94,3.222-6.82,3.22-2.62-0.002-5.73-1.476-5.73-2.717,0-1.108-1.67-1.318-10.58-1.325l-8.3-0.007-2.26,1.852c-2.71,2.221-5.89,2.721-8.73,1.373zm30.67-58.699c-1.25-0.92-1.55-0.614-0.79,0.799,0.45,0.848,0.73,0.97,1.18,0.516,0.44-0.452,0.35-0.769-0.39-1.315zm-6.37-22.281c0-0.1228-0.22-0.2233-0.5-0.2233s-0.51,0.2413-0.51,0.5362c0,0.295,0.23,0.3954,0.51,0.2233s0.5-0.4134,0.5-0.5362zm-41.47,62.658c-0.06-1.419,0.79-3.132,1.55-3.132,0.37,0,0.36,0.236-0.05,0.727-0.33,0.4-0.8,1.369-1.03,2.152-0.39,1.283-0.43,1.308-0.47,0.253zm4.51-3.491c1.71-0.137,2.58-0.525,3.47-1.557,0.66-0.756,1.02-1.033,0.81-0.615-1.02,2.012-1.92,2.531-4.23,2.443l-2.33-0.089,2.28-0.182zm33.11-43.574c-1.09-0.716-1.32-2.655-0.48-3.942,1.47-2.247,3.83-1.298,3.83,1.544,0,2.322-1.66,3.51-3.35,2.398z" transform="translate(10, 514.384542) " stroke="#000" stroke-miterlimit="4.0000000" stroke-width="0.37500000" fill="none"/>
- <circle cy="0" cx="0" r="2" transform="translate(15, 636.847222)"/>
- <rect id="d0e76" display="none" height="1000px" width="258" y="630.85" x="20"/>
+ <text id="tracing-f02-ja.svgtext1823" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 531.530732) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.154671" x="69.581543" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f02-ja.svgtspan1824" y="97.154671" x="69.581543" role="line">オリジナル画像</tspan></text>
+ <text id="tracing-f02-ja.svgtext1826" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 531.530732) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="158.69894" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f02-ja.svgtspan1827" y="97.378670" x="158.69894" role="line">明るさの境界 しきい値</tspan><tspan id="tracing-f02-ja.svgtspan1829" y="103.37867" x="158.69894" role="line">フィルあり、ストロークなし</tspan></text>
+ <text id="tracing-f02-ja.svgtext1483" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 531.530732) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="244.99974" font-family="Bitstream Vera Sans" fill="#000000"><tspan id="tracing-f02-ja.svgtspan1488" y="97.378670" x="244.99974" role="line">明るさの境界 しきい値</tspan><tspan id="tracing-f02-ja.svgtspan1490" y="103.37867" x="244.99974" role="line">ストロークあり、フィルなし</tspan></text>
+ <image id="tracing-f02-ja.svgimage1881" sodipodi:absref="/tux.png" xlink:href="tux.png" transform="translate(10, 531.530732) " height="91.143" width="76.965" y="-0.000030566" x="31.099"/>
+ <path id="tracing-f02-ja.svgpath1510" d="M143.52,88.292c-0.98-0.462-5.29-1.79-9.59-2.949-4.69-1.268-8.01-2.426-8.31-2.906-0.35-0.559-0.23-1.667,0.4-3.69,0.63-1.993,0.81-3.616,0.59-5.227-0.23-1.699-0.17-2.185,0.24-1.78,0.58,0.578,0.39,5.786-0.3,8.391-0.33,1.249-0.18,1.469,1.38,2.123,0.96,0.402,2.98,0.878,4.49,1.059,1.51,0.18,5.17,0.9,8.13,1.599,5.16,1.219,5.46,1.236,7.17,0.42,2.23-1.056,3.52-3.54,3.06-5.864-0.18-0.912-1.93-4.183-3.88-7.27-6.12-9.695-7.43-10.949-10.05-9.61-1.3,0.662-1.37,0.63-1.67-0.755-0.44-1.973,0.07-3.816,2.05-7.4,0.91-1.671,2.24-4.797,2.94-6.947,1.58-4.861,1.98-5.607,4.63-8.75,1.18-1.393,2.84-3.637,3.69-4.988l1.55-2.455-0.3-9.799c-0.27-8.636-0.2-10.078,0.6-12.155,2.02-5.2943,5.84-7.6314,11.78-7.2033,5.44,0.3915,9.13,2.6265,11.64,7.0429,1.39,2.4446,1.65,3.8166,2.1,11.044,0.38,5.991,0.44,6.24,2.8,10.903,1.33,2.624,3.54,6.058,4.92,7.63,4.74,5.416,7.27,12.192,7.26,19.475,0,4.73-0.04,4.859-1.95,7.733-2.45,3.696-3.51,4.42-6.43,4.42-3.64,0-3.75-0.301-3.78-10.332-0.03-9.592-0.62-12.245-3.68-16.613-0.84-1.194-1.68-2.968-1.86-3.943-0.36-1.872-4.22-10.158-4.98-10.696-0.24-0.174-0.19-0.473,0.12-0.663,0.7-0.434,0.73-3.155,0.04-3.581-0.32-0.201-0.23-0.717,0.26-1.409,1.04-1.49,0.96-3.563-0.24-5.913-1.16-2.267-2.53-2.888-4.54-2.055-1.82,0.756-2.77,2.56-2.44,4.669,0.28,1.844,0.04,2.939-0.65,2.939-0.25,0-0.31-0.377-0.13-0.838,0.28-0.719,0.03-0.798-1.73-0.562l-2.06,0.276,0.25-1.843c0.18-1.383-0.03-2.192-0.85-3.236-2.21-2.801-4.57-1.026-4.57,3.434,0,2.704,0.95,4.697,1.95,4.079,0.44-0.268,0.39-0.653-0.17-1.456-0.91-1.296-1-3.468-0.18-4.286,0.81-0.816,2.26,0.052,2.64,1.586,0.17,0.678,0.45,1.596,0.62,2.039,0.18,0.457,0.05,0.807-0.29,0.807-0.82,0-1.75,1.003-2.78,3.002-0.83,1.615-0.83,1.727,0.09,2.649,2.15,2.147,7.39,1.506,11.85-1.449,1.09-0.722,2.11-1.193,2.25-1.048,0.26,0.26-1.92,1.798-5.04,3.554-0.9,0.506-2.63,0.886-4.04,0.886-2.14,0.001-2.38,0.103-1.84,0.761,0.84,1.012,2.28,0.957,5.87-0.226,2.94-0.967,2.97-0.968,1.73-0.012-3.9,2.997-6.45,3.044-9.62,0.177-2.06-1.856-2.53-1.631-2.53,1.197,0,0.719-0.67,2.352-1.49,3.63-0.82,1.277-1.77,3.462-2.11,4.854-0.34,1.393-1.73,4.811-3.07,7.596-2.53,5.219-3.72,10.589-2.97,13.412,0.21,0.78,2.23,2.794,5.23,5.213,5.27,4.24,6.21,5.742,4.64,7.472-0.49,0.546-1.2,0.992-1.58,0.992-1.88,0,0.64,3.606,3.23,4.611,2.07,0.809,7.95,0.631,10.84-0.329,2.78-0.922,6.39-3.415,8.92-6.156l1.65-1.782v5.145c0,5.79,0.69,7.842,2.93,8.694,2,0.759,4.39,0.138,9.17-2.376,4.89-2.573,5.77-2.838,2.73-0.821-1.17,0.776-3.11,2.335-4.31,3.464-2.93,2.745-3.94,3.222-6.82,3.22-2.62-0.002-5.73-1.476-5.73-2.717,0-1.108-1.67-1.318-10.58-1.325l-8.3-0.007-2.26,1.852c-2.71,2.221-5.89,2.721-8.73,1.373zm30.67-58.699c-1.25-0.92-1.55-0.614-0.79,0.799,0.45,0.848,0.73,0.97,1.18,0.516,0.44-0.452,0.35-0.769-0.39-1.315zm-6.37-22.281c0-0.1228-0.22-0.2233-0.5-0.2233s-0.51,0.2413-0.51,0.5363c0,0.2949,0.23,0.3954,0.51,0.2232,0.28-0.1721,0.5-0.4134,0.5-0.5362zm-41.47,62.658c-0.06-1.419,0.79-3.132,1.55-3.132,0.37,0,0.36,0.236-0.05,0.727-0.33,0.4-0.8,1.369-1.03,2.152-0.39,1.283-0.44,1.308-0.47,0.253zm4.51-3.491c1.71-0.137,2.58-0.525,3.47-1.557,0.66-0.756,1.02-1.033,0.81-0.615-1.02,2.012-1.92,2.531-4.23,2.443l-2.33-0.089,2.28-0.182zm33.11-43.574c-1.09-0.716-1.32-2.655-0.48-3.942,1.47-2.247,3.83-1.298,3.83,1.544,0,2.322-1.66,3.51-3.35,2.398z" transform="translate(10, 531.530732) "/>
+ <path id="tracing-f02-ja.svgpath1515" d="M229.82,88.292c-0.98-0.463-5.29-1.79-9.59-2.949-4.69-1.268-8.01-2.426-8.31-2.907-0.35-0.558-0.23-1.666,0.4-3.689,0.63-1.993,0.81-3.616,0.59-5.227-0.23-1.699-0.16-2.185,0.24-1.78,0.58,0.578,0.39,5.786-0.3,8.391-0.33,1.249-0.18,1.469,1.38,2.123,0.96,0.402,2.98,0.878,4.49,1.059,1.51,0.18,5.17,0.9,8.13,1.599,5.16,1.219,5.46,1.236,7.18,0.42,2.22-1.056,3.51-3.54,3.05-5.864-0.18-0.912-1.93-4.183-3.88-7.27-6.12-9.695-7.43-10.949-10.05-9.61-1.3,0.662-1.37,0.63-1.67-0.755-0.44-1.973,0.07-3.816,2.05-7.4,0.92-1.671,2.24-4.797,2.94-6.947,1.58-4.861,1.98-5.607,4.63-8.75,1.18-1.393,2.84-3.637,3.69-4.988l1.55-2.455-0.3-9.799c-0.27-8.636-0.19-10.078,0.6-12.155,2.02-5.2943,5.84-7.6314,11.79-7.2033,5.43,0.3914,9.12,2.6265,11.63,7.0429,1.39,2.4446,1.65,3.8166,2.1,11.044,0.38,5.991,0.44,6.24,2.8,10.903,1.33,2.624,3.55,6.058,4.92,7.63,4.74,5.416,7.27,12.192,7.26,19.475,0,4.73-0.03,4.859-1.94,7.733-2.46,3.696-3.52,4.42-6.44,4.42-3.63,0-3.75-0.302-3.78-10.332-0.03-9.592-0.62-12.245-3.68-16.613-0.84-1.194-1.68-2.968-1.86-3.943-0.36-1.872-4.22-10.158-4.98-10.696-0.24-0.174-0.19-0.473,0.12-0.663,0.7-0.434,0.73-3.155,0.04-3.581-0.32-0.201-0.23-0.717,0.26-1.409,1.04-1.49,0.96-3.563-0.24-5.913-1.16-2.267-2.53-2.888-4.54-2.055-1.82,0.756-2.77,2.56-2.44,4.669,0.28,1.844,0.04,2.939-0.65,2.939-0.25,0-0.31-0.377-0.13-0.838,0.28-0.719,0.03-0.798-1.73-0.562l-2.05,0.276,0.24-1.843c0.19-1.383-0.03-2.192-0.85-3.236-2.21-2.801-4.57-1.026-4.57,3.434,0,2.704,0.96,4.697,1.95,4.079,0.44-0.268,0.39-0.653-0.17-1.456-0.91-1.296-1-3.468-0.18-4.286,0.81-0.816,2.26,0.052,2.64,1.586,0.17,0.678,0.45,1.596,0.62,2.039,0.18,0.457,0.05,0.807-0.28,0.807-0.82,0-1.75,1.003-2.79,3.002-0.83,1.615-0.83,1.727,0.09,2.649,2.15,2.147,7.39,1.506,11.85-1.449,1.1-0.722,2.11-1.193,2.25-1.048,0.26,0.259-1.92,1.798-5.04,3.554-0.9,0.506-2.63,0.886-4.04,0.886-2.13,0.001-2.38,0.103-1.84,0.761,0.84,1.012,2.28,0.957,5.88-0.226,2.93-0.967,2.96-0.968,1.72-0.012-3.89,2.997-6.45,3.044-9.62,0.177-2.06-1.856-2.53-1.631-2.53,1.197,0,0.719-0.67,2.352-1.49,3.63-0.82,1.277-1.77,3.462-2.11,4.854-0.34,1.393-1.72,4.811-3.07,7.596-2.53,5.219-3.72,10.589-2.97,13.412,0.21,0.78,2.23,2.794,5.23,5.213,5.27,4.24,6.21,5.742,4.64,7.472-0.49,0.546-1.2,0.992-1.58,0.992-1.88,0,0.64,3.606,3.23,4.611,2.07,0.809,7.95,0.631,10.84-0.329,2.78-0.922,6.39-3.415,8.92-6.156l1.65-1.782v5.145c0,5.79,0.69,7.842,2.93,8.694,2,0.759,4.39,0.138,9.17-2.376,4.89-2.573,5.77-2.838,2.73-0.821-1.17,0.776-3.11,2.335-4.31,3.464-2.93,2.745-3.94,3.222-6.82,3.22-2.62-0.002-5.73-1.476-5.73-2.717,0-1.108-1.67-1.318-10.58-1.325l-8.3-0.007-2.26,1.852c-2.71,2.221-5.89,2.721-8.73,1.373zm30.67-58.699c-1.25-0.92-1.55-0.614-0.79,0.799,0.45,0.848,0.73,0.97,1.18,0.516,0.44-0.452,0.35-0.769-0.39-1.315zm-6.37-22.281c0-0.1228-0.22-0.2233-0.5-0.2233s-0.51,0.2413-0.51,0.5362c0,0.295,0.23,0.3954,0.51,0.2233s0.5-0.4134,0.5-0.5362zm-41.47,62.658c-0.06-1.419,0.79-3.132,1.55-3.132,0.37,0,0.36,0.236-0.05,0.727-0.33,0.4-0.8,1.369-1.03,2.152-0.39,1.283-0.43,1.308-0.47,0.253zm4.51-3.491c1.71-0.137,2.58-0.525,3.47-1.557,0.66-0.756,1.02-1.033,0.81-0.615-1.02,2.012-1.92,2.531-4.23,2.443l-2.33-0.089,2.28-0.182zm33.11-43.574c-1.09-0.716-1.32-2.655-0.48-3.942,1.47-2.247,3.83-1.298,3.83,1.544,0,2.322-1.66,3.51-3.35,2.398z" transform="translate(10, 531.530732) " stroke="#000" stroke-miterlimit="4.0000000" stroke-width="0.37500000" fill="none"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 653.4674319999999)"/>
+ <rect id="d0e76" display="none" height="1000px" width="258" y="647.47" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e76"/>
</flowRegion>
<flowDiv xml:space="preserve">最適なエッジ検出</flowDiv>
</flowRoot>
- <rect id="d0e80" display="none" height="1000px" width="288" y="648.95" x="10"/>
+ <rect id="d0e80" display="none" height="1000px" width="288" y="665.28" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e80"/>
</flowRegion>
<flowDiv xml:space="preserve">これは類似するコントラストの平衡線を素早く検出する手段として、J. Canny が考案したエッジ検出アルゴリズムを使用しています。これは明るさのしきい値の結果よりもオリジナルの情報を残さない中間像を生成しますが、おそらく他では無視される曲線情報を提供します。ここでのしきい値の設定 (0.0 – 1.0) は出力に含むコントラストのエッジに隣接したピクセルを調節します。この設定で出力のエッジの暗さや太さを調整できます。</flowDiv>
</flowRoot>
- <text id="tracing-f03-ja.svgtext1492" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 729.2776405) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.154671" x="69.581543" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f03-ja.svgtspan1493" y="97.154671" x="69.581543" role="line">オリジナル画像</tspan></text>
- <text id="tracing-f03-ja.svgtext1495" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 729.2776405) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="157.95474" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f03-ja.svgtspan1496" y="97.378670" x="157.95474" role="line">エッジ検出</tspan><tspan id="tracing-f03-ja.svgtspan1498" y="103.37867" x="157.95474" role="line">フィルあり、ストロークなし</tspan></text>
- <text id="tracing-f03-ja.svgtext1500" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 729.2776405) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="244.99974" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f03-ja.svgtspan1501" y="97.378670" x="244.99974" role="line">エッジ検出</tspan><tspan id="tracing-f03-ja.svgtspan1503" y="103.37867" x="244.99974" role="line">ストロークあり、フィルなし</tspan></text>
- <image id="tracing-f03-ja.svgimage1508" sodipodi:absref="/tux.png" xlink:href="tux.png" transform="translate(10, 729.2776405) " height="91.143" width="76.965" y="0.000036133" x="31.099"/>
- <path id="tracing-f03-ja.svgpath4003" d="M139.28,89.101c-1.22-0.554-3.5-1.363-5.06-1.797-9.19-2.553-12.03-3.428-12.59-3.88-0.83-0.662-0.8-3.17,0.08-5.676,0.47-1.351,0.61-3.264,0.43-5.882-0.24-3.484-0.16-3.99,0.81-4.96,0.79-0.784,1.71-1.08,3.37-1.08,3.12,0,4.04-1.136,4.04-4.981,0-2.439,0.35-3.585,2.1-6.945,1.15-2.214,2.43-5.164,2.85-6.556,1.28-4.328,2.29-6.298,4.6-9.018,1.23-1.446,2.92-3.713,3.75-5.039l1.52-2.411-0.27-9.833c-0.25-9.303-0.2-9.982,0.85-12.583,2.03-4.9984,5.81-7.4469,11.48-7.4469,6.48,0,11.64,3.1302,14.06,8.5268,1.11,2.4645,1.4,4.1035,1.75,9.6405,0.42,6.617,0.44,6.711,2.84,11.441,1.33,2.623,3.54,6.054,4.91,7.624,2.84,3.246,3.82,5.006,5.73,10.332,1.53,4.27,2.16,10.332,1.41,13.56-0.38,1.63-0.34,2.348,0.19,3.038,0.37,0.497,0.69,1.538,0.7,2.314,0.02,1.92,1.27,3.673,3.89,5.479,1.73,1.193,2.2,1.822,2.2,2.968,0,2.463-0.48,2.996-4.94,5.47-2.37,1.317-5.37,3.394-6.65,4.614-3.43,3.266-5.03,4.106-7.8,4.109-2.71,0.002-5.83-1.368-6.82-2.995-0.6-1.001-1.06-1.054-9.12-1.054h-8.49l-1.83,1.51c-3.38,2.786-6.23,3.216-9.99,1.511zm8.76-3.212l2.24-1.835,9.54-0.004,9.53-0.005,0.07-4.081,0.07-4.082-1.08,0.985c-3.69,3.353-9.68,5.436-14.47,5.033-1.55-0.13-3.24-0.417-3.76-0.637-0.79-0.332-0.89-0.228-0.62,0.619,0.21,0.663-0.05,1.441-0.73,2.228-0.98,1.129-1.03,1.139-0.76,0.148,0.16-0.585-0.05-1.708-0.46-2.496s-0.62-1.625-0.48-1.861c0.44-0.698-0.91-3.24-1.98-3.739-0.54-0.254-2.23-2.513-3.75-5.02-3.51-5.808-6.01-8.389-7.75-8.022-0.69,0.147-1.72,0.984-2.28,1.861-0.84,1.304-1.47,1.657-3.47,1.944-1.35,0.193-2.77,0.474-3.17,0.625-1.2,0.464-1.66,2.55-1.24,5.669,0.29,2.149,0.19,3.693-0.36,5.654-0.53,1.858-0.61,2.86-0.25,3.221,0.29,0.288,3.59,1.296,7.33,2.239s7.81,2.185,9.05,2.76c3.22,1.5,5.94,1.128,8.78-1.204zm-4.77-0.013c0-0.111,0.8-0.673,1.78-1.248,1.38-0.819,1.77-0.889,1.77-0.321,0,0.398-0.44,0.96-0.98,1.248-0.97,0.517-2.57,0.717-2.57,0.321zm38.26-0.594c1.83-1.552,4.85-3.626,6.71-4.607,3.7-1.945,5.67-3.524,5.67-4.533,0-0.356-0.99-1.329-2.2-2.162-2.48-1.705-3.88-3.555-3.88-5.132,0-0.585-0.25-1.535-0.56-2.111-0.53-1-0.65-0.946-2.47,1.173-1.91,2.211-1.93,2.22-5.31,2.22-2.95,0-3.52-0.155-4.36-1.196-0.53-0.657-0.97-1.94-0.97-2.849,0-3.455-2.73-3.018-3.12,0.5-0.09,0.836-0.4,1.405-0.68,1.266-0.6-0.304-0.35-3.549,0.34-4.4,0.27-0.332,0.98-0.673,1.57-0.76,3.17-0.466,1.93-12.992-1.84-18.601-0.68-0.995-1.5-2.721-1.84-3.835s-1.44-3.621-2.44-5.57c-1.43-2.8-1.85-4.236-1.96-6.836-0.08-1.81-0.18-3.633-0.22-4.05-0.05-0.418,0.08-1.216,0.28-1.773,0.19-0.557,0.01-0.414-0.42,0.317-1.37,2.358-4.02,2.355-4.96-0.006-0.3-0.758-0.63-1.053-0.76-0.69-0.31,0.823-4.02,0.827-4.53,0.005-0.26-0.424-0.48-0.218-0.68,0.633-0.41,1.751-2.65,2-3.75,0.417-0.45-0.635-0.81-0.933-0.8-0.662s0.34,0.915,0.73,1.431c0.52,0.684,0.58,1.285,0.23,2.215-0.5,1.317-0.13,1.853,2.24,3.226,1.29,0.752,0.67,1.177-0.68,0.456-2.02-1.083-1.56-0.169,0.88,1.739,2.87,2.25,4.35,2.216,8.27-0.192,1.38-0.851,2.73-1.547,3.01-1.547,1.11,0,0.34,0.855-2.38,2.659-4.1,2.722-8.04,2.603-10.4-0.313-0.87-1.076-0.88-1.074-0.89,0.548,0,0.896-0.79,3.061-1.75,4.811s-1.83,4.12-1.94,5.266-0.71,2.794-1.33,3.661c-2.49,3.501-4.25,8.305-4.5,12.264l-0.23,3.832,4.62,3.687c2.55,2.028,4.97,4.171,5.38,4.762,1.15,1.648,0.93,3.684-0.56,5.062l-1.31,1.215,1.4,1.095c1.86,1.464,3.13,1.73,7.18,1.496,4.42-0.256,7.58-1.788,11.59-5.612l3.11-2.973,0.36,2.618c0.44,3.173-0.17,11.231-0.81,10.833-1-0.619-0.38,1.415,0.78,2.583,1.02,1.02,1.75,1.243,4.05,1.243,2.66,0,2.96-0.138,6.13-2.823zm-33.7-12.607c0-0.342-1.31-1.753-2.91-3.135-3.42-2.953-4.87-3.876-3.37-2.15,0.58,0.671,1.58,2.132,2.23,3.246,1.87,3.206,2.58,3.885,3.37,3.227,0.37-0.311,0.68-0.846,0.68-1.188zm35.75-6.974c1.8-1.894,2.12-2.584,2.41-5.207,0.19-1.663,0.12-4.163-0.14-5.555-1.04-5.331-4.05-12.32-6.13-14.178-1.89-1.702-5.11-6.786-6.9-10.916-1.37-3.17-1.7-4.584-1.71-7.389-0.01-5.935-0.86-10.132-2.66-13.261-1.38-2.3983-2.12-3.0964-4.57-4.2833-7.06-3.4339-12.97-1.7826-15.86,4.4354-0.83,1.7852-1.18,3.3892-1.14,5.3372,0.03,1.532,0.17,2.329,0.3,1.772,0.42-1.67,1.19-2.278,2.92-2.278,1.82,0,4.26,1.891,4.39,3.394,0.04,0.5,0.1,1.249,0.13,1.663s0.45,0.829,0.93,0.922c0.62,0.119,0.8-0.062,0.59-0.605-0.47-1.232,0.74-4.204,2.08-5.08,1.56-1.022,4.25-1.027,5.7-0.01,2.19,1.532,2.69,3.346,2.51,9.154-0.16,5.245-0.12,5.466,1.52,8.732,0.93,1.842,2.05,4.578,2.49,6.08s1.46,3.779,2.27,5.06c2.62,4.128,3.49,8.167,3.44,15.997-0.03,6.023,0.08,7.073,0.88,7.952,1.45,1.604,4.02,0.922,6.55-1.736zm-0.47-2.238c-0.19-0.186-0.34-0.573-0.34-0.861,0-0.317,0.24-0.288,0.6,0.076,0.33,0.329,0.48,0.717,0.34,0.861-0.15,0.143-0.42,0.109-0.6-0.076zm1.47-1.114c-0.21-0.353-0.26-0.778-0.09-0.945,0.45-0.454,0.95,0.213,0.7,0.947-0.17,0.515-0.29,0.514-0.61-0.002zm-16.27-31.179c-0.96-1.464-0.8-3.56,0.28-3.607,2.28-0.098,4.32,2.26,3.67,4.23-0.38,1.133-3.08,0.707-3.95-0.623zm1.89-1.405c-0.36-0.363-0.6-0.393-0.6-0.076,0,0.676,0.6,1.275,0.94,0.937,0.14-0.144-0.01-0.531-0.34-0.861zm-8.36-19.976c-0.19-0.1857-0.34-1.2111-0.34-2.2786,0-1.8673,0.07-1.941,1.71-1.941,0.94,0,1.94,0.2848,2.22,0.6329,0.7,0.8774,0.45,2.8983-0.42,3.4506-0.85,0.5396-2.69,0.6176-3.17,0.1361zm2.19-2.2241c0-0.262-0.22-0.4765-0.5-0.4765s-0.51,0.3553-0.51,0.7895c0,0.4341,0.23,0.6485,0.51,0.4764s0.5-0.5273,0.5-0.7894zm-25.2,56.037c-1.44-1.649-1.49-1.867-1.25-5.443,0.26-3.833,0.74-5.369,3.87-12.334,0.99-2.228,1.81-4.479,1.82-5.001,0-0.523,0.92-2.602,2.03-4.62,2.49-4.512,2.67-5.564,0.26-1.572-0.97,1.609-2.64,3.988-3.72,5.287-2.39,2.873-2.76,3.559-4.45,8.271-0.73,2.041-2.1,5.243-3.04,7.116-2.11,4.206-2.26,5.927-0.47,5.585,0.95-0.182,1.8,0.297,3.67,2.084,2.89,2.76,3.35,2.985,1.28,0.627zm-3.66-4.95c0-1.843,0.22-1.777,0.7,0.211,0.2,0.827,0.12,1.393-0.18,1.393-0.29,0-0.52-0.722-0.52-1.604zm12.5-30.17c-0.12-0.487-0.23-0.088-0.23,0.886,0,0.975,0.11,1.374,0.23,0.886,0.13-0.487,0.13-1.284,0-1.772zm-0.55-5.053c-0.16-0.168-0.28,0.131-0.26,0.665,0.02,0.59,0.14,0.71,0.3,0.306,0.15-0.366,0.13-0.802-0.04-0.971zm3.3-3.01c-0.44-0.759-0.54-0.781-0.55-0.123-0.01,0.853,0.52,1.621,0.88,1.262,0.12-0.118-0.03-0.631-0.33-1.139zm11.79,0.938c0.14-0.229-0.19-0.796-0.73-1.261-0.93-0.793-0.99-0.788-0.99,0.079,0,1.402,1.11,2.166,1.72,1.182zm-9.52-2.485c-0.16-0.168-0.28,0.131-0.26,0.665,0.02,0.59,0.14,0.71,0.3,0.306,0.15-0.366,0.13-0.803-0.04-0.971zm10.8-1.439c-0.63-0.676-1.61-1.23-2.16-1.23-1.1,0-2.87,1.357-2.87,2.201,0,0.288,0.29,0.168,0.64-0.267,1.42-1.782,4.88-1.084,4.97,1.006,0.03,0.583,0.13,0.644,0.31,0.189,0.15-0.368-0.25-1.223-0.89-1.899zm-12.94-0.217c0.34,0,0.94,0.285,1.33,0.633,0.61,0.538,0.61,0.501,0.04-0.253-0.37-0.488-1.05-0.886-1.52-0.886-0.91,0-2.06,0.928-2.06,1.656,0,0.243,0.36,0.083,0.79-0.354,0.44-0.438,1.08-0.796,1.42-0.796z" transform="translate(10, 729.2776405) "/>
- <path id="tracing-f03-ja.svgpath4004" d="M226.33,89.101c-1.22-0.554-3.5-1.363-5.07-1.797-9.18-2.553-12.02-3.428-12.59-3.88-0.83-0.662-0.79-3.17,0.08-5.676,0.47-1.351,0.61-3.264,0.43-5.882-0.24-3.484-0.15-3.99,0.82-4.96,0.78-0.784,1.71-1.08,3.36-1.08,3.12,0,4.05-1.136,4.05-4.981,0-2.439,0.34-3.585,2.09-6.945,1.16-2.214,2.44-5.164,2.85-6.556,1.29-4.328,2.29-6.298,4.61-9.018,1.22-1.446,2.91-3.713,3.75-5.039l1.52-2.411-0.27-9.833c-0.25-9.303-0.21-9.982,0.85-12.583,2.03-4.9984,5.8-7.4469,11.48-7.4469,6.47,0,11.63,3.1302,14.05,8.5268,1.11,2.4645,1.41,4.1035,1.76,9.6405,0.41,6.617,0.44,6.711,2.83,11.441,1.33,2.623,3.54,6.054,4.92,7.624,2.84,3.246,3.81,5.006,5.72,10.332,1.53,4.27,2.17,10.332,1.41,13.56-0.38,1.63-0.33,2.348,0.19,3.038,0.38,0.497,0.7,1.538,0.7,2.314,0.03,1.92,1.27,3.673,3.9,5.479,1.73,1.193,2.2,1.822,2.2,2.968,0,2.463-0.48,2.996-4.94,5.47-2.38,1.317-5.37,3.394-6.66,4.614-3.43,3.266-5.02,4.106-7.79,4.109-2.72,0.002-5.84-1.368-6.82-2.995-0.61-1.001-1.07-1.054-9.13-1.054h-8.49l-1.83,1.51c-3.38,2.786-6.22,3.216-9.98,1.511zm8.76-3.212l2.24-1.835,9.53-0.004,9.54-0.005,0.07-4.081,0.07-4.082-1.09,0.985c-3.68,3.353-9.67,5.436-14.47,5.033-1.55-0.13-3.24-0.417-3.76-0.637-0.78-0.332-0.89-0.228-0.62,0.619,0.21,0.663-0.04,1.441-0.73,2.228-0.98,1.129-1.03,1.139-0.76,0.148,0.16-0.585-0.04-1.708-0.45-2.496s-0.63-1.625-0.48-1.861c0.43-0.698-0.92-3.24-1.98-3.739-0.55-0.254-2.23-2.513-3.75-5.02-3.52-5.808-6.01-8.389-7.75-8.022-0.7,0.147-1.73,0.984-2.29,1.861-0.83,1.304-1.46,1.657-3.47,1.944-1.34,0.193-2.77,0.474-3.16,0.625-1.21,0.464-1.67,2.55-1.24,5.669,0.29,2.149,0.19,3.693-0.37,5.654-0.53,1.858-0.6,2.86-0.24,3.221,0.29,0.288,3.58,1.296,7.33,2.239,3.74,0.943,7.81,2.185,9.04,2.76,3.22,1.5,5.94,1.128,8.79-1.204zm-4.77-0.013c0-0.111,0.8-0.673,1.77-1.248,1.39-0.819,1.77-0.889,1.77-0.321,0,0.398-0.44,0.96-0.98,1.248-0.96,0.517-2.56,0.717-2.56,0.321zm38.25-0.594c1.83-1.552,4.85-3.626,6.72-4.607,3.69-1.945,5.66-3.524,5.66-4.533,0-0.356-0.99-1.329-2.2-2.162-2.48-1.705-3.87-3.555-3.87-5.132,0-0.585-0.25-1.535-0.56-2.111-0.54-1-0.65-0.946-2.48,1.173-1.9,2.211-1.92,2.22-5.3,2.22-2.96,0-3.52-0.155-4.37-1.196-0.53-0.657-0.96-1.94-0.96-2.849,0-3.455-2.73-3.018-3.13,0.5-0.09,0.836-0.39,1.405-0.67,1.266-0.61-0.304-0.36-3.549,0.34-4.4,0.27-0.332,0.97-0.673,1.56-0.76,3.18-0.466,1.94-12.992-1.84-18.601-0.67-0.995-1.5-2.721-1.84-3.835s-1.43-3.621-2.43-5.57c-1.44-2.8-1.85-4.236-1.97-6.836-0.08-1.81-0.18-3.633-0.22-4.05-0.04-0.418,0.08-1.216,0.28-1.773s0.01-0.414-0.41,0.317c-1.38,2.358-4.02,2.355-4.96-0.006-0.31-0.758-0.63-1.053-0.77-0.69-0.3,0.823-4.02,0.827-4.53,0.005-0.26-0.424-0.48-0.218-0.68,0.633-0.41,1.751-2.64,2-3.75,0.417-0.44-0.635-0.8-0.933-0.79-0.662s0.33,0.915,0.73,1.431c0.51,0.684,0.58,1.285,0.22,2.215-0.5,1.317-0.13,1.853,2.24,3.226,1.3,0.752,0.67,1.177-0.68,0.456-2.02-1.083-1.56-0.169,0.88,1.739,2.88,2.25,4.36,2.216,8.27-0.192,1.38-0.851,2.74-1.547,3.01-1.547,1.11,0,0.35,0.855-2.37,2.659-4.1,2.722-8.05,2.603-10.41-0.313-0.87-1.076-0.87-1.074-0.88,0.548-0.01,0.896-0.8,3.061-1.76,4.811-0.95,1.75-1.83,4.12-1.94,5.266s-0.71,2.794-1.32,3.661c-2.5,3.501-4.26,8.305-4.5,12.264l-0.23,3.832,4.62,3.687c2.54,2.028,4.96,4.171,5.37,4.762,1.16,1.648,0.93,3.684-0.55,5.062l-1.31,1.215,1.39,1.095c1.86,1.464,3.14,1.73,7.18,1.496,4.42-0.256,7.59-1.788,11.59-5.612l3.11-2.973,0.36,2.618c0.44,3.173-0.16,11.231-0.8,10.833-1.01-0.619-0.39,1.415,0.78,2.583,1.02,1.02,1.74,1.243,4.04,1.243,2.67,0,2.97-0.138,6.13-2.823zm-33.69-12.607c0-0.342-1.31-1.753-2.92-3.135-3.41-2.953-4.86-3.876-3.37-2.15,0.58,0.671,1.59,2.132,2.24,3.246,1.86,3.206,2.57,3.885,3.36,3.227,0.38-0.311,0.69-0.846,0.69-1.188zm35.74-6.974c1.8-1.894,2.12-2.584,2.42-5.207,0.19-1.663,0.12-4.163-0.15-5.555-1.03-5.331-4.05-12.32-6.12-14.178-1.9-1.702-5.11-6.786-6.9-10.916-1.38-3.17-1.7-4.584-1.71-7.389-0.02-5.935-0.86-10.132-2.66-13.261-1.38-2.3983-2.13-3.0964-4.57-4.2833-7.07-3.4339-12.97-1.7826-15.87,4.4354-0.83,1.7852-1.17,3.3892-1.13,5.3372,0.03,1.532,0.16,2.329,0.3,1.772,0.41-1.67,1.19-2.278,2.91-2.278,1.82,0,4.27,1.891,4.4,3.394,0.04,0.5,0.1,1.249,0.12,1.663,0.03,0.414,0.45,0.829,0.94,0.922,0.62,0.119,0.79-0.062,0.58-0.605-0.47-1.232,0.75-4.204,2.08-5.08,1.56-1.022,4.26-1.027,5.71-0.01,2.19,1.532,2.68,3.346,2.5,9.154-0.16,5.245-0.12,5.466,1.53,8.732,0.93,1.842,2.05,4.578,2.48,6.08,0.44,1.502,1.47,3.779,2.28,5.06,2.62,4.128,3.49,8.167,3.44,15.997-0.04,6.023,0.08,7.073,0.88,7.952,1.45,1.604,4.02,0.922,6.54-1.736zm-0.47-2.238c-0.18-0.186-0.34-0.573-0.34-0.861,0-0.317,0.24-0.288,0.6,0.076,0.33,0.329,0.48,0.717,0.34,0.861-0.14,0.143-0.41,0.109-0.6-0.076zm1.48-1.114c-0.22-0.353-0.26-0.778-0.09-0.945,0.45-0.454,0.94,0.213,0.7,0.947-0.17,0.515-0.29,0.514-0.61-0.002zm-16.27-31.179c-0.96-1.464-0.8-3.56,0.28-3.607,2.27-0.098,4.32,2.26,3.66,4.23-0.38,1.133-3.07,0.707-3.94-0.623zm1.89-1.405c-0.36-0.363-0.6-0.393-0.6-0.076,0,0.676,0.6,1.275,0.94,0.937,0.14-0.144-0.01-0.531-0.34-0.861zm-8.36-19.976c-0.19-0.1857-0.34-1.2111-0.34-2.2786,0-1.8673,0.06-1.941,1.71-1.941,0.94,0,1.94,0.2848,2.21,0.6329,0.7,0.8774,0.46,2.8983-0.41,3.4506-0.86,0.5396-2.69,0.6176-3.17,0.1361zm2.19-2.2241c0-0.262-0.23-0.4765-0.51-0.4765s-0.5,0.3553-0.5,0.7895c0,0.4341,0.22,0.6485,0.5,0.4764s0.51-0.5273,0.51-0.7894zm-25.2,56.037c-1.45-1.649-1.5-1.867-1.26-5.443,0.27-3.833,0.75-5.369,3.87-12.334,1-2.228,1.82-4.479,1.82-5.001,0.01-0.523,0.92-2.602,2.03-4.62,2.5-4.512,2.67-5.564,0.27-1.572-0.97,1.609-2.65,3.988-3.73,5.287-2.38,2.873-2.75,3.559-4.44,8.271-0.74,2.041-2.11,5.243-3.05,7.116-2.11,4.206-2.25,5.927-0.47,5.585,0.96-0.182,1.8,0.297,3.68,2.084,2.89,2.76,3.35,2.985,1.28,0.627zm-3.66-4.95c0-1.843,0.22-1.777,0.7,0.211,0.19,0.827,0.12,1.393-0.19,1.393-0.28,0-0.51-0.722-0.51-1.604zm12.5-30.17c-0.13-0.487-0.23-0.088-0.23,0.886,0,0.975,0.1,1.374,0.23,0.886,0.13-0.487,0.13-1.284,0-1.772zm-0.55-5.053c-0.17-0.168-0.29,0.131-0.27,0.665,0.03,0.59,0.15,0.71,0.31,0.306,0.15-0.366,0.13-0.802-0.04-0.971zm3.3-3.01c-0.44-0.759-0.54-0.781-0.55-0.123-0.02,0.853,0.51,1.621,0.87,1.262,0.12-0.118-0.02-0.631-0.32-1.139zm11.78,0.938c0.14-0.229-0.19-0.796-0.73-1.261-0.92-0.793-0.99-0.788-0.99,0.079,0,1.402,1.11,2.166,1.72,1.182zm-9.51-2.485c-0.17-0.168-0.29,0.131-0.27,0.665,0.03,0.59,0.15,0.71,0.31,0.306,0.15-0.366,0.13-0.803-0.04-0.971zm10.8-1.439c-0.64-0.676-1.61-1.23-2.17-1.23-1.1,0-2.86,1.357-2.86,2.201,0,0.288,0.28,0.168,0.63-0.267,1.43-1.782,4.88-1.084,4.98,1.006,0.03,0.583,0.12,0.644,0.31,0.189,0.14-0.368-0.26-1.223-0.89-1.899zm-12.94-0.217c0.34,0,0.94,0.285,1.33,0.633,0.6,0.538,0.61,0.501,0.04-0.253-0.37-0.488-1.06-0.886-1.52-0.886-0.91,0-2.07,0.928-2.07,1.656,0,0.243,0.36,0.083,0.8-0.354,0.44-0.438,1.07-0.796,1.42-0.796z" transform="translate(10, 729.2776405) " stroke="#000" stroke-miterlimit="4.0000000" stroke-width="0.37500000" fill="none"/>
- <circle cy="0" cx="0" r="2" transform="translate(15, 851.7402605)"/>
- <rect id="d0e96" display="none" height="1000px" width="258" y="845.74" x="20"/>
+ <text id="tracing-f03-ja.svgtext1492" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 752.1169719999999) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.154671" x="69.581543" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f03-ja.svgtspan1493" y="97.154671" x="69.581543" role="line">オリジナル画像</tspan></text>
+ <text id="tracing-f03-ja.svgtext1495" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 752.1169719999999) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="157.95474" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f03-ja.svgtspan1496" y="97.378670" x="157.95474" role="line">エッジ検出</tspan><tspan id="tracing-f03-ja.svgtspan1498" y="103.37867" x="157.95474" role="line">フィルあり、ストロークなし</tspan></text>
+ <text id="tracing-f03-ja.svgtext1500" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 752.1169719999999) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="244.99974" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f03-ja.svgtspan1501" y="97.378670" x="244.99974" role="line">エッジ検出</tspan><tspan id="tracing-f03-ja.svgtspan1503" y="103.37867" x="244.99974" role="line">ストロークあり、フィルなし</tspan></text>
+ <image id="tracing-f03-ja.svgimage1508" sodipodi:absref="/tux.png" xlink:href="tux.png" transform="translate(10, 752.1169719999999) " height="91.143" width="76.965" y="0.000036133" x="31.099"/>
+ <path id="tracing-f03-ja.svgpath4003" d="M139.28,89.101c-1.22-0.554-3.5-1.363-5.06-1.797-9.19-2.553-12.03-3.428-12.59-3.88-0.83-0.662-0.8-3.17,0.08-5.676,0.47-1.351,0.61-3.264,0.43-5.882-0.24-3.484-0.16-3.99,0.81-4.96,0.79-0.784,1.71-1.08,3.37-1.08,3.12,0,4.04-1.136,4.04-4.981,0-2.439,0.35-3.585,2.1-6.945,1.15-2.214,2.43-5.164,2.85-6.556,1.28-4.328,2.29-6.298,4.6-9.018,1.23-1.446,2.92-3.713,3.75-5.039l1.52-2.411-0.27-9.833c-0.25-9.303-0.2-9.982,0.85-12.583,2.03-4.9984,5.81-7.4469,11.48-7.4469,6.48,0,11.64,3.1302,14.06,8.5268,1.11,2.4645,1.4,4.1035,1.75,9.6405,0.42,6.617,0.44,6.711,2.84,11.441,1.33,2.623,3.54,6.054,4.91,7.624,2.84,3.246,3.82,5.006,5.73,10.332,1.53,4.27,2.16,10.332,1.41,13.56-0.38,1.63-0.34,2.348,0.19,3.038,0.37,0.497,0.69,1.538,0.7,2.314,0.02,1.92,1.27,3.673,3.89,5.479,1.73,1.193,2.2,1.822,2.2,2.968,0,2.463-0.48,2.996-4.94,5.47-2.37,1.317-5.37,3.394-6.65,4.614-3.43,3.266-5.03,4.106-7.8,4.109-2.71,0.002-5.83-1.368-6.82-2.995-0.6-1.001-1.06-1.054-9.12-1.054h-8.49l-1.83,1.51c-3.38,2.786-6.23,3.216-9.99,1.511zm8.76-3.212l2.24-1.835,9.54-0.004,9.53-0.005,0.07-4.081,0.07-4.082-1.08,0.985c-3.69,3.353-9.68,5.436-14.47,5.033-1.55-0.13-3.24-0.417-3.76-0.637-0.79-0.332-0.89-0.228-0.62,0.619,0.21,0.663-0.05,1.441-0.73,2.228-0.98,1.129-1.03,1.139-0.76,0.148,0.16-0.585-0.05-1.708-0.46-2.496s-0.62-1.625-0.48-1.861c0.44-0.698-0.91-3.24-1.98-3.739-0.54-0.254-2.23-2.513-3.75-5.02-3.51-5.808-6.01-8.389-7.75-8.022-0.69,0.147-1.72,0.984-2.28,1.861-0.84,1.304-1.47,1.657-3.47,1.944-1.35,0.193-2.77,0.474-3.17,0.625-1.2,0.464-1.66,2.55-1.24,5.669,0.29,2.149,0.19,3.693-0.36,5.654-0.53,1.858-0.61,2.86-0.25,3.221,0.29,0.288,3.59,1.296,7.33,2.239s7.81,2.185,9.05,2.76c3.22,1.5,5.94,1.128,8.78-1.204zm-4.77-0.013c0-0.111,0.8-0.673,1.78-1.248,1.38-0.819,1.77-0.889,1.77-0.321,0,0.398-0.44,0.96-0.98,1.248-0.97,0.517-2.57,0.717-2.57,0.321zm38.26-0.594c1.83-1.552,4.85-3.626,6.71-4.607,3.7-1.945,5.67-3.524,5.67-4.533,0-0.356-0.99-1.329-2.2-2.162-2.48-1.705-3.88-3.555-3.88-5.132,0-0.585-0.25-1.535-0.56-2.111-0.53-1-0.65-0.946-2.47,1.173-1.91,2.211-1.93,2.22-5.31,2.22-2.95,0-3.52-0.155-4.36-1.196-0.53-0.657-0.97-1.94-0.97-2.849,0-3.455-2.73-3.018-3.12,0.5-0.09,0.836-0.4,1.405-0.68,1.266-0.6-0.304-0.35-3.549,0.34-4.4,0.27-0.332,0.98-0.673,1.57-0.76,3.17-0.466,1.93-12.992-1.84-18.601-0.68-0.995-1.5-2.721-1.84-3.835s-1.44-3.621-2.44-5.57c-1.43-2.8-1.85-4.236-1.96-6.836-0.08-1.81-0.18-3.633-0.22-4.05-0.05-0.418,0.08-1.216,0.28-1.773,0.19-0.557,0.01-0.414-0.42,0.317-1.37,2.358-4.02,2.355-4.96-0.006-0.3-0.758-0.63-1.053-0.76-0.69-0.31,0.823-4.02,0.827-4.53,0.005-0.26-0.424-0.48-0.218-0.68,0.633-0.41,1.751-2.65,2-3.75,0.417-0.45-0.635-0.81-0.933-0.8-0.662s0.34,0.915,0.73,1.431c0.52,0.684,0.58,1.285,0.23,2.215-0.5,1.317-0.13,1.853,2.24,3.226,1.29,0.752,0.67,1.177-0.68,0.456-2.02-1.083-1.56-0.169,0.88,1.739,2.87,2.25,4.35,2.216,8.27-0.192,1.38-0.851,2.73-1.547,3.01-1.547,1.11,0,0.34,0.855-2.38,2.659-4.1,2.722-8.04,2.603-10.4-0.313-0.87-1.076-0.88-1.074-0.89,0.548,0,0.896-0.79,3.061-1.75,4.811s-1.83,4.12-1.94,5.266-0.71,2.794-1.33,3.661c-2.49,3.501-4.25,8.305-4.5,12.264l-0.23,3.832,4.62,3.687c2.55,2.028,4.97,4.171,5.38,4.762,1.15,1.648,0.93,3.684-0.56,5.062l-1.31,1.215,1.4,1.095c1.86,1.464,3.13,1.73,7.18,1.496,4.42-0.256,7.58-1.788,11.59-5.612l3.11-2.973,0.36,2.618c0.44,3.173-0.17,11.231-0.81,10.833-1-0.619-0.38,1.415,0.78,2.583,1.02,1.02,1.75,1.243,4.05,1.243,2.66,0,2.96-0.138,6.13-2.823zm-33.7-12.607c0-0.342-1.31-1.753-2.91-3.135-3.42-2.953-4.87-3.876-3.37-2.15,0.58,0.671,1.58,2.132,2.23,3.246,1.87,3.206,2.58,3.885,3.37,3.227,0.37-0.311,0.68-0.846,0.68-1.188zm35.75-6.974c1.8-1.894,2.12-2.584,2.41-5.207,0.19-1.663,0.12-4.163-0.14-5.555-1.04-5.331-4.05-12.32-6.13-14.178-1.89-1.702-5.11-6.786-6.9-10.916-1.37-3.17-1.7-4.584-1.71-7.389-0.01-5.935-0.86-10.132-2.66-13.261-1.38-2.3983-2.12-3.0964-4.57-4.2833-7.06-3.4339-12.97-1.7826-15.86,4.4354-0.83,1.7852-1.18,3.3892-1.14,5.3372,0.03,1.532,0.17,2.329,0.3,1.772,0.42-1.67,1.19-2.278,2.92-2.278,1.82,0,4.26,1.891,4.39,3.394,0.04,0.5,0.1,1.249,0.13,1.663s0.45,0.829,0.93,0.922c0.62,0.119,0.8-0.062,0.59-0.605-0.47-1.232,0.74-4.204,2.08-5.08,1.56-1.022,4.25-1.027,5.7-0.01,2.19,1.532,2.69,3.346,2.51,9.154-0.16,5.245-0.12,5.466,1.52,8.732,0.93,1.842,2.05,4.578,2.49,6.08s1.46,3.779,2.27,5.06c2.62,4.128,3.49,8.167,3.44,15.997-0.03,6.023,0.08,7.073,0.88,7.952,1.45,1.604,4.02,0.922,6.55-1.736zm-0.47-2.238c-0.19-0.186-0.34-0.573-0.34-0.861,0-0.317,0.24-0.288,0.6,0.076,0.33,0.329,0.48,0.717,0.34,0.861-0.15,0.143-0.42,0.109-0.6-0.076zm1.47-1.114c-0.21-0.353-0.26-0.778-0.09-0.945,0.45-0.454,0.95,0.213,0.7,0.947-0.17,0.515-0.29,0.514-0.61-0.002zm-16.27-31.179c-0.96-1.464-0.8-3.56,0.28-3.607,2.28-0.098,4.32,2.26,3.67,4.23-0.38,1.133-3.08,0.707-3.95-0.623zm1.89-1.405c-0.36-0.363-0.6-0.393-0.6-0.076,0,0.676,0.6,1.275,0.94,0.937,0.14-0.144-0.01-0.531-0.34-0.861zm-8.36-19.976c-0.19-0.1857-0.34-1.2111-0.34-2.2786,0-1.8673,0.07-1.941,1.71-1.941,0.94,0,1.94,0.2848,2.22,0.6329,0.7,0.8774,0.45,2.8983-0.42,3.4506-0.85,0.5396-2.69,0.6176-3.17,0.1361zm2.19-2.2241c0-0.262-0.22-0.4765-0.5-0.4765s-0.51,0.3553-0.51,0.7895c0,0.4341,0.23,0.6485,0.51,0.4764s0.5-0.5273,0.5-0.7894zm-25.2,56.037c-1.44-1.649-1.49-1.867-1.25-5.443,0.26-3.833,0.74-5.369,3.87-12.334,0.99-2.228,1.81-4.479,1.82-5.001,0-0.523,0.92-2.602,2.03-4.62,2.49-4.512,2.67-5.564,0.26-1.572-0.97,1.609-2.64,3.988-3.72,5.287-2.39,2.873-2.76,3.559-4.45,8.271-0.73,2.041-2.1,5.243-3.04,7.116-2.11,4.206-2.26,5.927-0.47,5.585,0.95-0.182,1.8,0.297,3.67,2.084,2.89,2.76,3.35,2.985,1.28,0.627zm-3.66-4.95c0-1.843,0.22-1.777,0.7,0.211,0.2,0.827,0.12,1.393-0.18,1.393-0.29,0-0.52-0.722-0.52-1.604zm12.5-30.17c-0.12-0.487-0.23-0.088-0.23,0.886,0,0.975,0.11,1.374,0.23,0.886,0.13-0.487,0.13-1.284,0-1.772zm-0.55-5.053c-0.16-0.168-0.28,0.131-0.26,0.665,0.02,0.59,0.14,0.71,0.3,0.306,0.15-0.366,0.13-0.802-0.04-0.971zm3.3-3.01c-0.44-0.759-0.54-0.781-0.55-0.123-0.01,0.853,0.52,1.621,0.88,1.262,0.12-0.118-0.03-0.631-0.33-1.139zm11.79,0.938c0.14-0.229-0.19-0.796-0.73-1.261-0.93-0.793-0.99-0.788-0.99,0.079,0,1.402,1.11,2.166,1.72,1.182zm-9.52-2.485c-0.16-0.168-0.28,0.131-0.26,0.665,0.02,0.59,0.14,0.71,0.3,0.306,0.15-0.366,0.13-0.803-0.04-0.971zm10.8-1.439c-0.63-0.676-1.61-1.23-2.16-1.23-1.1,0-2.87,1.357-2.87,2.201,0,0.288,0.29,0.168,0.64-0.267,1.42-1.782,4.88-1.084,4.97,1.006,0.03,0.583,0.13,0.644,0.31,0.189,0.15-0.368-0.25-1.223-0.89-1.899zm-12.94-0.217c0.34,0,0.94,0.285,1.33,0.633,0.61,0.538,0.61,0.501,0.04-0.253-0.37-0.488-1.05-0.886-1.52-0.886-0.91,0-2.06,0.928-2.06,1.656,0,0.243,0.36,0.083,0.79-0.354,0.44-0.438,1.08-0.796,1.42-0.796z" transform="translate(10, 752.1169719999999) "/>
+ <path id="tracing-f03-ja.svgpath4004" d="M226.33,89.101c-1.22-0.554-3.5-1.363-5.07-1.797-9.18-2.553-12.02-3.428-12.59-3.88-0.83-0.662-0.79-3.17,0.08-5.676,0.47-1.351,0.61-3.264,0.43-5.882-0.24-3.484-0.15-3.99,0.82-4.96,0.78-0.784,1.71-1.08,3.36-1.08,3.12,0,4.05-1.136,4.05-4.981,0-2.439,0.34-3.585,2.09-6.945,1.16-2.214,2.44-5.164,2.85-6.556,1.29-4.328,2.29-6.298,4.61-9.018,1.22-1.446,2.91-3.713,3.75-5.039l1.52-2.411-0.27-9.833c-0.25-9.303-0.21-9.982,0.85-12.583,2.03-4.9984,5.8-7.4469,11.48-7.4469,6.47,0,11.63,3.1302,14.05,8.5268,1.11,2.4645,1.41,4.1035,1.76,9.6405,0.41,6.617,0.44,6.711,2.83,11.441,1.33,2.623,3.54,6.054,4.92,7.624,2.84,3.246,3.81,5.006,5.72,10.332,1.53,4.27,2.17,10.332,1.41,13.56-0.38,1.63-0.33,2.348,0.19,3.038,0.38,0.497,0.7,1.538,0.7,2.314,0.03,1.92,1.27,3.673,3.9,5.479,1.73,1.193,2.2,1.822,2.2,2.968,0,2.463-0.48,2.996-4.94,5.47-2.38,1.317-5.37,3.394-6.66,4.614-3.43,3.266-5.02,4.106-7.79,4.109-2.72,0.002-5.84-1.368-6.82-2.995-0.61-1.001-1.07-1.054-9.13-1.054h-8.49l-1.83,1.51c-3.38,2.786-6.22,3.216-9.98,1.511zm8.76-3.212l2.24-1.835,9.53-0.004,9.54-0.005,0.07-4.081,0.07-4.082-1.09,0.985c-3.68,3.353-9.67,5.436-14.47,5.033-1.55-0.13-3.24-0.417-3.76-0.637-0.78-0.332-0.89-0.228-0.62,0.619,0.21,0.663-0.04,1.441-0.73,2.228-0.98,1.129-1.03,1.139-0.76,0.148,0.16-0.585-0.04-1.708-0.45-2.496s-0.63-1.625-0.48-1.861c0.43-0.698-0.92-3.24-1.98-3.739-0.55-0.254-2.23-2.513-3.75-5.02-3.52-5.808-6.01-8.389-7.75-8.022-0.7,0.147-1.73,0.984-2.29,1.861-0.83,1.304-1.46,1.657-3.47,1.944-1.34,0.193-2.77,0.474-3.16,0.625-1.21,0.464-1.67,2.55-1.24,5.669,0.29,2.149,0.19,3.693-0.37,5.654-0.53,1.858-0.6,2.86-0.24,3.221,0.29,0.288,3.58,1.296,7.33,2.239,3.74,0.943,7.81,2.185,9.04,2.76,3.22,1.5,5.94,1.128,8.79-1.204zm-4.77-0.013c0-0.111,0.8-0.673,1.77-1.248,1.39-0.819,1.77-0.889,1.77-0.321,0,0.398-0.44,0.96-0.98,1.248-0.96,0.517-2.56,0.717-2.56,0.321zm38.25-0.594c1.83-1.552,4.85-3.626,6.72-4.607,3.69-1.945,5.66-3.524,5.66-4.533,0-0.356-0.99-1.329-2.2-2.162-2.48-1.705-3.87-3.555-3.87-5.132,0-0.585-0.25-1.535-0.56-2.111-0.54-1-0.65-0.946-2.48,1.173-1.9,2.211-1.92,2.22-5.3,2.22-2.96,0-3.52-0.155-4.37-1.196-0.53-0.657-0.96-1.94-0.96-2.849,0-3.455-2.73-3.018-3.13,0.5-0.09,0.836-0.39,1.405-0.67,1.266-0.61-0.304-0.36-3.549,0.34-4.4,0.27-0.332,0.97-0.673,1.56-0.76,3.18-0.466,1.94-12.992-1.84-18.601-0.67-0.995-1.5-2.721-1.84-3.835s-1.43-3.621-2.43-5.57c-1.44-2.8-1.85-4.236-1.97-6.836-0.08-1.81-0.18-3.633-0.22-4.05-0.04-0.418,0.08-1.216,0.28-1.773s0.01-0.414-0.41,0.317c-1.38,2.358-4.02,2.355-4.96-0.006-0.31-0.758-0.63-1.053-0.77-0.69-0.3,0.823-4.02,0.827-4.53,0.005-0.26-0.424-0.48-0.218-0.68,0.633-0.41,1.751-2.64,2-3.75,0.417-0.44-0.635-0.8-0.933-0.79-0.662s0.33,0.915,0.73,1.431c0.51,0.684,0.58,1.285,0.22,2.215-0.5,1.317-0.13,1.853,2.24,3.226,1.3,0.752,0.67,1.177-0.68,0.456-2.02-1.083-1.56-0.169,0.88,1.739,2.88,2.25,4.36,2.216,8.27-0.192,1.38-0.851,2.74-1.547,3.01-1.547,1.11,0,0.35,0.855-2.37,2.659-4.1,2.722-8.05,2.603-10.41-0.313-0.87-1.076-0.87-1.074-0.88,0.548-0.01,0.896-0.8,3.061-1.76,4.811-0.95,1.75-1.83,4.12-1.94,5.266s-0.71,2.794-1.32,3.661c-2.5,3.501-4.26,8.305-4.5,12.264l-0.23,3.832,4.62,3.687c2.54,2.028,4.96,4.171,5.37,4.762,1.16,1.648,0.93,3.684-0.55,5.062l-1.31,1.215,1.39,1.095c1.86,1.464,3.14,1.73,7.18,1.496,4.42-0.256,7.59-1.788,11.59-5.612l3.11-2.973,0.36,2.618c0.44,3.173-0.16,11.231-0.8,10.833-1.01-0.619-0.39,1.415,0.78,2.583,1.02,1.02,1.74,1.243,4.04,1.243,2.67,0,2.97-0.138,6.13-2.823zm-33.69-12.607c0-0.342-1.31-1.753-2.92-3.135-3.41-2.953-4.86-3.876-3.37-2.15,0.58,0.671,1.59,2.132,2.24,3.246,1.86,3.206,2.57,3.885,3.36,3.227,0.38-0.311,0.69-0.846,0.69-1.188zm35.74-6.974c1.8-1.894,2.12-2.584,2.42-5.207,0.19-1.663,0.12-4.163-0.15-5.555-1.03-5.331-4.05-12.32-6.12-14.178-1.9-1.702-5.11-6.786-6.9-10.916-1.38-3.17-1.7-4.584-1.71-7.389-0.02-5.935-0.86-10.132-2.66-13.261-1.38-2.3983-2.13-3.0964-4.57-4.2833-7.07-3.4339-12.97-1.7826-15.87,4.4354-0.83,1.7852-1.17,3.3892-1.13,5.3372,0.03,1.532,0.16,2.329,0.3,1.772,0.41-1.67,1.19-2.278,2.91-2.278,1.82,0,4.27,1.891,4.4,3.394,0.04,0.5,0.1,1.249,0.12,1.663,0.03,0.414,0.45,0.829,0.94,0.922,0.62,0.119,0.79-0.062,0.58-0.605-0.47-1.232,0.75-4.204,2.08-5.08,1.56-1.022,4.26-1.027,5.71-0.01,2.19,1.532,2.68,3.346,2.5,9.154-0.16,5.245-0.12,5.466,1.53,8.732,0.93,1.842,2.05,4.578,2.48,6.08,0.44,1.502,1.47,3.779,2.28,5.06,2.62,4.128,3.49,8.167,3.44,15.997-0.04,6.023,0.08,7.073,0.88,7.952,1.45,1.604,4.02,0.922,6.54-1.736zm-0.47-2.238c-0.18-0.186-0.34-0.573-0.34-0.861,0-0.317,0.24-0.288,0.6,0.076,0.33,0.329,0.48,0.717,0.34,0.861-0.14,0.143-0.41,0.109-0.6-0.076zm1.48-1.114c-0.22-0.353-0.26-0.778-0.09-0.945,0.45-0.454,0.94,0.213,0.7,0.947-0.17,0.515-0.29,0.514-0.61-0.002zm-16.27-31.179c-0.96-1.464-0.8-3.56,0.28-3.607,2.27-0.098,4.32,2.26,3.66,4.23-0.38,1.133-3.07,0.707-3.94-0.623zm1.89-1.405c-0.36-0.363-0.6-0.393-0.6-0.076,0,0.676,0.6,1.275,0.94,0.937,0.14-0.144-0.01-0.531-0.34-0.861zm-8.36-19.976c-0.19-0.1857-0.34-1.2111-0.34-2.2786,0-1.8673,0.06-1.941,1.71-1.941,0.94,0,1.94,0.2848,2.21,0.6329,0.7,0.8774,0.46,2.8983-0.41,3.4506-0.86,0.5396-2.69,0.6176-3.17,0.1361zm2.19-2.2241c0-0.262-0.23-0.4765-0.51-0.4765s-0.5,0.3553-0.5,0.7895c0,0.4341,0.22,0.6485,0.5,0.4764s0.51-0.5273,0.51-0.7894zm-25.2,56.037c-1.45-1.649-1.5-1.867-1.26-5.443,0.27-3.833,0.75-5.369,3.87-12.334,1-2.228,1.82-4.479,1.82-5.001,0.01-0.523,0.92-2.602,2.03-4.62,2.5-4.512,2.67-5.564,0.27-1.572-0.97,1.609-2.65,3.988-3.73,5.287-2.38,2.873-2.75,3.559-4.44,8.271-0.74,2.041-2.11,5.243-3.05,7.116-2.11,4.206-2.25,5.927-0.47,5.585,0.96-0.182,1.8,0.297,3.68,2.084,2.89,2.76,3.35,2.985,1.28,0.627zm-3.66-4.95c0-1.843,0.22-1.777,0.7,0.211,0.19,0.827,0.12,1.393-0.19,1.393-0.28,0-0.51-0.722-0.51-1.604zm12.5-30.17c-0.13-0.487-0.23-0.088-0.23,0.886,0,0.975,0.1,1.374,0.23,0.886,0.13-0.487,0.13-1.284,0-1.772zm-0.55-5.053c-0.17-0.168-0.29,0.131-0.27,0.665,0.03,0.59,0.15,0.71,0.31,0.306,0.15-0.366,0.13-0.802-0.04-0.971zm3.3-3.01c-0.44-0.759-0.54-0.781-0.55-0.123-0.02,0.853,0.51,1.621,0.87,1.262,0.12-0.118-0.02-0.631-0.32-1.139zm11.78,0.938c0.14-0.229-0.19-0.796-0.73-1.261-0.92-0.793-0.99-0.788-0.99,0.079,0,1.402,1.11,2.166,1.72,1.182zm-9.51-2.485c-0.17-0.168-0.29,0.131-0.27,0.665,0.03,0.59,0.15,0.71,0.31,0.306,0.15-0.366,0.13-0.803-0.04-0.971zm10.8-1.439c-0.64-0.676-1.61-1.23-2.17-1.23-1.1,0-2.86,1.357-2.86,2.201,0,0.288,0.28,0.168,0.63-0.267,1.43-1.782,4.88-1.084,4.98,1.006,0.03,0.583,0.12,0.644,0.31,0.189,0.14-0.368-0.26-1.223-0.89-1.899zm-12.94-0.217c0.34,0,0.94,0.285,1.33,0.633,0.6,0.538,0.61,0.501,0.04-0.253-0.37-0.488-1.06-0.886-1.52-0.886-0.91,0-2.07,0.928-2.07,1.656,0,0.243,0.36,0.083,0.8-0.354,0.44-0.438,1.07-0.796,1.42-0.796z" transform="translate(10, 752.1169719999999) " stroke="#000" stroke-miterlimit="4.0000000" stroke-width="0.37500000" fill="none"/>
+ <circle cy="0" cx="0" r="2" transform="translate(15, 874.053602)"/>
+ <rect id="d0e96" display="none" height="1000px" width="258" y="868.05" x="20"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e96"/>
</flowRegion>
<flowDiv xml:space="preserve">色の量子化</flowDiv>
</flowRoot>
- <rect id="d0e100" display="none" height="1000px" width="288" y="863.58" x="10"/>
+ <rect id="d0e100" display="none" height="1000px" width="288" y="885.5" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e100"/>
</flowRegion>
<flowDiv xml:space="preserve">このフィルタの結果は他の 2 つよりも大きく異なる中間像を生成しますが、実は非常に役に立ちます。明るさやコントラストの平衡線の代わりに、これは明るさやコントラストが同じであっても色が変わる境界を検出します。ここでは、中間像がカラーの場合に出力する色数を決定します。これが色が偶数か奇数かで白/黒を決定します。</flowDiv>
</flowRoot>
- <text id="tracing-f04-ja.svgtext4626" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 932.896805) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.153664" x="69.581543" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f04-ja.svgtspan4627" y="97.153664" x="69.581543" role="line">オリジナル画像</tspan></text>
- <text id="tracing-f04-ja.svgtext4629" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 932.896805) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="156.37865" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f04-ja.svgtspan5892" y="97.378670" x="156.37865" role="line">量子化 (12 色)</tspan><tspan id="tracing-f04-ja.svgtspan5894" y="103.37867" x="156.37865" role="line">フィルあり、ストロークなし</tspan></text>
- <text id="tracing-f04-ja.svgtext4634" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 932.896805) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="245.12865" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f04-ja.svgtspan5896" y="97.378670" x="245.12865" role="line">量子化 (12 色)</tspan><tspan id="tracing-f04-ja.svgtspan5898" y="103.37867" x="245.12865" role="line">ストロークあり、フィルなし</tspan></text>
- <image id="tracing-f04-ja.svgimage4639" sodipodi:absref="/tux.png" xlink:href="tux.png" transform="translate(10, 932.896805) " height="91.143" width="76.965" y="-0.000097656" x="31.099"/>
- <path id="tracing-f04-ja.svgpath5261" d="M138.36,88.785c-1.07-0.444-1.75-1.018-1.57-1.318,0.19-0.298,0.09-0.383-0.22-0.193-0.3,0.187-3.07-0.348-6.16-1.187-3.09-0.84-5.78-1.541-5.99-1.559-0.2-0.018,0.13-0.231,0.73-0.474,1.22-0.493,6.35,0.11,10.85,1.278,4.27,1.106,5.77,0.967,7.64-0.707,1.4-1.253,1.64-1.817,1.71-4.064,0.05-1.435-0.11-2.731-0.35-2.88-0.24-0.148-0.44,0.752-0.44,2,0,3.33-1.84,5.385-4.82,5.385-1.21,0-2.83-0.239-3.6-0.532s-4.03-0.982-7.24-1.531c-6.88-1.176-7.55-1.616-6.71-4.429,0.74-2.453,0.78-4.821,0.08-4.389-0.28,0.175-0.4,0.504-0.26,0.731,0.27,0.429-0.44,3.028-1.34,4.894-0.81,1.698-0.3,2.834,1.61,3.57,1.61,0.619,1.63,0.655,0.26,0.384-2.93-0.576-3.39-1.811-2.04-5.533,0.51-1.439,0.64-3.143,0.43-5.883-0.27-3.484-0.2-3.961,0.78-4.937,0.76-0.759,1.72-1.082,3.23-1.087,2.41-0.009,2.87-0.23,4.06-1.97,0.62-0.92,0.7-1.459,0.3-2.205-0.76-1.426-0.09-4.225,1.86-7.717,0.93-1.671,2.26-4.797,2.96-6.946,1.58-4.862,1.98-5.607,4.64-8.751,1.17-1.392,2.83-3.637,3.69-4.987l1.54-2.456-0.3-9.799c-0.34-11.096,0.02-12.896,3.25-16.478,2.41-2.6627,5.35-3.6957,9.64-3.3861,5.48,0.3948,9.5,2.8938,12.15,7.5492,1.39,2.4461,1.65,3.8181,2.1,11.044,0.37,5.991,0.44,6.24,2.8,10.902,1.33,2.625,3.54,6.057,4.91,7.627,2.86,3.269,4.15,5.594,5.85,10.589,1.45,4.266,1.94,9.256,1.25,12.687-0.4,2-0.35,2.768,0.22,3.654,0.4,0.617,0.73,1.707,0.73,2.423,0,1.806,1.28,3.588,3.87,5.369,3.67,2.527,3.07,4.2-2.66,7.392-2.33,1.299-5.27,3.359-6.52,4.579-1.26,1.219-2.5,2.085-2.76,1.924s-0.63-0.026-0.84,0.3c-0.23,0.37-0.14,0.457,0.22,0.232,0.32-0.199,0.59-0.24,0.59-0.092,0,0.624-3.12,1.816-4.76,1.816-2.14,0-4.52-0.842-4.14-1.461,0.15-0.248-0.12-0.419-0.6-0.381-0.52,0.04-0.89-0.286-0.89-0.781,0-0.468-0.21-1.037-0.46-1.266-0.26-0.241-0.29-0.128-0.06,0.268,0.32,0.549,0.19,0.574-0.65,0.127-0.63-0.341-4.31-0.557-9.48-0.557h-8.44l-1.9,1.504c-3.36,2.662-5.46,3.072-8.75,1.708zm4.05-0.017c-0.49-0.127-1.29-0.127-1.77,0-0.49,0.128-0.09,0.232,0.88,0.232,0.98,0,1.38-0.104,0.89-0.232zm32.15-0.008c-0.62-0.121-1.65-0.121-2.28,0-0.62,0.12-0.11,0.219,1.14,0.219,1.26,0,1.77-0.099,1.14-0.219zm-26.77-2.829c0.16,0.161,0.44-0.081,0.61-0.539,0.28-0.728,1.42-0.832,9.13-0.832,4.84,0,8.8,0.204,8.8,0.453s0.52,0.42,1.14,0.38c1.11-0.071,1.14-0.249,1.2-5.517,0.03-2.994-0.11-5.443-0.32-5.443-0.2,0-0.65,0.339-1,0.754-0.34,0.415-0.8,0.645-1.02,0.511-0.21-0.134-0.77,0.331-1.23,1.034s-1.05,1.143-1.32,0.979c-0.27-0.165-0.48-0.045-0.48,0.267,0,0.311-0.21,0.44-0.46,0.285-0.25-0.154-0.59,0.075-0.75,0.509-0.17,0.434-0.54,0.647-0.82,0.474-0.28-0.174-0.51-0.05-0.51,0.275s-0.34,0.459-0.76,0.299c-0.41-0.16-0.76-0.056-0.76,0.233,0,0.294-0.44,0.383-1.01,0.203-0.55-0.177-1.01-0.135-1.01,0.092,0,0.228-1.82,0.414-4.05,0.414s-4.05-0.163-4.05-0.364c0-0.2-0.38-0.218-0.84-0.04-0.61,0.232-0.73,0.138-0.44-0.335,0.27-0.442,0.18-0.58-0.3-0.419-0.4,0.137-0.71,0.966-0.73,1.964-0.06,2.93-0.18,3.32-1.51,4.646-0.91,0.907-1.09,1.362-0.63,1.541,0.36,0.14,1.14-0.279,1.74-0.932,0.6-0.652,1.22-1.054,1.38-0.892zm-2.22,0.908c0.35-0.418,0.75-0.76,0.89-0.76s-0.03,0.342-0.38,0.76c-0.35,0.417-0.74,0.759-0.88,0.759s0.03-0.342,0.37-0.759zm32.33-1.276c1.22-0.549,2.38-0.894,2.59-0.766,0.2,0.128,1.02-0.442,1.81-1.268,1.8-1.881,1.46-1.879-2.29,0.018-3.42,1.722-6.55,1.994-7.86,0.681-1.4-1.399-1.77-3.065-1.77-8.026,0-2.641-0.22-4.887-0.51-5.062-0.76-0.472-1.21,1.173-0.54,1.98,0.36,0.435,0.55,2.432,0.48,5.273-0.08,3.597,0.09,4.856,0.77,5.903,1.58,2.406,3.92,2.812,7.32,1.267zm-18.94-6.314c1.09-0.391,2.21-0.573,2.48-0.406s0.34,0.057,0.15-0.245c-0.34-0.554,1.52-1.45,2.47-1.185,0.27,0.078,0.33-0.027,0.13-0.234-0.33-0.322,1.41-1.937,2.14-2.001,0.62-0.053,2.54-1.54,2.54-1.968,0-0.26-0.62,0.08-1.38,0.755s-1.05,0.805-0.66,0.289c0.4-0.516,0.9-2.112,1.12-3.545,1.01-6.849,1.12-7.11,3.19-7.494,1.13-0.21,1.62-1.824,1.72-5.648,0.03-1.481,0.25-2.313,0.56-2.122,0.63,0.386,0.68,4.81,0.06,4.81-0.25,0-0.34,1.538-0.21,3.418,0.21,2.857,0.46,3.613,1.55,4.608,1.1,0.998,1.64,1.137,3.37,0.86,1.2-0.191,2.65-0.891,3.46-1.665,0.77-0.734,1.39-1.103,1.39-0.821,0,0.775-2.09,2.578-3.7,3.187-3.24,1.227-5.69,0.075-6.41-3.016l-0.42-1.76-0.05,1.932c-0.07,2.597,0.61,3.697,2.72,4.393,2.04,0.673,3.45,0.355,5.58-1.262,1.46-1.096,4.07-4.841,2.86-4.096-0.73,0.45-0.73,0.167,0-1.434,0.32-0.701,0.78-1.156,1.01-1.011,0.23,0.144,0.28-0.433,0.11-1.282-0.17-0.85-0.1-1.544,0.14-1.544s0.44-1.254,0.44-2.785c0-1.532-0.2-2.785-0.44-2.785s-0.31-0.684-0.14-1.519c0.19-0.939,0.09-1.519-0.24-1.519-0.31,0-0.42-0.342-0.26-0.76s0.05-0.759-0.25-0.759-0.42-0.342-0.26-0.76,0.05-0.759-0.25-0.759-0.41-0.342-0.25-0.76,0.04-0.76-0.26-0.76-0.41-0.341-0.25-0.759,0.06-0.76-0.23-0.76c-0.28,0-0.38-0.227-0.21-0.506,0.18-0.278,0.06-0.506-0.25-0.506s-0.42-0.228-0.25-0.507c0.17-0.278,0.06-0.506-0.26-0.506-0.31,0-0.42-0.228-0.25-0.506,0.17-0.279,0.06-0.507-0.25-0.507s-0.43-0.229-0.25-0.51c0.17-0.28-0.04-0.646-0.48-0.812-0.43-0.167-0.67-0.484-0.54-0.705,0.14-0.221-0.6-1.154-1.65-2.073-1.04-0.919-1.83-1.859-1.76-2.09s-0.21-0.552-0.63-0.713c-0.42-0.16-0.64-0.496-0.48-0.745,0.15-0.249,0.02-0.453-0.29-0.453s-0.42-0.23-0.25-0.51c0.17-0.281-0.04-0.646-0.47-0.813-0.44-0.166-0.67-0.507-0.51-0.756,0.15-0.249,0.02-0.453-0.29-0.453s-0.42-0.228-0.25-0.506c0.17-0.279,0.06-0.507-0.25-0.507s-0.43-0.228-0.26-0.506c0.18-0.279,0.06-0.507-0.25-0.507s-0.43-0.227-0.25-0.506c0.17-0.278,0.06-0.506-0.26-0.506-0.31,0-0.42-0.228-0.25-0.506,0.17-0.279,0.05-0.507-0.28-0.507-0.32,0-0.46-0.342-0.3-0.759,0.16-0.418,0.05-0.76-0.25-0.76s-0.41-0.342-0.25-0.759c0.16-0.418,0.05-0.76-0.25-0.76-0.36,0-0.48-1.47-0.37-4.304,0.1-2.367-0.02-4.304-0.26-4.304-0.25,0-0.33-0.911-0.18-2.025,0.16-1.161,0.06-2.026-0.22-2.026-0.27,0-0.35-0.457-0.17-1.015,0.21-0.674,0.06-1.117-0.47-1.319-0.44-0.167-0.67-0.5076-0.51-0.7569,0.15-0.2493,0.02-0.4533-0.29-0.4533s-0.42-0.2278-0.25-0.5063,0.06-0.5064-0.25-0.5064-0.45-0.193-0.3-0.4289c0.34-0.557-2.45-3.2379-2.9-2.7851-0.19,0.1896-0.35,0.0654-0.35-0.2759,0-0.3414-0.23-0.4798-0.5-0.3077-0.28,0.1721-0.51,0.0582-0.51-0.2532s-0.23-0.4253-0.51-0.2532-0.5,0.0582-0.5-0.2531c0-0.3114-0.23-0.4253-0.51-0.2532s-0.51,0.0563-0.51-0.2574c0-0.34-0.41-0.4405-1.01-0.249-0.56,0.1768-1.01,0.1352-1.01-0.0924,0-0.2277-1.48-0.4139-3.29-0.4139s-3.29,0.1952-3.29,0.4339-0.35,0.3028-0.76,0.1425c-0.42-0.1603-0.76-0.0573-0.76,0.2289s-0.23,0.3795-0.51,0.2074-0.51-0.0582-0.51,0.2532c0,0.3113-0.19,0.4468-0.42,0.301-0.56-0.3443-3.24,2.4459-2.79,2.8988,0.19,0.1895,0.07,0.3446-0.28,0.3446-0.34,0-0.48,0.2279-0.3,0.5064,0.17,0.2785,0.05,0.5063-0.26,0.5063s-0.42,0.2279-0.25,0.5064,0.08,0.5063-0.21,0.5063c-0.28,0-0.39,0.3418-0.23,0.7595s0.1,0.7597-0.14,0.7597-0.43,3.418-0.43,7.595c0,4.178,0.13,7.595,0.3,7.595s0.34,1.254,0.39,2.785c0.06,1.72-0.12,2.785-0.46,2.785-0.3,0-0.4,0.228-0.23,0.507,0.17,0.278,0.06,0.506-0.26,0.506-0.31,0-0.44,0.204-0.28,0.453,0.15,0.249-0.08,0.59-0.51,0.756-0.43,0.167-0.66,0.508-0.51,0.76,0.16,0.251-0.07,0.593-0.5,0.759-0.44,0.167-0.67,0.507-0.51,0.757,0.15,0.25-0.29,0.832-1,1.292-0.7,0.461-1.16,1.019-1.03,1.241,0.14,0.222-0.43,0.907-1.26,1.522-0.83,0.616-1.38,1.335-1.22,1.6,0.17,0.264,0.05,0.481-0.26,0.481-0.32,0-0.43,0.227-0.26,0.506,0.17,0.278,0.06,0.506-0.25,0.506s-0.43,0.228-0.25,0.507c0.17,0.278,0.07,0.506-0.21,0.506-0.29,0-0.39,0.342-0.23,0.76,0.16,0.417,0.02,0.759-0.3,0.759-0.37,0-0.47,0.393-0.28,1.013,0.18,0.568,0.09,1.012-0.2,1.012s-0.39,0.342-0.23,0.76,0.02,0.76-0.3,0.76c-0.33,0-0.45,0.227-0.28,0.506,0.17,0.278,0.08,0.506-0.21,0.506-0.28,0-0.39,0.342-0.23,0.76s0.03,0.759-0.29,0.759c-0.33,0-0.45,0.228-0.28,0.507,0.17,0.278,0.06,0.506-0.26,0.506-0.31,0-0.42,0.228-0.25,0.506,0.17,0.279,0.06,0.507-0.25,0.507s-0.44,0.204-0.29,0.453c0.16,0.249-0.07,0.589-0.51,0.756-0.43,0.166-0.64,0.532-0.47,0.812,0.17,0.281,0.06,0.51-0.25,0.51s-0.43,0.228-0.25,0.507c0.17,0.278,0.05,0.506-0.26,0.506-0.34,0-0.44,0.409-0.25,1.013,0.18,0.557,0.09,1.012-0.19,1.012-0.64,0-0.54,2.161,0.12,2.614,0.27,0.184,1.21,0.216,2.1,0.073,1.3-0.212,1.97,0.05,3.46,1.363,1.02,0.894,1.85,1.876,1.85,2.182s-0.87-0.29-1.93-1.326c-1.6-1.562-2.23-1.859-3.74-1.748-1.01,0.074-1.72,0.297-1.6,0.497s0.91,0.225,1.76,0.057c1.28-0.258,1.83-0.016,3.39,1.514,1.03,1.002,2.1,1.831,2.38,1.843,0.27,0.011,0.59,0.28,0.69,0.597,0.12,0.356-0.05,0.423-0.45,0.175-0.43-0.265-0.53-0.201-0.29,0.191,0.2,0.326,0.56,0.475,0.79,0.331,0.23-0.143,1.02,0.748,1.74,1.981,1.46,2.499,1.61,3.054,0.68,2.517-0.37-0.211-0.46-0.171-0.21,0.097,0.23,0.253,0.67,0.461,0.97,0.461s0.65,0.316,0.78,0.703c0.16,0.469,0.02,0.57-0.41,0.302-0.44-0.272-0.53-0.201-0.27,0.216,0.21,0.34,0.51,0.487,0.67,0.327s0.86,0.223,1.55,0.852,1.08,0.83,0.86,0.446c-0.28-0.47-0.19-0.626,0.26-0.475,0.37,0.123,1.09-0.189,1.59-0.694,1.01-1.006,1.23-2.437,0.38-2.437-0.29,0-0.41-0.197-0.26-0.438,0.32-0.527-1.43-2.225-1.86-1.797-0.16,0.164-0.68-0.29-1.15-1.008s-1.05-1.186-1.29-1.04c-0.23,0.146-0.8-0.31-1.26-1.013s-1.01-1.174-1.21-1.047c-0.21,0.127-1-0.414-1.75-1.202-1.2-1.253-1.39-1.888-1.49-5.081-0.06-2.007,0.08-3.77,0.32-3.917,0.24-0.148,0.31-0.588,0.16-0.977-0.15-0.39-0.03-0.708,0.27-0.708s0.42-0.342,0.26-0.76c-0.17-0.418-0.08-0.759,0.18-0.759s0.34-0.342,0.18-0.76-0.02-0.759,0.3-0.759c0.33,0,0.45-0.228,0.28-0.507-0.17-0.278-0.06-0.506,0.25-0.506s0.43-0.228,0.25-0.506c-0.17-0.279-0.05-0.507,0.26-0.507s0.42-0.228,0.25-0.506c-0.17-0.279-0.06-0.507,0.25-0.507,0.32,0,0.43-0.227,0.26-0.506-0.18-0.278-0.06-0.506,0.25-0.506s0.42-0.23,0.25-0.51c-0.17-0.281,0.04-0.646,0.47-0.813,0.44-0.166,0.67-0.506,0.51-0.756-0.15-0.249-0.06-0.453,0.21-0.453s0.38-0.513,0.24-1.139c-0.21-0.947-0.15-1.011,0.34-0.38,0.48,0.605,0.54,0.375,0.33-1.139-0.15-1.1-0.05-1.899,0.24-1.899,0.28,0,0.37-0.228,0.19-0.507-0.17-0.278-0.05-0.506,0.26-0.506s0.42-0.228,0.25-0.506c-0.17-0.279-0.06-0.507,0.25-0.507,0.32,0,0.43-0.227,0.26-0.506-0.17-0.278-0.06-0.506,0.25-0.506s0.43-0.23,0.25-0.51c-0.17-0.281,0.04-0.646,0.48-0.813,0.43-0.166,0.66-0.506,0.5-0.756-0.15-0.249-0.02-0.453,0.29-0.453s0.43-0.228,0.25-0.506c-0.17-0.279-0.07-0.507,0.23-0.507,0.59,0,0.45-3.696-0.2-5.184-0.21-0.483-0.14-1.566,0.15-2.405,0.3-0.875,0.33-1.525,0.07-1.525s-0.32-0.379-0.15-0.843c0.2-0.503,0.12-0.715-0.18-0.527-0.7,0.432-0.51-5.463,0.21-6.322,1.08-1.307,5.74-0.198,4.9,1.167-0.15,0.247-0.02,0.449,0.29,0.449s0.53,0.398,0.48,0.886c-0.18,1.802,0.06,2.152,1.49,2.152,1.59,0,2.17-0.823,1.73-2.483-0.16-0.633-0.03-1.062,0.32-1.062,0.33,0,0.46-0.224,0.29-0.498-0.4-0.639,2.71-2.551,4.04-2.487,0.85,0.04,0.81,0.119-0.25,0.48-1.22,0.416-1.21,0.428,0.25,0.348,1.73-0.095,2.95,0.478,2.51,1.18-0.16,0.259-0.03,0.471,0.28,0.471s0.42,0.228,0.25,0.506c-0.17,0.279-0.08,0.507,0.21,0.507s0.39,0.342,0.23,0.759c-0.16,0.418-0.04,0.76,0.27,0.76s0.56,0.569,0.56,1.266c0,0.696-0.25,1.266-0.56,1.266s-0.43,0.341-0.27,0.759,0.06,0.76-0.22,0.76c-0.33,0-0.32,0.351,0.03,1.003,0.3,0.552,0.53,1.862,0.52,2.912-0.04,2.879,0.16,4.186,0.64,4.186,0.23,0,0.28,0.228,0.11,0.507-0.17,0.278-0.06,0.506,0.25,0.506,0.32,0,0.43,0.228,0.26,0.506-0.17,0.279-0.06,0.507,0.25,0.507s0.44,0.204,0.29,0.453c-0.16,0.249,0.08,0.593,0.53,0.764,0.46,0.177,0.68,0.635,0.52,1.066-0.16,0.415-0.06,0.755,0.23,0.755,0.28,0,0.38,0.228,0.2,0.506-0.17,0.279-0.05,0.506,0.26,0.506,0.34,0,0.44,0.41,0.25,1.013-0.2,0.624-0.09,1.013,0.28,1.013,0.35,0,0.49,0.421,0.33,1.013-0.14,0.556-0.02,1.012,0.28,1.012s0.39,0.151,0.21,0.335c-0.18,0.183,0.12,0.655,0.68,1.047s0.89,0.925,0.73,1.185c-0.16,0.259-0.04,0.471,0.27,0.471,0.32,0,0.43,0.228,0.26,0.507-0.17,0.278-0.06,0.506,0.25,0.506s0.43,0.228,0.25,0.506c-0.17,0.279-0.05,0.507,0.26,0.507s0.42,0.228,0.25,0.506c-0.17,0.279-0.08,0.506,0.21,0.506,0.28,0,0.37,0.38,0.19,0.843-0.23,0.61-0.13,0.729,0.35,0.431,0.51-0.316,0.59-0.109,0.34,0.888-0.19,0.765-0.1,1.374,0.22,1.482,0.37,0.125,0.4,0.745,0.09,1.941l-0.46,1.757-0.33-2.73c-0.32-2.716-2.19-6.982-3.89-8.916-0.49-0.556-1.04-1.998-1.22-3.203-0.39-2.533-2.78-7.52-4.24-8.843-0.97-0.876-1.06-0.866-2.46,0.286-2.49,2.042-6.25,4.394-7.53,4.715-1.23,0.31-3.35-1.229-3.88-2.822-0.44-1.315-1.86-0.077-3.72,3.248-1.48,2.654-1.79,3.633-1.51,4.884,0.26,1.175,0.1,1.839-0.64,2.663-3.09,3.464-5.7,10.213-5.7,14.751v3.25l3.15,2.688c8.04,6.866,8.68,7.985,5.95,10.475l-1.53,1.399,1.04,0.94c0.8,0.726,0.89,1.042,0.39,1.39-0.43,0.304-0.31,0.361,0.37,0.175,0.56-0.151,1.35-0.056,1.77,0.212,1.14,0.729,8.07,0.56,10.35-0.251zm-22.93-18.487c0-0.697,0.12-0.982,0.26-0.633,0.14,0.348,0.14,0.917,0,1.265-0.14,0.349-0.26,0.064-0.26-0.632zm31.33-30.348c-0.72-1.358-0.66-1.552,0.48-1.552,1.01,0,2.26,1.634,1.68,2.212-0.62,0.62-1.64,0.308-2.16-0.66zm1.51-0.004c0-0.262-0.23-0.617-0.51-0.789s-0.51,0.042-0.51,0.477c0,0.434,0.23,0.789,0.51,0.789s0.51-0.215,0.51-0.477zm-8.11-22.562c0-0.9044,0.28-1.2658,0.96-1.2658,1.35,0,1.75,1.3911,0.58,2.0176-1.38,0.7375-1.54,0.6613-1.54-0.7518zm-16.2,68.942c0-0.096-0.51-0.609-1.14-1.139l-1.14-0.965,0.97,1.14c0.9,1.07,1.31,1.369,1.31,0.964zm-22.18-8.925c-0.33-0.501-1.1,1.312-1.1,2.602-0.02,2.91,0.75,3.231,1,0.422,0.14-1.532,0.19-2.893,0.1-3.024zm17.12,1.505c-0.3-0.558-0.66-1.013-0.8-1.013s-0.01,0.455,0.29,1.013c0.3,0.556,0.66,1.012,0.8,1.012s0.01-0.456-0.29-1.012zm-12.41-2.026c0.17-0.278,0.09-0.506-0.19-0.506s-0.65,0.228-0.82,0.506c-0.17,0.279-0.09,0.506,0.19,0.506s0.65-0.227,0.82-0.506zm35.71-39.859c0.41-1.193,0.41-1.872,0-2.532-0.5-0.79-0.53-0.761-0.25,0.237,0.21,0.79,0.09,1.14-0.41,1.14-0.39,0-2.14,0.714-3.89,1.588-4.41,2.207-7,2.438-8.9,0.797l-1.48-1.27,0.87-1.827c0.48-1.005,1.61-2.28,2.52-2.834s1.35-1.008,0.98-1.01c-0.38-0.001-1.26,0.454-1.97,1.011s-1.6,1.013-1.98,1.013-0.69,0.285-0.7,0.633c0,0.348-0.14,1.132-0.3,1.741-0.23,0.858,0.23,1.626,2.05,3.392,2.09,2.035,2.64,2.301,4.99,2.436,3.46,0.2,7.62-2.015,8.47-4.515zm-1.83-4.518c0.24-0.622,0.16-0.703-0.32-0.321-0.36,0.28-0.99,0.636-1.41,0.791-0.51,0.192-0.41,0.294,0.33,0.321,0.6,0.022,1.23-0.334,1.4-0.791zm-10.84-1.449c0-0.463,0.32-0.623,0.89-0.441,0.72,0.232,0.75,0.189,0.15-0.236-0.41-0.286-0.87-0.437-1.04-0.334s-0.61-0.311-0.99-0.919c-0.65-1.049-0.64-1.067,0.28-0.347,0.88,0.693,0.91,0.686,0.31-0.079-1.06-1.355-2.4-0.828-2.27,0.888,0.1,1.25,0.05,1.318-0.34,0.457-0.32-0.711-0.47-0.782-0.5-0.24-0.02,0.426,0.32,1.281,0.76,1.901,0.63,0.91,0.97,1.026,1.77,0.601,0.54-0.289,0.98-0.852,0.98-1.251zm7.6,1.014c-0.75-0.894,0.03-1.033,0.9-0.162,0.95,0.95,2.94-0.356,2.87-1.886-0.03-0.68-0.24-1.408-0.48-1.619-0.23-0.211-0.22-0.042,0.01,0.376,0.37,0.653,0.32,0.663-0.42,0.069-0.46-0.38-0.72-0.892-0.57-1.139s0.02-0.449-0.29-0.449c-0.78,0-2.05,1.319-1.66,1.712,0.17,0.172,0.05,0.313-0.28,0.313-0.32,0-0.59,0.456-0.59,1.013,0,0.828-0.34,1.013-1.86,1.013-1.02,0-1.7,0.148-1.52,0.33s1.01,0.311,1.84,0.287c0.84-0.023,1.65,0.17,1.81,0.429,0.16,0.26,0.42,0.473,0.58,0.473s0-0.342-0.34-0.76zm5.37-2.721c-0.34-2.201-1.64-3.608-3.31-3.608-1.81,0-3.59,1.338-3.56,2.687,0.01,1.062,0.06,1.05,1.15-0.282,2.29-2.789,5.26-1.053,4.75,2.773-0.26,2.009-0.23,2.092,0.48,1.151,0.49-0.651,0.66-1.623,0.49-2.721zm-12.2-2.097c-0.04-0.562-0.38-1.302-0.75-1.646-0.54-0.5-0.6-0.488-0.28,0.062,0.29,0.517,0.13,0.606-0.65,0.36-0.56-0.181-1.18-0.091-1.36,0.198-0.17,0.29,0.01,0.527,0.41,0.527s1.01,0.342,1.35,0.76c0.88,1.05,1.37,0.949,1.28-0.261z" transform="translate(10, 932.896805) "/>
- <path id="tracing-f04-ja.svgpath5262" d="M227.11,88.785c-1.07-0.443-1.75-1.018-1.57-1.318,0.19-0.298,0.09-0.382-0.22-0.192-0.3,0.186-3.07-0.348-6.16-1.188s-5.78-1.541-5.99-1.559c-0.2-0.017,0.13-0.231,0.73-0.474,1.22-0.493,6.35,0.111,10.85,1.278,4.27,1.106,5.77,0.968,7.64-0.707,1.4-1.252,1.64-1.817,1.71-4.064,0.05-1.435-0.11-2.731-0.35-2.879-0.24-0.149-0.44,0.751-0.44,1.999,0,3.33-1.84,5.386-4.82,5.386-1.21,0-2.83-0.24-3.6-0.532-0.77-0.293-4.03-0.982-7.24-1.531-6.88-1.176-7.55-1.617-6.71-4.43,0.74-2.453,0.78-4.82,0.08-4.389-0.28,0.175-0.4,0.504-0.26,0.732,0.27,0.428-0.44,3.028-1.34,4.893-0.81,1.698-0.3,2.834,1.61,3.571,1.61,0.618,1.63,0.654,0.26,0.384-2.93-0.577-3.39-1.811-2.04-5.534,0.51-1.439,0.64-3.142,0.43-5.882-0.27-3.484-0.2-3.962,0.78-4.937,0.76-0.76,1.72-1.082,3.23-1.088,2.41-0.009,2.87-0.229,4.06-1.969,0.62-0.92,0.7-1.459,0.3-2.206-0.76-1.426-0.09-4.224,1.86-7.716,0.93-1.671,2.26-4.797,2.96-6.947,1.58-4.862,1.98-5.607,4.64-8.75,1.17-1.393,2.83-3.637,3.69-4.988l1.54-2.455-0.3-9.799c-0.34-11.096,0.02-12.897,3.25-16.479,2.41-2.6627,5.35-3.6957,9.64-3.3861,5.48,0.3948,9.5,2.8938,12.15,7.5492,1.39,2.4457,1.65,3.8187,2.1,11.044,0.37,5.991,0.44,6.24,2.8,10.903,1.33,2.624,3.54,6.056,4.91,7.626,2.86,3.269,4.15,5.595,5.85,10.589,1.45,4.266,1.94,9.256,1.25,12.688-0.4,1.999-0.35,2.768,0.22,3.653,0.4,0.617,0.73,1.707,0.73,2.423,0,1.806,1.28,3.589,3.87,5.37,3.67,2.526,3.07,4.2-2.66,7.391-2.33,1.299-5.27,3.359-6.52,4.579-1.26,1.22-2.5,2.086-2.76,1.924-0.26-0.161-0.63-0.026-0.84,0.3-0.23,0.371-0.14,0.458,0.22,0.232,0.32-0.199,0.59-0.24,0.59-0.091,0,0.623-3.12,1.815-4.76,1.815-2.14,0-4.52-0.842-4.14-1.461,0.15-0.248-0.12-0.419-0.6-0.381-0.52,0.041-0.89-0.286-0.89-0.781,0-0.467-0.21-1.037-0.46-1.265-0.26-0.241-0.29-0.128-0.06,0.267,0.32,0.549,0.19,0.574-0.65,0.127-0.63-0.341-4.31-0.557-9.48-0.557h-8.44l-1.9,1.504c-3.36,2.662-5.46,3.073-8.75,1.708zm4.05-0.016c-0.49-0.128-1.29-0.128-1.77,0-0.49,0.127-0.09,0.231,0.88,0.231,0.98,0,1.38-0.104,0.89-0.231zm32.15-0.009c-0.62-0.12-1.65-0.12-2.28,0-0.62,0.121-0.11,0.22,1.14,0.22,1.26,0,1.77-0.099,1.14-0.22zm-26.77-2.829c0.16,0.161,0.44-0.081,0.61-0.539,0.28-0.727,1.42-0.832,9.13-0.832,4.84,0,8.8,0.204,8.8,0.453s0.52,0.42,1.14,0.38c1.11-0.071,1.14-0.249,1.2-5.516,0.03-2.994-0.11-5.444-0.32-5.444-0.2,0-0.65,0.34-1,0.754-0.34,0.415-0.8,0.645-1.02,0.511-0.21-0.134-0.77,0.332-1.23,1.034-0.46,0.703-1.05,1.144-1.32,0.979s-0.48-0.045-0.48,0.267c0,0.311-0.21,0.44-0.46,0.286s-0.59,0.075-0.75,0.508c-0.17,0.434-0.54,0.647-0.82,0.474s-0.51-0.05-0.51,0.275-0.34,0.459-0.76,0.299c-0.41-0.16-0.76-0.055-0.76,0.233,0,0.295-0.44,0.384-1.01,0.203-0.55-0.176-1.01-0.135-1.01,0.093s-1.82,0.414-4.05,0.414-4.05-0.164-4.05-0.364-0.38-0.218-0.84-0.041c-0.61,0.233-0.73,0.138-0.44-0.334,0.27-0.443,0.18-0.58-0.3-0.42-0.4,0.138-0.71,0.967-0.73,1.964-0.06,2.931-0.18,3.321-1.51,4.647-0.91,0.906-1.09,1.361-0.63,1.54,0.36,0.14,1.14-0.279,1.74-0.931s1.22-1.054,1.38-0.893zm-2.22,0.908c0.35-0.418,0.75-0.759,0.89-0.759s-0.03,0.341-0.38,0.759-0.74,0.759-0.88,0.759,0.03-0.341,0.37-0.759zm32.33-1.275c1.22-0.55,2.38-0.895,2.59-0.767,0.2,0.129,1.02-0.442,1.81-1.267,1.8-1.882,1.46-1.879-2.29,0.018-3.42,1.722-6.55,1.993-7.86,0.681-1.4-1.4-1.77-3.066-1.77-8.026,0-2.641-0.22-4.888-0.51-5.063-0.76-0.471-1.21,1.173-0.54,1.981,0.36,0.435,0.55,2.432,0.48,5.272-0.08,3.597,0.09,4.857,0.77,5.904,1.58,2.406,3.92,2.811,7.32,1.267zm-18.94-6.315c1.09-0.39,2.21-0.573,2.48-0.406s0.34,0.057,0.15-0.244c-0.34-0.554,1.52-1.451,2.47-1.186,0.27,0.079,0.33-0.027,0.13-0.234-0.33-0.322,1.41-1.937,2.14-2,0.62-0.054,2.54-1.541,2.54-1.968,0-0.26-0.62,0.079-1.38,0.754-0.76,0.676-1.05,0.805-0.66,0.289,0.4-0.516,0.9-2.111,1.12-3.544,1.01-6.85,1.12-7.111,3.19-7.495,1.13-0.21,1.62-1.824,1.72-5.648,0.03-1.481,0.25-2.312,0.56-2.122,0.63,0.387,0.68,4.811,0.06,4.811-0.25,0-0.34,1.538-0.21,3.418,0.21,2.857,0.46,3.612,1.55,4.607,1.1,0.999,1.64,1.137,3.37,0.86,1.2-0.191,2.65-0.89,3.46-1.664,0.77-0.734,1.39-1.104,1.39-0.822,0,0.775-2.09,2.578-3.7,3.187-3.24,1.227-5.69,0.076-6.41-3.016l-0.42-1.76-0.05,1.932c-0.07,2.598,0.61,3.697,2.72,4.393,2.04,0.673,3.45,0.355,5.58-1.261,1.46-1.097,4.07-4.841,2.86-4.096-0.73,0.45-0.73,0.166,0-1.435,0.32-0.7,0.78-1.155,1.01-1.011s0.28-0.432,0.11-1.282c-0.17-0.849-0.1-1.544,0.14-1.544s0.44-1.253,0.44-2.785-0.2-2.785-0.44-2.785-0.31-0.684-0.14-1.519c0.19-0.939,0.09-1.519-0.24-1.519-0.31,0-0.42-0.342-0.26-0.76,0.16-0.417,0.05-0.759-0.25-0.759s-0.42-0.342-0.26-0.76c0.16-0.417,0.05-0.759-0.25-0.759s-0.41-0.342-0.25-0.76c0.16-0.417,0.04-0.759-0.26-0.759s-0.41-0.342-0.25-0.76c0.16-0.417,0.06-0.759-0.23-0.759-0.28,0-0.38-0.228-0.21-0.507,0.18-0.278,0.06-0.506-0.25-0.506s-0.42-0.228-0.25-0.506c0.17-0.279,0.06-0.507-0.26-0.507-0.31,0-0.42-0.228-0.25-0.506s0.06-0.506-0.25-0.506-0.43-0.23-0.25-0.51c0.17-0.281-0.04-0.646-0.48-0.813-0.43-0.166-0.67-0.483-0.54-0.705,0.14-0.221-0.6-1.154-1.65-2.072-1.04-0.919-1.83-1.86-1.76-2.091s-0.21-0.551-0.63-0.712-0.64-0.496-0.48-0.746c0.15-0.249,0.02-0.453-0.29-0.453s-0.42-0.229-0.25-0.51c0.17-0.28-0.04-0.646-0.47-0.812-0.44-0.167-0.67-0.507-0.51-0.756,0.15-0.25,0.02-0.454-0.29-0.454s-0.42-0.228-0.25-0.506,0.06-0.506-0.25-0.506-0.43-0.228-0.26-0.507c0.18-0.278,0.06-0.506-0.25-0.506s-0.43-0.228-0.25-0.506c0.17-0.279,0.06-0.507-0.26-0.507-0.31,0-0.42-0.228-0.25-0.506,0.17-0.279,0.05-0.506-0.28-0.506-0.32,0-0.46-0.342-0.3-0.76s0.05-0.76-0.25-0.76-0.41-0.341-0.25-0.759,0.05-0.76-0.25-0.76c-0.36,0-0.48-1.47-0.37-4.304,0.1-2.367-0.02-4.304-0.26-4.304-0.25,0-0.33-0.911-0.18-2.025,0.16-1.16,0.06-2.025-0.22-2.025-0.27,0-0.35-0.457-0.17-1.015,0.21-0.674,0.06-1.118-0.47-1.32-0.44-0.166-0.67-0.5072-0.51-0.7565,0.15-0.2493,0.02-0.4533-0.29-0.4533s-0.42-0.2278-0.25-0.5063,0.06-0.5064-0.25-0.5064-0.45-0.193-0.3-0.4289c0.34-0.557-2.45-3.2379-2.9-2.7851-0.19,0.1896-0.35,0.0654-0.35-0.2759,0-0.3414-0.23-0.4798-0.5-0.3077-0.28,0.1721-0.51,0.0582-0.51-0.2532s-0.23-0.4253-0.51-0.2532-0.5,0.0582-0.5-0.2531c0-0.3114-0.23-0.4253-0.51-0.2532s-0.51,0.0563-0.51-0.2574c0-0.34-0.41-0.4405-1.01-0.249-0.56,0.1768-1.01,0.1352-1.01-0.0924,0-0.2277-1.48-0.4139-3.29-0.4139s-3.29,0.1952-3.29,0.4339-0.35,0.3028-0.76,0.1425c-0.42-0.1603-0.76-0.0573-0.76,0.2289s-0.23,0.3795-0.51,0.2074-0.51-0.0582-0.51,0.2532c0,0.3113-0.19,0.4468-0.42,0.301-0.56-0.3443-3.24,2.4459-2.79,2.8988,0.19,0.1895,0.07,0.3446-0.28,0.3446-0.34,0-0.48,0.2279-0.3,0.5064,0.17,0.2785,0.05,0.5063-0.26,0.5063s-0.42,0.2279-0.25,0.5064,0.08,0.5063-0.21,0.5063c-0.28,0-0.39,0.3418-0.23,0.7595,0.16,0.4183,0.1,0.7593-0.14,0.7593s-0.43,3.418-0.43,7.595c0,4.178,0.13,7.596,0.3,7.596s0.34,1.253,0.39,2.785c0.06,1.719-0.12,2.785-0.46,2.785-0.3,0-0.4,0.228-0.23,0.506s0.06,0.506-0.26,0.506c-0.31,0-0.44,0.204-0.28,0.454,0.15,0.249-0.08,0.589-0.51,0.756-0.43,0.166-0.66,0.508-0.51,0.759,0.16,0.251-0.07,0.593-0.5,0.76-0.44,0.166-0.67,0.507-0.51,0.757,0.15,0.25-0.29,0.831-1,1.292-0.7,0.46-1.16,1.018-1.03,1.24,0.14,0.222-0.43,0.907-1.26,1.523-0.83,0.615-1.38,1.335-1.22,1.599,0.17,0.265,0.05,0.481-0.26,0.481-0.32,0-0.43,0.228-0.26,0.506,0.17,0.279,0.06,0.507-0.25,0.507s-0.43,0.228-0.25,0.506c0.17,0.278,0.07,0.506-0.21,0.506-0.29,0-0.39,0.342-0.23,0.76s0.02,0.759-0.3,0.759c-0.37,0-0.47,0.393-0.28,1.013,0.18,0.568,0.09,1.013-0.2,1.013s-0.39,0.342-0.23,0.759c0.16,0.418,0.02,0.76-0.3,0.76-0.33,0-0.45,0.228-0.28,0.506,0.17,0.279,0.08,0.507-0.21,0.507-0.28,0-0.39,0.341-0.23,0.759s0.03,0.76-0.29,0.76c-0.33,0-0.45,0.228-0.28,0.506s0.06,0.506-0.26,0.506c-0.31,0-0.42,0.228-0.25,0.507,0.17,0.278,0.06,0.506-0.25,0.506s-0.44,0.204-0.29,0.453c0.16,0.25-0.07,0.59-0.51,0.756-0.43,0.167-0.64,0.532-0.47,0.813,0.17,0.28,0.06,0.51-0.25,0.51s-0.43,0.228-0.25,0.506c0.17,0.279,0.05,0.507-0.26,0.507-0.34,0-0.44,0.409-0.25,1.012,0.18,0.557,0.09,1.013-0.19,1.013-0.64,0-0.54,2.161,0.12,2.613,0.27,0.184,1.21,0.217,2.1,0.073,1.3-0.211,1.97,0.051,3.46,1.364,1.02,0.893,1.85,1.875,1.85,2.181s-0.87-0.29-1.93-1.325c-1.6-1.562-2.23-1.86-3.74-1.749-1.01,0.074-1.72,0.298-1.6,0.497,0.12,0.2,0.91,0.226,1.76,0.057,1.28-0.258,1.83-0.016,3.39,1.515,1.03,1.001,2.1,1.831,2.38,1.842,0.27,0.011,0.59,0.28,0.69,0.598,0.12,0.355-0.05,0.422-0.45,0.175-0.43-0.266-0.53-0.201-0.29,0.19,0.2,0.327,0.56,0.476,0.79,0.332s1.02,0.747,1.74,1.981c1.46,2.498,1.61,3.054,0.68,2.517-0.37-0.212-0.46-0.172-0.21,0.096,0.23,0.254,0.67,0.461,0.97,0.461s0.65,0.317,0.78,0.704c0.16,0.469,0.02,0.569-0.41,0.301-0.44-0.271-0.53-0.201-0.27,0.216,0.21,0.341,0.51,0.488,0.67,0.327,0.16-0.16,0.86,0.224,1.55,0.853s1.08,0.829,0.86,0.445c-0.28-0.47-0.19-0.625,0.26-0.475,0.37,0.124,1.09-0.189,1.59-0.694,1.01-1.006,1.23-2.436,0.38-2.436-0.29,0-0.41-0.198-0.26-0.439,0.32-0.526-1.43-2.224-1.86-1.797-0.16,0.164-0.68-0.289-1.15-1.007s-1.05-1.187-1.29-1.041c-0.23,0.146-0.8-0.31-1.26-1.012-0.46-0.703-1.01-1.174-1.21-1.047-0.21,0.127-1-0.414-1.75-1.202-1.2-1.254-1.39-1.889-1.49-5.082-0.06-2.007,0.08-3.769,0.32-3.917s0.31-0.587,0.16-0.977c-0.15-0.389-0.03-0.708,0.27-0.708s0.42-0.342,0.26-0.759c-0.17-0.418-0.08-0.76,0.18-0.76s0.34-0.342,0.18-0.76c-0.16-0.417-0.02-0.759,0.3-0.759,0.33,0,0.45-0.228,0.28-0.506-0.17-0.279-0.06-0.507,0.25-0.507s0.43-0.228,0.25-0.506c-0.17-0.279-0.05-0.506,0.26-0.506s0.42-0.228,0.25-0.507c-0.17-0.278-0.06-0.506,0.25-0.506,0.32,0,0.43-0.228,0.26-0.507-0.18-0.278-0.06-0.506,0.25-0.506s0.42-0.229,0.25-0.51c-0.17-0.28,0.04-0.646,0.47-0.812,0.44-0.167,0.67-0.507,0.51-0.756-0.15-0.25-0.06-0.454,0.21-0.454s0.38-0.512,0.24-1.139c-0.21-0.946-0.15-1.011,0.34-0.38,0.48,0.606,0.54,0.375,0.33-1.139-0.15-1.1-0.05-1.899,0.24-1.899,0.28,0,0.37-0.228,0.19-0.506-0.17-0.279-0.05-0.507,0.26-0.507s0.42-0.227,0.25-0.506c-0.17-0.278-0.06-0.506,0.25-0.506,0.32,0,0.43-0.228,0.26-0.506-0.17-0.279-0.06-0.507,0.25-0.507s0.43-0.229,0.25-0.51c-0.17-0.28,0.04-0.646,0.48-0.812,0.43-0.167,0.66-0.507,0.5-0.756-0.15-0.25-0.02-0.454,0.29-0.454s0.43-0.227,0.25-0.506c-0.17-0.279-0.07-0.506,0.23-0.506,0.59,0,0.45-3.696-0.2-5.184-0.21-0.484-0.14-1.566,0.15-2.405,0.3-0.875,0.33-1.526,0.07-1.526s-0.32-0.379-0.15-0.842c0.2-0.504,0.12-0.716-0.18-0.528-0.7,0.432-0.51-5.462,0.21-6.322,1.08-1.307,5.74-0.198,4.9,1.167-0.15,0.247-0.02,0.449,0.29,0.449s0.53,0.399,0.48,0.886c-0.18,1.802,0.06,2.152,1.49,2.152,1.59,0,2.17-0.822,1.73-2.483-0.16-0.633-0.03-1.061,0.32-1.061,0.33,0,0.46-0.224,0.29-0.499-0.4-0.639,2.71-2.551,4.04-2.487,0.85,0.041,0.81,0.119-0.25,0.48-1.22,0.416-1.21,0.428,0.25,0.348,1.73-0.095,2.95,0.479,2.51,1.18-0.16,0.259-0.03,0.472,0.28,0.472s0.42,0.227,0.25,0.506c-0.17,0.278-0.08,0.506,0.21,0.506s0.39,0.342,0.23,0.76c-0.16,0.417-0.04,0.759,0.27,0.759s0.56,0.57,0.56,1.266-0.25,1.266-0.56,1.266-0.43,0.342-0.27,0.759c0.16,0.418,0.06,0.76-0.22,0.76-0.33,0-0.32,0.351,0.03,1.004,0.3,0.552,0.53,1.862,0.52,2.911-0.04,2.879,0.16,4.187,0.64,4.187,0.23,0,0.28,0.228,0.11,0.506s-0.06,0.506,0.25,0.506c0.32,0,0.43,0.228,0.26,0.507-0.17,0.278-0.06,0.506,0.25,0.506s0.44,0.204,0.29,0.453c-0.16,0.25,0.08,0.593,0.53,0.764,0.46,0.177,0.68,0.635,0.52,1.066-0.16,0.415-0.06,0.755,0.23,0.755,0.28,0,0.38,0.228,0.2,0.507-0.17,0.278-0.05,0.506,0.26,0.506,0.34,0,0.44,0.409,0.25,1.012-0.2,0.624-0.09,1.013,0.28,1.013,0.35,0,0.49,0.421,0.33,1.013-0.14,0.557-0.02,1.013,0.28,1.013s0.39,0.15,0.21,0.334,0.12,0.655,0.68,1.047,0.89,0.926,0.73,1.185-0.04,0.472,0.27,0.472c0.32,0,0.43,0.228,0.26,0.506-0.17,0.279-0.06,0.506,0.25,0.506s0.43,0.228,0.25,0.507c-0.17,0.278-0.05,0.506,0.26,0.506s0.42,0.228,0.25,0.506c-0.17,0.279-0.08,0.507,0.21,0.507,0.28,0,0.37,0.379,0.19,0.842-0.23,0.61-0.13,0.729,0.35,0.431,0.51-0.315,0.59-0.108,0.34,0.888-0.19,0.765-0.1,1.375,0.22,1.482,0.37,0.125,0.4,0.746,0.09,1.941l-0.46,1.758-0.33-2.731c-0.32-2.715-2.19-6.981-3.89-8.915-0.49-0.557-1.04-1.999-1.22-3.203-0.39-2.533-2.78-7.521-4.24-8.844-0.97-0.875-1.06-0.865-2.46,0.286-2.49,2.042-6.25,4.394-7.53,4.715-1.23,0.311-3.35-1.228-3.88-2.821-0.44-1.316-1.86-0.078-3.72,3.248-1.48,2.654-1.79,3.633-1.51,4.884,0.26,1.174,0.1,1.838-0.64,2.662-3.09,3.465-5.7,10.213-5.7,14.751v3.25l3.15,2.689c8.04,6.866,8.68,7.984,5.95,10.474l-1.53,1.4,1.04,0.939c0.8,0.726,0.89,1.042,0.39,1.39-0.43,0.304-0.31,0.361,0.37,0.175,0.56-0.151,1.35-0.055,1.77,0.213,1.14,0.728,8.07,0.56,10.35-0.252zm-22.93-18.487c0-0.696,0.12-0.981,0.26-0.633s0.14,0.918,0,1.266-0.26,0.063-0.26-0.633zm31.33-30.348c-0.72-1.358-0.66-1.552,0.48-1.552,1.01,0,2.26,1.635,1.68,2.212-0.62,0.62-1.64,0.308-2.16-0.66zm1.51-0.003c0-0.262-0.23-0.617-0.51-0.79-0.28-0.172-0.51,0.043-0.51,0.477s0.23,0.789,0.51,0.789,0.51-0.214,0.51-0.476zm-8.11-22.563c0-0.9044,0.28-1.2658,0.96-1.2658,1.35,0,1.75,1.3911,0.58,2.0176-1.38,0.7375-1.54,0.6613-1.54-0.7518zm-16.2,68.942c0-0.096-0.51-0.608-1.14-1.139l-1.14-0.964,0.97,1.139c0.9,1.07,1.31,1.37,1.31,0.964zm-22.18-8.924c-0.33-0.501-1.1,1.311-1.1,2.602-0.02,2.91,0.75,3.23,1,0.421,0.14-1.532,0.19-2.892,0.1-3.023zm17.12,1.504c-0.3-0.557-0.66-1.013-0.8-1.013s-0.01,0.456,0.29,1.013,0.66,1.013,0.8,1.013,0.01-0.456-0.29-1.013zm-12.41-2.026c0.17-0.278,0.09-0.506-0.19-0.506s-0.65,0.228-0.82,0.506c-0.17,0.279-0.09,0.507,0.19,0.507s0.65-0.228,0.82-0.507zm35.71-39.859c0.41-1.193,0.41-1.871,0-2.531-0.5-0.791-0.53-0.762-0.25,0.237,0.21,0.789,0.09,1.139-0.41,1.139-0.39,0-2.14,0.715-3.89,1.588-4.41,2.208-7,2.439-8.9,0.797l-1.48-1.27,0.87-1.827c0.48-1.004,1.61-2.28,2.52-2.834s1.35-1.008,0.98-1.009c-0.38-0.001-1.26,0.454-1.97,1.011s-1.6,1.012-1.98,1.012-0.69,0.285-0.7,0.633c0,0.348-0.14,1.132-0.3,1.742-0.23,0.857,0.23,1.625,2.05,3.392,2.09,2.035,2.64,2.3,4.99,2.436,3.46,0.2,7.62-2.015,8.47-4.516zm-1.83-4.518c0.24-0.621,0.16-0.702-0.32-0.321-0.36,0.281-0.99,0.637-1.41,0.791-0.51,0.192-0.41,0.294,0.33,0.321,0.6,0.022,1.23-0.334,1.4-0.791zm-10.84-1.449c0-0.462,0.32-0.622,0.89-0.441,0.72,0.233,0.75,0.189,0.15-0.236-0.41-0.286-0.87-0.436-1.04-0.333s-0.61-0.311-0.99-0.92c-0.65-1.048-0.64-1.066,0.28-0.347,0.88,0.693,0.91,0.686,0.31-0.078-1.06-1.356-2.4-0.829-2.27,0.888,0.1,1.249,0.05,1.317-0.34,0.456-0.32-0.71-0.47-0.781-0.5-0.239-0.02,0.425,0.32,1.28,0.76,1.9,0.63,0.91,0.97,1.026,1.77,0.602,0.54-0.29,0.98-0.853,0.98-1.252zm7.6,1.014c-0.75-0.894,0.03-1.033,0.9-0.162,0.95,0.951,2.94-0.355,2.87-1.885-0.03-0.68-0.24-1.409-0.48-1.62-0.23-0.211-0.22-0.041,0.01,0.376,0.37,0.653,0.32,0.663-0.42,0.069-0.46-0.379-0.72-0.892-0.57-1.139s0.02-0.449-0.29-0.449c-0.78,0-2.05,1.32-1.66,1.712,0.17,0.172,0.05,0.314-0.28,0.314-0.32,0-0.59,0.455-0.59,1.012,0,0.829-0.34,1.013-1.86,1.013-1.02,0-1.7,0.149-1.52,0.33,0.18,0.182,1.01,0.311,1.84,0.288,0.84-0.024,1.65,0.169,1.81,0.429s0.42,0.472,0.58,0.472,0-0.342-0.34-0.76zm5.37-2.721c-0.34-2.2-1.64-3.608-3.31-3.608-1.81,0-3.59,1.339-3.56,2.687,0.01,1.063,0.06,1.051,1.15-0.282,2.29-2.788,5.26-1.052,4.75,2.774-0.26,2.009-0.23,2.091,0.48,1.15,0.49-0.65,0.66-1.623,0.49-2.721zm-12.2-2.097c-0.04-0.561-0.38-1.302-0.75-1.645-0.54-0.501-0.6-0.489-0.28,0.062,0.29,0.517,0.13,0.606-0.65,0.359-0.56-0.18-1.18-0.091-1.36,0.199-0.17,0.29,0.01,0.527,0.41,0.527s1.01,0.342,1.35,0.759c0.88,1.051,1.37,0.95,1.28-0.261z" transform="translate(10, 932.896805) " stroke="#000" stroke-miterlimit="4.0000000" stroke-width="0.37500000" fill="none"/>
- <rect id="d0e113" display="none" height="1000px" width="288" y="1049.4" x="10"/>
+ <text id="tracing-f04-ja.svgtext4626" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 960.2904225) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.153664" x="69.581543" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f04-ja.svgtspan4627" y="97.153664" x="69.581543" role="line">オリジナル画像</tspan></text>
+ <text id="tracing-f04-ja.svgtext4629" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 960.2904225) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="156.37865" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f04-ja.svgtspan5892" y="97.378670" x="156.37865" role="line">量子化 (12 色)</tspan><tspan id="tracing-f04-ja.svgtspan5894" y="103.37867" x="156.37865" role="line">フィルあり、ストロークなし</tspan></text>
+ <text id="tracing-f04-ja.svgtext4634" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 960.2904225) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="97.37867" x="245.12865" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f04-ja.svgtspan5896" y="97.378670" x="245.12865" role="line">量子化 (12 色)</tspan><tspan id="tracing-f04-ja.svgtspan5898" y="103.37867" x="245.12865" role="line">ストロークあり、フィルなし</tspan></text>
+ <image id="tracing-f04-ja.svgimage4639" sodipodi:absref="/tux.png" xlink:href="tux.png" transform="translate(10, 960.2904225) " height="91.143" width="76.965" y="-0.000097656" x="31.099"/>
+ <path id="tracing-f04-ja.svgpath5261" d="M138.36,88.785c-1.07-0.444-1.75-1.018-1.57-1.318,0.19-0.298,0.09-0.383-0.22-0.193-0.3,0.187-3.07-0.348-6.16-1.187-3.09-0.84-5.78-1.541-5.99-1.559-0.2-0.018,0.13-0.231,0.73-0.474,1.22-0.493,6.35,0.11,10.85,1.278,4.27,1.106,5.77,0.967,7.64-0.707,1.4-1.253,1.64-1.817,1.71-4.064,0.05-1.435-0.11-2.731-0.35-2.88-0.24-0.148-0.44,0.752-0.44,2,0,3.33-1.84,5.385-4.82,5.385-1.21,0-2.83-0.239-3.6-0.532s-4.03-0.982-7.24-1.531c-6.88-1.176-7.55-1.616-6.71-4.429,0.74-2.453,0.78-4.821,0.08-4.389-0.28,0.175-0.4,0.504-0.26,0.731,0.27,0.429-0.44,3.028-1.34,4.894-0.81,1.698-0.3,2.834,1.61,3.57,1.61,0.619,1.63,0.655,0.26,0.384-2.93-0.576-3.39-1.811-2.04-5.533,0.51-1.439,0.64-3.143,0.43-5.883-0.27-3.484-0.2-3.961,0.78-4.937,0.76-0.759,1.72-1.082,3.23-1.087,2.41-0.009,2.87-0.23,4.06-1.97,0.62-0.92,0.7-1.459,0.3-2.205-0.76-1.426-0.09-4.225,1.86-7.717,0.93-1.671,2.26-4.797,2.96-6.946,1.58-4.862,1.98-5.607,4.64-8.751,1.17-1.392,2.83-3.637,3.69-4.987l1.54-2.456-0.3-9.799c-0.34-11.096,0.02-12.896,3.25-16.478,2.41-2.6627,5.35-3.6957,9.64-3.3861,5.48,0.3948,9.5,2.8938,12.15,7.5492,1.39,2.4461,1.65,3.8181,2.1,11.044,0.37,5.991,0.44,6.24,2.8,10.902,1.33,2.625,3.54,6.057,4.91,7.627,2.86,3.269,4.15,5.594,5.85,10.589,1.45,4.266,1.94,9.256,1.25,12.687-0.4,2-0.35,2.768,0.22,3.654,0.4,0.617,0.73,1.707,0.73,2.423,0,1.806,1.28,3.588,3.87,5.369,3.67,2.527,3.07,4.2-2.66,7.392-2.33,1.299-5.27,3.359-6.52,4.579-1.26,1.219-2.5,2.085-2.76,1.924s-0.63-0.026-0.84,0.3c-0.23,0.37-0.14,0.457,0.22,0.232,0.32-0.199,0.59-0.24,0.59-0.092,0,0.624-3.12,1.816-4.76,1.816-2.14,0-4.52-0.842-4.14-1.461,0.15-0.248-0.12-0.419-0.6-0.381-0.52,0.04-0.89-0.286-0.89-0.781,0-0.468-0.21-1.037-0.46-1.266-0.26-0.241-0.29-0.128-0.06,0.268,0.32,0.549,0.19,0.574-0.65,0.127-0.63-0.341-4.31-0.557-9.48-0.557h-8.44l-1.9,1.504c-3.36,2.662-5.46,3.072-8.75,1.708zm4.05-0.017c-0.49-0.127-1.29-0.127-1.77,0-0.49,0.128-0.09,0.232,0.88,0.232,0.98,0,1.38-0.104,0.89-0.232zm32.15-0.008c-0.62-0.121-1.65-0.121-2.28,0-0.62,0.12-0.11,0.219,1.14,0.219,1.26,0,1.77-0.099,1.14-0.219zm-26.77-2.829c0.16,0.161,0.44-0.081,0.61-0.539,0.28-0.728,1.42-0.832,9.13-0.832,4.84,0,8.8,0.204,8.8,0.453s0.52,0.42,1.14,0.38c1.11-0.071,1.14-0.249,1.2-5.517,0.03-2.994-0.11-5.443-0.32-5.443-0.2,0-0.65,0.339-1,0.754-0.34,0.415-0.8,0.645-1.02,0.511-0.21-0.134-0.77,0.331-1.23,1.034s-1.05,1.143-1.32,0.979c-0.27-0.165-0.48-0.045-0.48,0.267,0,0.311-0.21,0.44-0.46,0.285-0.25-0.154-0.59,0.075-0.75,0.509-0.17,0.434-0.54,0.647-0.82,0.474-0.28-0.174-0.51-0.05-0.51,0.275s-0.34,0.459-0.76,0.299c-0.41-0.16-0.76-0.056-0.76,0.233,0,0.294-0.44,0.383-1.01,0.203-0.55-0.177-1.01-0.135-1.01,0.092,0,0.228-1.82,0.414-4.05,0.414s-4.05-0.163-4.05-0.364c0-0.2-0.38-0.218-0.84-0.04-0.61,0.232-0.73,0.138-0.44-0.335,0.27-0.442,0.18-0.58-0.3-0.419-0.4,0.137-0.71,0.966-0.73,1.964-0.06,2.93-0.18,3.32-1.51,4.646-0.91,0.907-1.09,1.362-0.63,1.541,0.36,0.14,1.14-0.279,1.74-0.932,0.6-0.652,1.22-1.054,1.38-0.892zm-2.22,0.908c0.35-0.418,0.75-0.76,0.89-0.76s-0.03,0.342-0.38,0.76c-0.35,0.417-0.74,0.759-0.88,0.759s0.03-0.342,0.37-0.759zm32.33-1.276c1.22-0.549,2.38-0.894,2.59-0.766,0.2,0.128,1.02-0.442,1.81-1.268,1.8-1.881,1.46-1.879-2.29,0.018-3.42,1.722-6.55,1.994-7.86,0.681-1.4-1.399-1.77-3.065-1.77-8.026,0-2.641-0.22-4.887-0.51-5.062-0.76-0.472-1.21,1.173-0.54,1.98,0.36,0.435,0.55,2.432,0.48,5.273-0.08,3.597,0.09,4.856,0.77,5.903,1.58,2.406,3.92,2.812,7.32,1.267zm-18.94-6.314c1.09-0.391,2.21-0.573,2.48-0.406s0.34,0.057,0.15-0.245c-0.34-0.554,1.52-1.45,2.47-1.185,0.27,0.078,0.33-0.027,0.13-0.234-0.33-0.322,1.41-1.937,2.14-2.001,0.62-0.053,2.54-1.54,2.54-1.968,0-0.26-0.62,0.08-1.38,0.755s-1.05,0.805-0.66,0.289c0.4-0.516,0.9-2.112,1.12-3.545,1.01-6.849,1.12-7.11,3.19-7.494,1.13-0.21,1.62-1.824,1.72-5.648,0.03-1.481,0.25-2.313,0.56-2.122,0.63,0.386,0.68,4.81,0.06,4.81-0.25,0-0.34,1.538-0.21,3.418,0.21,2.857,0.46,3.613,1.55,4.608,1.1,0.998,1.64,1.137,3.37,0.86,1.2-0.191,2.65-0.891,3.46-1.665,0.77-0.734,1.39-1.103,1.39-0.821,0,0.775-2.09,2.578-3.7,3.187-3.24,1.227-5.69,0.075-6.41-3.016l-0.42-1.76-0.05,1.932c-0.07,2.597,0.61,3.697,2.72,4.393,2.04,0.673,3.45,0.355,5.58-1.262,1.46-1.096,4.07-4.841,2.86-4.096-0.73,0.45-0.73,0.167,0-1.434,0.32-0.701,0.78-1.156,1.01-1.011,0.23,0.144,0.28-0.433,0.11-1.282-0.17-0.85-0.1-1.544,0.14-1.544s0.44-1.254,0.44-2.785c0-1.532-0.2-2.785-0.44-2.785s-0.31-0.684-0.14-1.519c0.19-0.939,0.09-1.519-0.24-1.519-0.31,0-0.42-0.342-0.26-0.76s0.05-0.759-0.25-0.759-0.42-0.342-0.26-0.76,0.05-0.759-0.25-0.759-0.41-0.342-0.25-0.76,0.04-0.76-0.26-0.76-0.41-0.341-0.25-0.759,0.06-0.76-0.23-0.76c-0.28,0-0.38-0.227-0.21-0.506,0.18-0.278,0.06-0.506-0.25-0.506s-0.42-0.228-0.25-0.507c0.17-0.278,0.06-0.506-0.26-0.506-0.31,0-0.42-0.228-0.25-0.506,0.17-0.279,0.06-0.507-0.25-0.507s-0.43-0.229-0.25-0.51c0.17-0.28-0.04-0.646-0.48-0.812-0.43-0.167-0.67-0.484-0.54-0.705,0.14-0.221-0.6-1.154-1.65-2.073-1.04-0.919-1.83-1.859-1.76-2.09s-0.21-0.552-0.63-0.713c-0.42-0.16-0.64-0.496-0.48-0.745,0.15-0.249,0.02-0.453-0.29-0.453s-0.42-0.23-0.25-0.51c0.17-0.281-0.04-0.646-0.47-0.813-0.44-0.166-0.67-0.507-0.51-0.756,0.15-0.249,0.02-0.453-0.29-0.453s-0.42-0.228-0.25-0.506c0.17-0.279,0.06-0.507-0.25-0.507s-0.43-0.228-0.26-0.506c0.18-0.279,0.06-0.507-0.25-0.507s-0.43-0.227-0.25-0.506c0.17-0.278,0.06-0.506-0.26-0.506-0.31,0-0.42-0.228-0.25-0.506,0.17-0.279,0.05-0.507-0.28-0.507-0.32,0-0.46-0.342-0.3-0.759,0.16-0.418,0.05-0.76-0.25-0.76s-0.41-0.342-0.25-0.759c0.16-0.418,0.05-0.76-0.25-0.76-0.36,0-0.48-1.47-0.37-4.304,0.1-2.367-0.02-4.304-0.26-4.304-0.25,0-0.33-0.911-0.18-2.025,0.16-1.161,0.06-2.026-0.22-2.026-0.27,0-0.35-0.457-0.17-1.015,0.21-0.674,0.06-1.117-0.47-1.319-0.44-0.167-0.67-0.5076-0.51-0.7569,0.15-0.2493,0.02-0.4533-0.29-0.4533s-0.42-0.2278-0.25-0.5063,0.06-0.5064-0.25-0.5064-0.45-0.193-0.3-0.4289c0.34-0.557-2.45-3.2379-2.9-2.7851-0.19,0.1896-0.35,0.0654-0.35-0.2759,0-0.3414-0.23-0.4798-0.5-0.3077-0.28,0.1721-0.51,0.0582-0.51-0.2532s-0.23-0.4253-0.51-0.2532-0.5,0.0582-0.5-0.2531c0-0.3114-0.23-0.4253-0.51-0.2532s-0.51,0.0563-0.51-0.2574c0-0.34-0.41-0.4405-1.01-0.249-0.56,0.1768-1.01,0.1352-1.01-0.0924,0-0.2277-1.48-0.4139-3.29-0.4139s-3.29,0.1952-3.29,0.4339-0.35,0.3028-0.76,0.1425c-0.42-0.1603-0.76-0.0573-0.76,0.2289s-0.23,0.3795-0.51,0.2074-0.51-0.0582-0.51,0.2532c0,0.3113-0.19,0.4468-0.42,0.301-0.56-0.3443-3.24,2.4459-2.79,2.8988,0.19,0.1895,0.07,0.3446-0.28,0.3446-0.34,0-0.48,0.2279-0.3,0.5064,0.17,0.2785,0.05,0.5063-0.26,0.5063s-0.42,0.2279-0.25,0.5064,0.08,0.5063-0.21,0.5063c-0.28,0-0.39,0.3418-0.23,0.7595s0.1,0.7597-0.14,0.7597-0.43,3.418-0.43,7.595c0,4.178,0.13,7.595,0.3,7.595s0.34,1.254,0.39,2.785c0.06,1.72-0.12,2.785-0.46,2.785-0.3,0-0.4,0.228-0.23,0.507,0.17,0.278,0.06,0.506-0.26,0.506-0.31,0-0.44,0.204-0.28,0.453,0.15,0.249-0.08,0.59-0.51,0.756-0.43,0.167-0.66,0.508-0.51,0.76,0.16,0.251-0.07,0.593-0.5,0.759-0.44,0.167-0.67,0.507-0.51,0.757,0.15,0.25-0.29,0.832-1,1.292-0.7,0.461-1.16,1.019-1.03,1.241,0.14,0.222-0.43,0.907-1.26,1.522-0.83,0.616-1.38,1.335-1.22,1.6,0.17,0.264,0.05,0.481-0.26,0.481-0.32,0-0.43,0.227-0.26,0.506,0.17,0.278,0.06,0.506-0.25,0.506s-0.43,0.228-0.25,0.507c0.17,0.278,0.07,0.506-0.21,0.506-0.29,0-0.39,0.342-0.23,0.76,0.16,0.417,0.02,0.759-0.3,0.759-0.37,0-0.47,0.393-0.28,1.013,0.18,0.568,0.09,1.012-0.2,1.012s-0.39,0.342-0.23,0.76,0.02,0.76-0.3,0.76c-0.33,0-0.45,0.227-0.28,0.506,0.17,0.278,0.08,0.506-0.21,0.506-0.28,0-0.39,0.342-0.23,0.76s0.03,0.759-0.29,0.759c-0.33,0-0.45,0.228-0.28,0.507,0.17,0.278,0.06,0.506-0.26,0.506-0.31,0-0.42,0.228-0.25,0.506,0.17,0.279,0.06,0.507-0.25,0.507s-0.44,0.204-0.29,0.453c0.16,0.249-0.07,0.589-0.51,0.756-0.43,0.166-0.64,0.532-0.47,0.812,0.17,0.281,0.06,0.51-0.25,0.51s-0.43,0.228-0.25,0.507c0.17,0.278,0.05,0.506-0.26,0.506-0.34,0-0.44,0.409-0.25,1.013,0.18,0.557,0.09,1.012-0.19,1.012-0.64,0-0.54,2.161,0.12,2.614,0.27,0.184,1.21,0.216,2.1,0.073,1.3-0.212,1.97,0.05,3.46,1.363,1.02,0.894,1.85,1.876,1.85,2.182s-0.87-0.29-1.93-1.326c-1.6-1.562-2.23-1.859-3.74-1.748-1.01,0.074-1.72,0.297-1.6,0.497s0.91,0.225,1.76,0.057c1.28-0.258,1.83-0.016,3.39,1.514,1.03,1.002,2.1,1.831,2.38,1.843,0.27,0.011,0.59,0.28,0.69,0.597,0.12,0.356-0.05,0.423-0.45,0.175-0.43-0.265-0.53-0.201-0.29,0.191,0.2,0.326,0.56,0.475,0.79,0.331,0.23-0.143,1.02,0.748,1.74,1.981,1.46,2.499,1.61,3.054,0.68,2.517-0.37-0.211-0.46-0.171-0.21,0.097,0.23,0.253,0.67,0.461,0.97,0.461s0.65,0.316,0.78,0.703c0.16,0.469,0.02,0.57-0.41,0.302-0.44-0.272-0.53-0.201-0.27,0.216,0.21,0.34,0.51,0.487,0.67,0.327s0.86,0.223,1.55,0.852,1.08,0.83,0.86,0.446c-0.28-0.47-0.19-0.626,0.26-0.475,0.37,0.123,1.09-0.189,1.59-0.694,1.01-1.006,1.23-2.437,0.38-2.437-0.29,0-0.41-0.197-0.26-0.438,0.32-0.527-1.43-2.225-1.86-1.797-0.16,0.164-0.68-0.29-1.15-1.008s-1.05-1.186-1.29-1.04c-0.23,0.146-0.8-0.31-1.26-1.013s-1.01-1.174-1.21-1.047c-0.21,0.127-1-0.414-1.75-1.202-1.2-1.253-1.39-1.888-1.49-5.081-0.06-2.007,0.08-3.77,0.32-3.917,0.24-0.148,0.31-0.588,0.16-0.977-0.15-0.39-0.03-0.708,0.27-0.708s0.42-0.342,0.26-0.76c-0.17-0.418-0.08-0.759,0.18-0.759s0.34-0.342,0.18-0.76-0.02-0.759,0.3-0.759c0.33,0,0.45-0.228,0.28-0.507-0.17-0.278-0.06-0.506,0.25-0.506s0.43-0.228,0.25-0.506c-0.17-0.279-0.05-0.507,0.26-0.507s0.42-0.228,0.25-0.506c-0.17-0.279-0.06-0.507,0.25-0.507,0.32,0,0.43-0.227,0.26-0.506-0.18-0.278-0.06-0.506,0.25-0.506s0.42-0.23,0.25-0.51c-0.17-0.281,0.04-0.646,0.47-0.813,0.44-0.166,0.67-0.506,0.51-0.756-0.15-0.249-0.06-0.453,0.21-0.453s0.38-0.513,0.24-1.139c-0.21-0.947-0.15-1.011,0.34-0.38,0.48,0.605,0.54,0.375,0.33-1.139-0.15-1.1-0.05-1.899,0.24-1.899,0.28,0,0.37-0.228,0.19-0.507-0.17-0.278-0.05-0.506,0.26-0.506s0.42-0.228,0.25-0.506c-0.17-0.279-0.06-0.507,0.25-0.507,0.32,0,0.43-0.227,0.26-0.506-0.17-0.278-0.06-0.506,0.25-0.506s0.43-0.23,0.25-0.51c-0.17-0.281,0.04-0.646,0.48-0.813,0.43-0.166,0.66-0.506,0.5-0.756-0.15-0.249-0.02-0.453,0.29-0.453s0.43-0.228,0.25-0.506c-0.17-0.279-0.07-0.507,0.23-0.507,0.59,0,0.45-3.696-0.2-5.184-0.21-0.483-0.14-1.566,0.15-2.405,0.3-0.875,0.33-1.525,0.07-1.525s-0.32-0.379-0.15-0.843c0.2-0.503,0.12-0.715-0.18-0.527-0.7,0.432-0.51-5.463,0.21-6.322,1.08-1.307,5.74-0.198,4.9,1.167-0.15,0.247-0.02,0.449,0.29,0.449s0.53,0.398,0.48,0.886c-0.18,1.802,0.06,2.152,1.49,2.152,1.59,0,2.17-0.823,1.73-2.483-0.16-0.633-0.03-1.062,0.32-1.062,0.33,0,0.46-0.224,0.29-0.498-0.4-0.639,2.71-2.551,4.04-2.487,0.85,0.04,0.81,0.119-0.25,0.48-1.22,0.416-1.21,0.428,0.25,0.348,1.73-0.095,2.95,0.478,2.51,1.18-0.16,0.259-0.03,0.471,0.28,0.471s0.42,0.228,0.25,0.506c-0.17,0.279-0.08,0.507,0.21,0.507s0.39,0.342,0.23,0.759c-0.16,0.418-0.04,0.76,0.27,0.76s0.56,0.569,0.56,1.266c0,0.696-0.25,1.266-0.56,1.266s-0.43,0.341-0.27,0.759,0.06,0.76-0.22,0.76c-0.33,0-0.32,0.351,0.03,1.003,0.3,0.552,0.53,1.862,0.52,2.912-0.04,2.879,0.16,4.186,0.64,4.186,0.23,0,0.28,0.228,0.11,0.507-0.17,0.278-0.06,0.506,0.25,0.506,0.32,0,0.43,0.228,0.26,0.506-0.17,0.279-0.06,0.507,0.25,0.507s0.44,0.204,0.29,0.453c-0.16,0.249,0.08,0.593,0.53,0.764,0.46,0.177,0.68,0.635,0.52,1.066-0.16,0.415-0.06,0.755,0.23,0.755,0.28,0,0.38,0.228,0.2,0.506-0.17,0.279-0.05,0.506,0.26,0.506,0.34,0,0.44,0.41,0.25,1.013-0.2,0.624-0.09,1.013,0.28,1.013,0.35,0,0.49,0.421,0.33,1.013-0.14,0.556-0.02,1.012,0.28,1.012s0.39,0.151,0.21,0.335c-0.18,0.183,0.12,0.655,0.68,1.047s0.89,0.925,0.73,1.185c-0.16,0.259-0.04,0.471,0.27,0.471,0.32,0,0.43,0.228,0.26,0.507-0.17,0.278-0.06,0.506,0.25,0.506s0.43,0.228,0.25,0.506c-0.17,0.279-0.05,0.507,0.26,0.507s0.42,0.228,0.25,0.506c-0.17,0.279-0.08,0.506,0.21,0.506,0.28,0,0.37,0.38,0.19,0.843-0.23,0.61-0.13,0.729,0.35,0.431,0.51-0.316,0.59-0.109,0.34,0.888-0.19,0.765-0.1,1.374,0.22,1.482,0.37,0.125,0.4,0.745,0.09,1.941l-0.46,1.757-0.33-2.73c-0.32-2.716-2.19-6.982-3.89-8.916-0.49-0.556-1.04-1.998-1.22-3.203-0.39-2.533-2.78-7.52-4.24-8.843-0.97-0.876-1.06-0.866-2.46,0.286-2.49,2.042-6.25,4.394-7.53,4.715-1.23,0.31-3.35-1.229-3.88-2.822-0.44-1.315-1.86-0.077-3.72,3.248-1.48,2.654-1.79,3.633-1.51,4.884,0.26,1.175,0.1,1.839-0.64,2.663-3.09,3.464-5.7,10.213-5.7,14.751v3.25l3.15,2.688c8.04,6.866,8.68,7.985,5.95,10.475l-1.53,1.399,1.04,0.94c0.8,0.726,0.89,1.042,0.39,1.39-0.43,0.304-0.31,0.361,0.37,0.175,0.56-0.151,1.35-0.056,1.77,0.212,1.14,0.729,8.07,0.56,10.35-0.251zm-22.93-18.487c0-0.697,0.12-0.982,0.26-0.633,0.14,0.348,0.14,0.917,0,1.265-0.14,0.349-0.26,0.064-0.26-0.632zm31.33-30.348c-0.72-1.358-0.66-1.552,0.48-1.552,1.01,0,2.26,1.634,1.68,2.212-0.62,0.62-1.64,0.308-2.16-0.66zm1.51-0.004c0-0.262-0.23-0.617-0.51-0.789s-0.51,0.042-0.51,0.477c0,0.434,0.23,0.789,0.51,0.789s0.51-0.215,0.51-0.477zm-8.11-22.562c0-0.9044,0.28-1.2658,0.96-1.2658,1.35,0,1.75,1.3911,0.58,2.0176-1.38,0.7375-1.54,0.6613-1.54-0.7518zm-16.2,68.942c0-0.096-0.51-0.609-1.14-1.139l-1.14-0.965,0.97,1.14c0.9,1.07,1.31,1.369,1.31,0.964zm-22.18-8.925c-0.33-0.501-1.1,1.312-1.1,2.602-0.02,2.91,0.75,3.231,1,0.422,0.14-1.532,0.19-2.893,0.1-3.024zm17.12,1.505c-0.3-0.558-0.66-1.013-0.8-1.013s-0.01,0.455,0.29,1.013c0.3,0.556,0.66,1.012,0.8,1.012s0.01-0.456-0.29-1.012zm-12.41-2.026c0.17-0.278,0.09-0.506-0.19-0.506s-0.65,0.228-0.82,0.506c-0.17,0.279-0.09,0.506,0.19,0.506s0.65-0.227,0.82-0.506zm35.71-39.859c0.41-1.193,0.41-1.872,0-2.532-0.5-0.79-0.53-0.761-0.25,0.237,0.21,0.79,0.09,1.14-0.41,1.14-0.39,0-2.14,0.714-3.89,1.588-4.41,2.207-7,2.438-8.9,0.797l-1.48-1.27,0.87-1.827c0.48-1.005,1.61-2.28,2.52-2.834s1.35-1.008,0.98-1.01c-0.38-0.001-1.26,0.454-1.97,1.011s-1.6,1.013-1.98,1.013-0.69,0.285-0.7,0.633c0,0.348-0.14,1.132-0.3,1.741-0.23,0.858,0.23,1.626,2.05,3.392,2.09,2.035,2.64,2.301,4.99,2.436,3.46,0.2,7.62-2.015,8.47-4.515zm-1.83-4.518c0.24-0.622,0.16-0.703-0.32-0.321-0.36,0.28-0.99,0.636-1.41,0.791-0.51,0.192-0.41,0.294,0.33,0.321,0.6,0.022,1.23-0.334,1.4-0.791zm-10.84-1.449c0-0.463,0.32-0.623,0.89-0.441,0.72,0.232,0.75,0.189,0.15-0.236-0.41-0.286-0.87-0.437-1.04-0.334s-0.61-0.311-0.99-0.919c-0.65-1.049-0.64-1.067,0.28-0.347,0.88,0.693,0.91,0.686,0.31-0.079-1.06-1.355-2.4-0.828-2.27,0.888,0.1,1.25,0.05,1.318-0.34,0.457-0.32-0.711-0.47-0.782-0.5-0.24-0.02,0.426,0.32,1.281,0.76,1.901,0.63,0.91,0.97,1.026,1.77,0.601,0.54-0.289,0.98-0.852,0.98-1.251zm7.6,1.014c-0.75-0.894,0.03-1.033,0.9-0.162,0.95,0.95,2.94-0.356,2.87-1.886-0.03-0.68-0.24-1.408-0.48-1.619-0.23-0.211-0.22-0.042,0.01,0.376,0.37,0.653,0.32,0.663-0.42,0.069-0.46-0.38-0.72-0.892-0.57-1.139s0.02-0.449-0.29-0.449c-0.78,0-2.05,1.319-1.66,1.712,0.17,0.172,0.05,0.313-0.28,0.313-0.32,0-0.59,0.456-0.59,1.013,0,0.828-0.34,1.013-1.86,1.013-1.02,0-1.7,0.148-1.52,0.33s1.01,0.311,1.84,0.287c0.84-0.023,1.65,0.17,1.81,0.429,0.16,0.26,0.42,0.473,0.58,0.473s0-0.342-0.34-0.76zm5.37-2.721c-0.34-2.201-1.64-3.608-3.31-3.608-1.81,0-3.59,1.338-3.56,2.687,0.01,1.062,0.06,1.05,1.15-0.282,2.29-2.789,5.26-1.053,4.75,2.773-0.26,2.009-0.23,2.092,0.48,1.151,0.49-0.651,0.66-1.623,0.49-2.721zm-12.2-2.097c-0.04-0.562-0.38-1.302-0.75-1.646-0.54-0.5-0.6-0.488-0.28,0.062,0.29,0.517,0.13,0.606-0.65,0.36-0.56-0.181-1.18-0.091-1.36,0.198-0.17,0.29,0.01,0.527,0.41,0.527s1.01,0.342,1.35,0.76c0.88,1.05,1.37,0.949,1.28-0.261z" transform="translate(10, 960.2904225) "/>
+ <path id="tracing-f04-ja.svgpath5262" d="M227.11,88.785c-1.07-0.443-1.75-1.018-1.57-1.318,0.19-0.298,0.09-0.382-0.22-0.192-0.3,0.186-3.07-0.348-6.16-1.188s-5.78-1.541-5.99-1.559c-0.2-0.017,0.13-0.231,0.73-0.474,1.22-0.493,6.35,0.111,10.85,1.278,4.27,1.106,5.77,0.968,7.64-0.707,1.4-1.252,1.64-1.817,1.71-4.064,0.05-1.435-0.11-2.731-0.35-2.879-0.24-0.149-0.44,0.751-0.44,1.999,0,3.33-1.84,5.386-4.82,5.386-1.21,0-2.83-0.24-3.6-0.532-0.77-0.293-4.03-0.982-7.24-1.531-6.88-1.176-7.55-1.617-6.71-4.43,0.74-2.453,0.78-4.82,0.08-4.389-0.28,0.175-0.4,0.504-0.26,0.732,0.27,0.428-0.44,3.028-1.34,4.893-0.81,1.698-0.3,2.834,1.61,3.571,1.61,0.618,1.63,0.654,0.26,0.384-2.93-0.577-3.39-1.811-2.04-5.534,0.51-1.439,0.64-3.142,0.43-5.882-0.27-3.484-0.2-3.962,0.78-4.937,0.76-0.76,1.72-1.082,3.23-1.088,2.41-0.009,2.87-0.229,4.06-1.969,0.62-0.92,0.7-1.459,0.3-2.206-0.76-1.426-0.09-4.224,1.86-7.716,0.93-1.671,2.26-4.797,2.96-6.947,1.58-4.862,1.98-5.607,4.64-8.75,1.17-1.393,2.83-3.637,3.69-4.988l1.54-2.455-0.3-9.799c-0.34-11.096,0.02-12.897,3.25-16.479,2.41-2.6627,5.35-3.6957,9.64-3.3861,5.48,0.3948,9.5,2.8938,12.15,7.5492,1.39,2.4457,1.65,3.8187,2.1,11.044,0.37,5.991,0.44,6.24,2.8,10.903,1.33,2.624,3.54,6.056,4.91,7.626,2.86,3.269,4.15,5.595,5.85,10.589,1.45,4.266,1.94,9.256,1.25,12.688-0.4,1.999-0.35,2.768,0.22,3.653,0.4,0.617,0.73,1.707,0.73,2.423,0,1.806,1.28,3.589,3.87,5.37,3.67,2.526,3.07,4.2-2.66,7.391-2.33,1.299-5.27,3.359-6.52,4.579-1.26,1.22-2.5,2.086-2.76,1.924-0.26-0.161-0.63-0.026-0.84,0.3-0.23,0.371-0.14,0.458,0.22,0.232,0.32-0.199,0.59-0.24,0.59-0.091,0,0.623-3.12,1.815-4.76,1.815-2.14,0-4.52-0.842-4.14-1.461,0.15-0.248-0.12-0.419-0.6-0.381-0.52,0.041-0.89-0.286-0.89-0.781,0-0.467-0.21-1.037-0.46-1.265-0.26-0.241-0.29-0.128-0.06,0.267,0.32,0.549,0.19,0.574-0.65,0.127-0.63-0.341-4.31-0.557-9.48-0.557h-8.44l-1.9,1.504c-3.36,2.662-5.46,3.073-8.75,1.708zm4.05-0.016c-0.49-0.128-1.29-0.128-1.77,0-0.49,0.127-0.09,0.231,0.88,0.231,0.98,0,1.38-0.104,0.89-0.231zm32.15-0.009c-0.62-0.12-1.65-0.12-2.28,0-0.62,0.121-0.11,0.22,1.14,0.22,1.26,0,1.77-0.099,1.14-0.22zm-26.77-2.829c0.16,0.161,0.44-0.081,0.61-0.539,0.28-0.727,1.42-0.832,9.13-0.832,4.84,0,8.8,0.204,8.8,0.453s0.52,0.42,1.14,0.38c1.11-0.071,1.14-0.249,1.2-5.516,0.03-2.994-0.11-5.444-0.32-5.444-0.2,0-0.65,0.34-1,0.754-0.34,0.415-0.8,0.645-1.02,0.511-0.21-0.134-0.77,0.332-1.23,1.034-0.46,0.703-1.05,1.144-1.32,0.979s-0.48-0.045-0.48,0.267c0,0.311-0.21,0.44-0.46,0.286s-0.59,0.075-0.75,0.508c-0.17,0.434-0.54,0.647-0.82,0.474s-0.51-0.05-0.51,0.275-0.34,0.459-0.76,0.299c-0.41-0.16-0.76-0.055-0.76,0.233,0,0.295-0.44,0.384-1.01,0.203-0.55-0.176-1.01-0.135-1.01,0.093s-1.82,0.414-4.05,0.414-4.05-0.164-4.05-0.364-0.38-0.218-0.84-0.041c-0.61,0.233-0.73,0.138-0.44-0.334,0.27-0.443,0.18-0.58-0.3-0.42-0.4,0.138-0.71,0.967-0.73,1.964-0.06,2.931-0.18,3.321-1.51,4.647-0.91,0.906-1.09,1.361-0.63,1.54,0.36,0.14,1.14-0.279,1.74-0.931s1.22-1.054,1.38-0.893zm-2.22,0.908c0.35-0.418,0.75-0.759,0.89-0.759s-0.03,0.341-0.38,0.759-0.74,0.759-0.88,0.759,0.03-0.341,0.37-0.759zm32.33-1.275c1.22-0.55,2.38-0.895,2.59-0.767,0.2,0.129,1.02-0.442,1.81-1.267,1.8-1.882,1.46-1.879-2.29,0.018-3.42,1.722-6.55,1.993-7.86,0.681-1.4-1.4-1.77-3.066-1.77-8.026,0-2.641-0.22-4.888-0.51-5.063-0.76-0.471-1.21,1.173-0.54,1.981,0.36,0.435,0.55,2.432,0.48,5.272-0.08,3.597,0.09,4.857,0.77,5.904,1.58,2.406,3.92,2.811,7.32,1.267zm-18.94-6.315c1.09-0.39,2.21-0.573,2.48-0.406s0.34,0.057,0.15-0.244c-0.34-0.554,1.52-1.451,2.47-1.186,0.27,0.079,0.33-0.027,0.13-0.234-0.33-0.322,1.41-1.937,2.14-2,0.62-0.054,2.54-1.541,2.54-1.968,0-0.26-0.62,0.079-1.38,0.754-0.76,0.676-1.05,0.805-0.66,0.289,0.4-0.516,0.9-2.111,1.12-3.544,1.01-6.85,1.12-7.111,3.19-7.495,1.13-0.21,1.62-1.824,1.72-5.648,0.03-1.481,0.25-2.312,0.56-2.122,0.63,0.387,0.68,4.811,0.06,4.811-0.25,0-0.34,1.538-0.21,3.418,0.21,2.857,0.46,3.612,1.55,4.607,1.1,0.999,1.64,1.137,3.37,0.86,1.2-0.191,2.65-0.89,3.46-1.664,0.77-0.734,1.39-1.104,1.39-0.822,0,0.775-2.09,2.578-3.7,3.187-3.24,1.227-5.69,0.076-6.41-3.016l-0.42-1.76-0.05,1.932c-0.07,2.598,0.61,3.697,2.72,4.393,2.04,0.673,3.45,0.355,5.58-1.261,1.46-1.097,4.07-4.841,2.86-4.096-0.73,0.45-0.73,0.166,0-1.435,0.32-0.7,0.78-1.155,1.01-1.011s0.28-0.432,0.11-1.282c-0.17-0.849-0.1-1.544,0.14-1.544s0.44-1.253,0.44-2.785-0.2-2.785-0.44-2.785-0.31-0.684-0.14-1.519c0.19-0.939,0.09-1.519-0.24-1.519-0.31,0-0.42-0.342-0.26-0.76,0.16-0.417,0.05-0.759-0.25-0.759s-0.42-0.342-0.26-0.76c0.16-0.417,0.05-0.759-0.25-0.759s-0.41-0.342-0.25-0.76c0.16-0.417,0.04-0.759-0.26-0.759s-0.41-0.342-0.25-0.76c0.16-0.417,0.06-0.759-0.23-0.759-0.28,0-0.38-0.228-0.21-0.507,0.18-0.278,0.06-0.506-0.25-0.506s-0.42-0.228-0.25-0.506c0.17-0.279,0.06-0.507-0.26-0.507-0.31,0-0.42-0.228-0.25-0.506s0.06-0.506-0.25-0.506-0.43-0.23-0.25-0.51c0.17-0.281-0.04-0.646-0.48-0.813-0.43-0.166-0.67-0.483-0.54-0.705,0.14-0.221-0.6-1.154-1.65-2.072-1.04-0.919-1.83-1.86-1.76-2.091s-0.21-0.551-0.63-0.712-0.64-0.496-0.48-0.746c0.15-0.249,0.02-0.453-0.29-0.453s-0.42-0.229-0.25-0.51c0.17-0.28-0.04-0.646-0.47-0.812-0.44-0.167-0.67-0.507-0.51-0.756,0.15-0.25,0.02-0.454-0.29-0.454s-0.42-0.228-0.25-0.506,0.06-0.506-0.25-0.506-0.43-0.228-0.26-0.507c0.18-0.278,0.06-0.506-0.25-0.506s-0.43-0.228-0.25-0.506c0.17-0.279,0.06-0.507-0.26-0.507-0.31,0-0.42-0.228-0.25-0.506,0.17-0.279,0.05-0.506-0.28-0.506-0.32,0-0.46-0.342-0.3-0.76s0.05-0.76-0.25-0.76-0.41-0.341-0.25-0.759,0.05-0.76-0.25-0.76c-0.36,0-0.48-1.47-0.37-4.304,0.1-2.367-0.02-4.304-0.26-4.304-0.25,0-0.33-0.911-0.18-2.025,0.16-1.16,0.06-2.025-0.22-2.025-0.27,0-0.35-0.457-0.17-1.015,0.21-0.674,0.06-1.118-0.47-1.32-0.44-0.166-0.67-0.5072-0.51-0.7565,0.15-0.2493,0.02-0.4533-0.29-0.4533s-0.42-0.2278-0.25-0.5063,0.06-0.5064-0.25-0.5064-0.45-0.193-0.3-0.4289c0.34-0.557-2.45-3.2379-2.9-2.7851-0.19,0.1896-0.35,0.0654-0.35-0.2759,0-0.3414-0.23-0.4798-0.5-0.3077-0.28,0.1721-0.51,0.0582-0.51-0.2532s-0.23-0.4253-0.51-0.2532-0.5,0.0582-0.5-0.2531c0-0.3114-0.23-0.4253-0.51-0.2532s-0.51,0.0563-0.51-0.2574c0-0.34-0.41-0.4405-1.01-0.249-0.56,0.1768-1.01,0.1352-1.01-0.0924,0-0.2277-1.48-0.4139-3.29-0.4139s-3.29,0.1952-3.29,0.4339-0.35,0.3028-0.76,0.1425c-0.42-0.1603-0.76-0.0573-0.76,0.2289s-0.23,0.3795-0.51,0.2074-0.51-0.0582-0.51,0.2532c0,0.3113-0.19,0.4468-0.42,0.301-0.56-0.3443-3.24,2.4459-2.79,2.8988,0.19,0.1895,0.07,0.3446-0.28,0.3446-0.34,0-0.48,0.2279-0.3,0.5064,0.17,0.2785,0.05,0.5063-0.26,0.5063s-0.42,0.2279-0.25,0.5064,0.08,0.5063-0.21,0.5063c-0.28,0-0.39,0.3418-0.23,0.7595,0.16,0.4183,0.1,0.7593-0.14,0.7593s-0.43,3.418-0.43,7.595c0,4.178,0.13,7.596,0.3,7.596s0.34,1.253,0.39,2.785c0.06,1.719-0.12,2.785-0.46,2.785-0.3,0-0.4,0.228-0.23,0.506s0.06,0.506-0.26,0.506c-0.31,0-0.44,0.204-0.28,0.454,0.15,0.249-0.08,0.589-0.51,0.756-0.43,0.166-0.66,0.508-0.51,0.759,0.16,0.251-0.07,0.593-0.5,0.76-0.44,0.166-0.67,0.507-0.51,0.757,0.15,0.25-0.29,0.831-1,1.292-0.7,0.46-1.16,1.018-1.03,1.24,0.14,0.222-0.43,0.907-1.26,1.523-0.83,0.615-1.38,1.335-1.22,1.599,0.17,0.265,0.05,0.481-0.26,0.481-0.32,0-0.43,0.228-0.26,0.506,0.17,0.279,0.06,0.507-0.25,0.507s-0.43,0.228-0.25,0.506c0.17,0.278,0.07,0.506-0.21,0.506-0.29,0-0.39,0.342-0.23,0.76s0.02,0.759-0.3,0.759c-0.37,0-0.47,0.393-0.28,1.013,0.18,0.568,0.09,1.013-0.2,1.013s-0.39,0.342-0.23,0.759c0.16,0.418,0.02,0.76-0.3,0.76-0.33,0-0.45,0.228-0.28,0.506,0.17,0.279,0.08,0.507-0.21,0.507-0.28,0-0.39,0.341-0.23,0.759s0.03,0.76-0.29,0.76c-0.33,0-0.45,0.228-0.28,0.506s0.06,0.506-0.26,0.506c-0.31,0-0.42,0.228-0.25,0.507,0.17,0.278,0.06,0.506-0.25,0.506s-0.44,0.204-0.29,0.453c0.16,0.25-0.07,0.59-0.51,0.756-0.43,0.167-0.64,0.532-0.47,0.813,0.17,0.28,0.06,0.51-0.25,0.51s-0.43,0.228-0.25,0.506c0.17,0.279,0.05,0.507-0.26,0.507-0.34,0-0.44,0.409-0.25,1.012,0.18,0.557,0.09,1.013-0.19,1.013-0.64,0-0.54,2.161,0.12,2.613,0.27,0.184,1.21,0.217,2.1,0.073,1.3-0.211,1.97,0.051,3.46,1.364,1.02,0.893,1.85,1.875,1.85,2.181s-0.87-0.29-1.93-1.325c-1.6-1.562-2.23-1.86-3.74-1.749-1.01,0.074-1.72,0.298-1.6,0.497,0.12,0.2,0.91,0.226,1.76,0.057,1.28-0.258,1.83-0.016,3.39,1.515,1.03,1.001,2.1,1.831,2.38,1.842,0.27,0.011,0.59,0.28,0.69,0.598,0.12,0.355-0.05,0.422-0.45,0.175-0.43-0.266-0.53-0.201-0.29,0.19,0.2,0.327,0.56,0.476,0.79,0.332s1.02,0.747,1.74,1.981c1.46,2.498,1.61,3.054,0.68,2.517-0.37-0.212-0.46-0.172-0.21,0.096,0.23,0.254,0.67,0.461,0.97,0.461s0.65,0.317,0.78,0.704c0.16,0.469,0.02,0.569-0.41,0.301-0.44-0.271-0.53-0.201-0.27,0.216,0.21,0.341,0.51,0.488,0.67,0.327,0.16-0.16,0.86,0.224,1.55,0.853s1.08,0.829,0.86,0.445c-0.28-0.47-0.19-0.625,0.26-0.475,0.37,0.124,1.09-0.189,1.59-0.694,1.01-1.006,1.23-2.436,0.38-2.436-0.29,0-0.41-0.198-0.26-0.439,0.32-0.526-1.43-2.224-1.86-1.797-0.16,0.164-0.68-0.289-1.15-1.007s-1.05-1.187-1.29-1.041c-0.23,0.146-0.8-0.31-1.26-1.012-0.46-0.703-1.01-1.174-1.21-1.047-0.21,0.127-1-0.414-1.75-1.202-1.2-1.254-1.39-1.889-1.49-5.082-0.06-2.007,0.08-3.769,0.32-3.917s0.31-0.587,0.16-0.977c-0.15-0.389-0.03-0.708,0.27-0.708s0.42-0.342,0.26-0.759c-0.17-0.418-0.08-0.76,0.18-0.76s0.34-0.342,0.18-0.76c-0.16-0.417-0.02-0.759,0.3-0.759,0.33,0,0.45-0.228,0.28-0.506-0.17-0.279-0.06-0.507,0.25-0.507s0.43-0.228,0.25-0.506c-0.17-0.279-0.05-0.506,0.26-0.506s0.42-0.228,0.25-0.507c-0.17-0.278-0.06-0.506,0.25-0.506,0.32,0,0.43-0.228,0.26-0.507-0.18-0.278-0.06-0.506,0.25-0.506s0.42-0.229,0.25-0.51c-0.17-0.28,0.04-0.646,0.47-0.812,0.44-0.167,0.67-0.507,0.51-0.756-0.15-0.25-0.06-0.454,0.21-0.454s0.38-0.512,0.24-1.139c-0.21-0.946-0.15-1.011,0.34-0.38,0.48,0.606,0.54,0.375,0.33-1.139-0.15-1.1-0.05-1.899,0.24-1.899,0.28,0,0.37-0.228,0.19-0.506-0.17-0.279-0.05-0.507,0.26-0.507s0.42-0.227,0.25-0.506c-0.17-0.278-0.06-0.506,0.25-0.506,0.32,0,0.43-0.228,0.26-0.506-0.17-0.279-0.06-0.507,0.25-0.507s0.43-0.229,0.25-0.51c-0.17-0.28,0.04-0.646,0.48-0.812,0.43-0.167,0.66-0.507,0.5-0.756-0.15-0.25-0.02-0.454,0.29-0.454s0.43-0.227,0.25-0.506c-0.17-0.279-0.07-0.506,0.23-0.506,0.59,0,0.45-3.696-0.2-5.184-0.21-0.484-0.14-1.566,0.15-2.405,0.3-0.875,0.33-1.526,0.07-1.526s-0.32-0.379-0.15-0.842c0.2-0.504,0.12-0.716-0.18-0.528-0.7,0.432-0.51-5.462,0.21-6.322,1.08-1.307,5.74-0.198,4.9,1.167-0.15,0.247-0.02,0.449,0.29,0.449s0.53,0.399,0.48,0.886c-0.18,1.802,0.06,2.152,1.49,2.152,1.59,0,2.17-0.822,1.73-2.483-0.16-0.633-0.03-1.061,0.32-1.061,0.33,0,0.46-0.224,0.29-0.499-0.4-0.639,2.71-2.551,4.04-2.487,0.85,0.041,0.81,0.119-0.25,0.48-1.22,0.416-1.21,0.428,0.25,0.348,1.73-0.095,2.95,0.479,2.51,1.18-0.16,0.259-0.03,0.472,0.28,0.472s0.42,0.227,0.25,0.506c-0.17,0.278-0.08,0.506,0.21,0.506s0.39,0.342,0.23,0.76c-0.16,0.417-0.04,0.759,0.27,0.759s0.56,0.57,0.56,1.266-0.25,1.266-0.56,1.266-0.43,0.342-0.27,0.759c0.16,0.418,0.06,0.76-0.22,0.76-0.33,0-0.32,0.351,0.03,1.004,0.3,0.552,0.53,1.862,0.52,2.911-0.04,2.879,0.16,4.187,0.64,4.187,0.23,0,0.28,0.228,0.11,0.506s-0.06,0.506,0.25,0.506c0.32,0,0.43,0.228,0.26,0.507-0.17,0.278-0.06,0.506,0.25,0.506s0.44,0.204,0.29,0.453c-0.16,0.25,0.08,0.593,0.53,0.764,0.46,0.177,0.68,0.635,0.52,1.066-0.16,0.415-0.06,0.755,0.23,0.755,0.28,0,0.38,0.228,0.2,0.507-0.17,0.278-0.05,0.506,0.26,0.506,0.34,0,0.44,0.409,0.25,1.012-0.2,0.624-0.09,1.013,0.28,1.013,0.35,0,0.49,0.421,0.33,1.013-0.14,0.557-0.02,1.013,0.28,1.013s0.39,0.15,0.21,0.334,0.12,0.655,0.68,1.047,0.89,0.926,0.73,1.185-0.04,0.472,0.27,0.472c0.32,0,0.43,0.228,0.26,0.506-0.17,0.279-0.06,0.506,0.25,0.506s0.43,0.228,0.25,0.507c-0.17,0.278-0.05,0.506,0.26,0.506s0.42,0.228,0.25,0.506c-0.17,0.279-0.08,0.507,0.21,0.507,0.28,0,0.37,0.379,0.19,0.842-0.23,0.61-0.13,0.729,0.35,0.431,0.51-0.315,0.59-0.108,0.34,0.888-0.19,0.765-0.1,1.375,0.22,1.482,0.37,0.125,0.4,0.746,0.09,1.941l-0.46,1.758-0.33-2.731c-0.32-2.715-2.19-6.981-3.89-8.915-0.49-0.557-1.04-1.999-1.22-3.203-0.39-2.533-2.78-7.521-4.24-8.844-0.97-0.875-1.06-0.865-2.46,0.286-2.49,2.042-6.25,4.394-7.53,4.715-1.23,0.311-3.35-1.228-3.88-2.821-0.44-1.316-1.86-0.078-3.72,3.248-1.48,2.654-1.79,3.633-1.51,4.884,0.26,1.174,0.1,1.838-0.64,2.662-3.09,3.465-5.7,10.213-5.7,14.751v3.25l3.15,2.689c8.04,6.866,8.68,7.984,5.95,10.474l-1.53,1.4,1.04,0.939c0.8,0.726,0.89,1.042,0.39,1.39-0.43,0.304-0.31,0.361,0.37,0.175,0.56-0.151,1.35-0.055,1.77,0.213,1.14,0.728,8.07,0.56,10.35-0.252zm-22.93-18.487c0-0.696,0.12-0.981,0.26-0.633s0.14,0.918,0,1.266-0.26,0.063-0.26-0.633zm31.33-30.348c-0.72-1.358-0.66-1.552,0.48-1.552,1.01,0,2.26,1.635,1.68,2.212-0.62,0.62-1.64,0.308-2.16-0.66zm1.51-0.003c0-0.262-0.23-0.617-0.51-0.79-0.28-0.172-0.51,0.043-0.51,0.477s0.23,0.789,0.51,0.789,0.51-0.214,0.51-0.476zm-8.11-22.563c0-0.9044,0.28-1.2658,0.96-1.2658,1.35,0,1.75,1.3911,0.58,2.0176-1.38,0.7375-1.54,0.6613-1.54-0.7518zm-16.2,68.942c0-0.096-0.51-0.608-1.14-1.139l-1.14-0.964,0.97,1.139c0.9,1.07,1.31,1.37,1.31,0.964zm-22.18-8.924c-0.33-0.501-1.1,1.311-1.1,2.602-0.02,2.91,0.75,3.23,1,0.421,0.14-1.532,0.19-2.892,0.1-3.023zm17.12,1.504c-0.3-0.557-0.66-1.013-0.8-1.013s-0.01,0.456,0.29,1.013,0.66,1.013,0.8,1.013,0.01-0.456-0.29-1.013zm-12.41-2.026c0.17-0.278,0.09-0.506-0.19-0.506s-0.65,0.228-0.82,0.506c-0.17,0.279-0.09,0.507,0.19,0.507s0.65-0.228,0.82-0.507zm35.71-39.859c0.41-1.193,0.41-1.871,0-2.531-0.5-0.791-0.53-0.762-0.25,0.237,0.21,0.789,0.09,1.139-0.41,1.139-0.39,0-2.14,0.715-3.89,1.588-4.41,2.208-7,2.439-8.9,0.797l-1.48-1.27,0.87-1.827c0.48-1.004,1.61-2.28,2.52-2.834s1.35-1.008,0.98-1.009c-0.38-0.001-1.26,0.454-1.97,1.011s-1.6,1.012-1.98,1.012-0.69,0.285-0.7,0.633c0,0.348-0.14,1.132-0.3,1.742-0.23,0.857,0.23,1.625,2.05,3.392,2.09,2.035,2.64,2.3,4.99,2.436,3.46,0.2,7.62-2.015,8.47-4.516zm-1.83-4.518c0.24-0.621,0.16-0.702-0.32-0.321-0.36,0.281-0.99,0.637-1.41,0.791-0.51,0.192-0.41,0.294,0.33,0.321,0.6,0.022,1.23-0.334,1.4-0.791zm-10.84-1.449c0-0.462,0.32-0.622,0.89-0.441,0.72,0.233,0.75,0.189,0.15-0.236-0.41-0.286-0.87-0.436-1.04-0.333s-0.61-0.311-0.99-0.92c-0.65-1.048-0.64-1.066,0.28-0.347,0.88,0.693,0.91,0.686,0.31-0.078-1.06-1.356-2.4-0.829-2.27,0.888,0.1,1.249,0.05,1.317-0.34,0.456-0.32-0.71-0.47-0.781-0.5-0.239-0.02,0.425,0.32,1.28,0.76,1.9,0.63,0.91,0.97,1.026,1.77,0.602,0.54-0.29,0.98-0.853,0.98-1.252zm7.6,1.014c-0.75-0.894,0.03-1.033,0.9-0.162,0.95,0.951,2.94-0.355,2.87-1.885-0.03-0.68-0.24-1.409-0.48-1.62-0.23-0.211-0.22-0.041,0.01,0.376,0.37,0.653,0.32,0.663-0.42,0.069-0.46-0.379-0.72-0.892-0.57-1.139s0.02-0.449-0.29-0.449c-0.78,0-2.05,1.32-1.66,1.712,0.17,0.172,0.05,0.314-0.28,0.314-0.32,0-0.59,0.455-0.59,1.012,0,0.829-0.34,1.013-1.86,1.013-1.02,0-1.7,0.149-1.52,0.33,0.18,0.182,1.01,0.311,1.84,0.288,0.84-0.024,1.65,0.169,1.81,0.429s0.42,0.472,0.58,0.472,0-0.342-0.34-0.76zm5.37-2.721c-0.34-2.2-1.64-3.608-3.31-3.608-1.81,0-3.59,1.339-3.56,2.687,0.01,1.063,0.06,1.051,1.15-0.282,2.29-2.788,5.26-1.052,4.75,2.774-0.26,2.009-0.23,2.091,0.48,1.15,0.49-0.65,0.66-1.623,0.49-2.721zm-12.2-2.097c-0.04-0.561-0.38-1.302-0.75-1.645-0.54-0.501-0.6-0.489-0.28,0.062,0.29,0.517,0.13,0.606-0.65,0.359-0.56-0.18-1.18-0.091-1.36,0.199-0.17,0.29,0.01,0.527,0.41,0.527s1.01,0.342,1.35,0.759c0.88,1.051,1.37,0.95,1.28-0.261z" transform="translate(10, 960.2904225) " stroke="#000" stroke-miterlimit="4.0000000" stroke-width="0.37500000" fill="none"/>
+ <rect id="d0e113" display="none" height="1000px" width="288" y="1076.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e113"/>
</flowRegion>
<flowDiv xml:space="preserve">これら 3 つのフィルタを試してみて、さまざまタイプの入力画像でさまざまなタイプの出力を見比べてください。</flowDiv>
</flowRoot>
- <rect id="d0e116" display="none" height="1000px" width="288" y="1078.1" x="10"/>
+ <rect id="d0e116" display="none" height="1000px" width="288" y="1106.2" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e116"/>
</flowRegion>
<flowDiv xml:space="preserve">トレース後、出力パス上で <flowSpan font-family="Sans">パス &gt; パスの簡略化</flowSpan> (<flowSpan font-weight="bold">Ctrl+L</flowSpan>) でノード数を整理することをおすすめします。これは Potrace の出力をより編集しやすくします。例えば、ここにギターを弾く老人の典型的なトレースがあります:</flowDiv>
</flowRoot>
- <text id="tracing-f05-ja.svgtext2879" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1126.3380980000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="128.14566" x="81.327339" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f05-ja.svgtspan2880" y="128.14566" x="81.327339" role="line">オリジナル画像</tspan></text>
- <text id="tracing-f05-ja.svgtext2882" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1126.3380980000002) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="124.44067" x="227.33034" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f05-ja.svgtspan2883" y="124.44067" x="227.33034" role="line">トレースイメージ / 出力パス</tspan><tspan id="tracing-f05-ja.svgtspan2893" y="130.44067" x="227.33034" role="line">(1,551 ノード)</tspan></text>
- <image id="tracing-f05-ja.svgimage1651" sodipodi:absref="/oldguitar.jpg" xlink:href="oldguitar.jpg" transform="translate(10, 1126.3380980000002) " height="115.89" width="83.347" y="0.000066406" x="39.654"/>
- <path id="tracing-f05-ja.svgpath1653" d="M185.42,89.583v-26.312l0.69-0.042,0.68-0.041-0.69-0.133-0.69-0.133,0.02-14.959,0.03-14.959,0.95-0.068c0.52-0.037,1.06-0.242,1.19-0.456,0.18-0.284,0.25-0.245,0.25,0.144,0.01,0.921,1.05,0.497,1.31-0.532,0.11-0.467,0.16-0.413,0.18,0.228,0.03,0.702,0.17,0.836,0.88,0.832,0.63-0.004,0.72-0.073,0.38-0.288-0.24-0.156-0.36-0.366-0.26-0.466,0.1-0.101,0.38,0.011,0.62,0.249,0.45,0.456,4.62,0.633,4.34,0.185-0.08-0.128,0.03-0.311,0.24-0.407,0.21-0.097,0.07-0.099-0.31-0.006-0.37,0.093-0.68,0.047-0.68-0.104,0-0.514,0.31-0.583,1.69-0.373,0.75,0.114,1.45,0.093,1.53-0.049,0.22-0.357,0.73-0.324,0.73,0.047,0,0.167-0.2,0.304-0.45,0.304s-0.46,0.127-0.46,0.283c0,0.155-0.31,0.341-0.68,0.411-0.38,0.071-0.17,0.127,0.47,0.124,0.63-0.003,1.22-0.12,1.31-0.26,0.08-0.14,0.43-0.254,0.76-0.254,0.34,0,0.53-0.129,0.43-0.286-0.09-0.157,0.07-0.294,0.37-0.304,1.91-0.063,3.68-0.251,4.34-0.46,0.42-0.133,0.66-0.135,0.53-0.004-0.12,0.131,0.07,0.446,0.44,0.7,0.77,0.54,6.33,0.862,6.33,0.368,0-0.165-0.21-0.22-0.46-0.124s-0.45,0.046-0.45-0.111-0.21-0.286-0.46-0.286-0.46,0.091-0.46,0.203c0,0.111-0.21,0.202-0.47,0.202s-0.42-0.206-0.36-0.481c0.06-0.31,0.37-0.454,0.85-0.405,0.58,0.06,0.64,0.012,0.29-0.223-0.67-0.438-1.26-0.377-1.66,0.171-0.27,0.374-0.62,0.432-1.55,0.258-1.15-0.217-1.17-0.238-0.46-0.552,0.55-0.246,0.76-0.234,0.86,0.047,0.17,0.509,0.68,0.475,0.68-0.044,0-0.863,1.73-0.81,4.02,0.122,1.22,0.497,2.3,0.903,2.4,0.904,0.36,0.002,0.51-3.488,0.16-3.709-0.18-0.116-0.23-0.307-0.12-0.424,0.43-0.428,1.2,0.59,1.04,1.379-0.14,0.706,0.36,1.842,0.81,1.842,0.1,0,0.34-0.513,0.52-1.141,0.53-1.745,1.51-2.804,2.32-2.495,0.53,0.2,0.64,0.438,0.53,1.138-0.2,1.236,0.5,1.702,2.63,1.757l1.78,0.045-0.17-0.945c-0.1-0.519-0.57-1.45-1.05-2.067-0.48-0.618-0.88-1.388-0.88-1.712,0-0.842-0.62-1.243-2.25-1.468-0.9-0.123-1.77-0.489-2.33-0.98-1.23-1.081-1.12-1.38,0.24-0.65,1.28,0.686,2.82,0.809,2.82,0.226,0-0.211-0.31-0.731-0.68-1.156-0.9-1.012-1.45-1.989-1.45-2.575,0-0.506,0.39-0.288,1.43,0.807,0.26,0.272,0.69,0.436,0.96,0.365,0.31-0.079,0.62,0.141,0.8,0.57,0.31,0.694,3.24,2.095,4.56,2.181,0.34,0.021,0.92,0.347,1.29,0.724l0.67,0.684h-0.69c-0.37,0-0.81,0.114-0.97,0.253s-0.9,0.425-1.64,0.636c-1.57,0.448-1.17,0.985,0.54,0.709,0.9-0.147,1.03-0.097,0.87,0.331-0.14,0.354-0.03,0.504,0.35,0.504,0.56,0,1.86,1.176,1.88,1.693,0,0.157,0.34,0.524,0.74,0.817l0.73,0.533,0.22-1.422c0.23-1.58-0.03-6.439-0.43-7.856l-0.26-0.913-0.21,1.141c-0.12,0.627-0.35,1.141-0.5,1.141-0.16,0-1.08-0.42-2.04-0.932-1.75-0.928-3.12-2.223-3.13-2.947,0-0.556-0.93-0.464-1.37,0.135-0.35,0.476-0.42,0.478-0.87,0.02-0.36-0.357-0.4-0.558-0.15-0.714,0.25-0.152,0.18-0.348-0.22-0.645-0.54-0.397-0.52-0.416,0.27-0.276,0.74,0.133,0.87,0.041,1.02-0.743,0.24-1.181,0.57-1.143,0.56,0.065,0,0.549,0.18,1.021,0.42,1.104,0.24,0.079,0.35,0.013,0.25-0.148-0.1-0.162,0.01-0.293,0.26-0.293,0.24,0,0.44,0.114,0.44,0.253s0.32,0.254,0.7,0.254,0.85,0.153,1.04,0.342c0.41,0.411,3.13,0.08,3.13-0.381,0-0.694-0.64-1.452-1.08-1.282-0.26,0.098-0.76-0.078-1.11-0.392-0.55-0.48-0.62-0.49-0.47-0.068,0.14,0.381-0.04,0.534-0.74,0.636-1.58,0.233-2.38-0.058-2.38-0.868,0-0.425,0.19-0.741,0.45-0.763,0.59-0.049,0.75-0.095,1.75-0.511,0.46-0.191,1.08-0.26,1.37-0.154,0.4,0.145,0.35-0.007-0.21-0.626-0.41-0.45-0.93-0.75-1.14-0.667-0.22,0.083-0.4-0.049-0.4-0.295,0-0.771-0.5-0.601-1.91,0.642-0.21,0.181-0.54,0.275-0.73,0.21-0.2-0.066-0.66,0.175-1.02,0.536-0.39,0.392-0.89,0.594-1.23,0.503-0.32-0.083-0.58-0.062-0.58,0.048s-0.58,0.2-1.3,0.2c-0.71,0-1.36,0.081-1.44,0.18s-0.63,0.271-1.22,0.383l-1.06,0.202,0.91-0.609c0.5-0.335,0.74-0.609,0.52-0.611-0.32-0.001-0.32-0.082,0-0.439,0.34-0.381,0.44-0.377,0.75,0.03,0.73,0.946,4.33-0.287,6.35-2.173,0.5-0.46,1.99-1.36,3.33-2.0001,1.34-0.6404,3.53-1.7571,4.87-2.4814,2.63-1.4232,2.78-1.4433,7.36-1.0003,2.46,0.2383,2.49,0.2327,2.67-0.4871,0.1-0.4005,0.14-1.7548,0.1-3.0096l-0.09-2.2814,8.67-0.0812c7.53-0.0706,8.71-0.0196,9.01,0.3891,0.3,0.4121,0.37,0.4143,0.52,0.0178,0.14-0.3777,0.87-0.4354,4.37-0.3481,2.31,0.0575,4.3,0.1203,4.43,0.1395,0.17,0.0259,0.12,95.017-0.06,113.12l-0.02,2.5h-41.52-41.53v-26.307zm6.99,25.117c0.42-0.78,0.4-0.93-0.11-0.93-0.4,0-0.79,0.61-0.79,1.24,0,0.49,0.58,0.29,0.9-0.31zm2.36-1.64c0.14-1.09-0.08-1.03-0.49,0.12-0.24,0.69-0.23,0.9,0.03,0.82,0.19-0.07,0.4-0.49,0.46-0.94zm1.18-0.12c-0.1-0.11-0.17,0.07-0.16,0.39,0.02,0.36,0.09,0.43,0.18,0.19,0.09-0.22,0.08-0.48-0.02-0.58zm-2.31-0.52c0-0.4,0.08-0.98,0.18-1.29,0.13-0.4,0-0.34-0.45,0.2-0.74,0.9-0.84,1.83-0.19,1.83,0.28,0,0.46-0.29,0.46-0.74zm-1.8,0.2c0.11-1.07,1.02-3.42,1.34-3.43,0.17,0,0.56-0.55,0.86-1.21,0.31-0.67,0.7-1.21,0.88-1.21,0.17,0,0.78-0.41,1.35-0.91,0.57-0.51,0.94-0.92,0.82-0.92s0.24-0.34,0.8-0.76c0.57-0.41,1.14-0.92,1.27-1.13,0.17-0.28,0.32-0.29,0.57-0.05,0.55,0.56,2.21,0.04,2.71-0.86,0.47-0.82,0.47-0.78-0.59-3.028-0.39-0.83-0.21-2.381,0.28-2.381,0.55,0-0.87-2.327-1.62-2.672-0.69-0.314-0.84-0.271-1.26,0.37-0.26,0.399-0.86,2.141-1.33,3.871-0.87,3.19-1.69,5.25-2.38,5.98-0.21,0.22-0.38,0.56-0.38,0.75,0,0.42-1.76,1.98-2.51,2.22-0.63,0.2-1.28,1.36-1.59,2.83-0.17,0.79-0.14,0.97,0.16,0.79,0.39-0.25,0.34,0.23-0.17,1.45-0.15,0.38-0.07,0.53,0.27,0.53,0.27,0,0.5-0.1,0.52-0.23zm55.06-3.05c-0.18-0.06-0.33-0.44-0.33-0.85,0-0.45-0.18-0.73-0.46-0.73-0.25,0-0.46,0.2-0.46,0.45s0.14,0.46,0.31,0.46c0.16,0,0.3,0.13,0.3,0.28,0,0.16,0.16,0.67,0.36,1.14l0.36,0.86,0.13-0.75c0.07-0.41-0.03-0.8-0.21-0.86zm-1.73-0.17c-0.1-0.27-0.31-0.42-0.46-0.33s-0.1,0.35,0.11,0.57c0.47,0.51,0.6,0.42,0.35-0.24zm-1.33-1.99c-0.2-0.38-0.51-0.55-0.79-0.44-0.4,0.15-0.36,0.3,0.22,0.92,0.76,0.8,1.1,0.51,0.57-0.48zm2.28-1.54c-0.07-0.87-0.77-1.24-0.77-0.41,0,0.31-0.21,0.87-0.47,1.24-0.7,0.99-0.23,1.46,0.61,0.62,0.39-0.41,0.66-1.02,0.63-1.45zm-2.6-1.19c0-0.15-0.2-0.44-0.45-0.65-0.5-0.41-0.56-0.31-0.27,0.43,0.19,0.51,0.72,0.67,0.72,0.22zm2.44-0.36c0-0.18-0.14-0.24-0.31-0.14-0.16,0.11-0.3,0.25-0.3,0.33,0,0.07,0.14,0.13,0.3,0.13,0.17,0,0.31-0.15,0.31-0.32zm-7.49-2.42c-0.17-0.17-0.76-0.44-1.32-0.6-0.98-0.28-0.99-0.28-0.46,0.31,0.3,0.33,0.89,0.6,1.31,0.6,0.53,0,0.68-0.1,0.47-0.31zm6.02-0.21c-0.22-0.08-0.48-0.07-0.58,0.03s0.08,0.17,0.4,0.16c0.35-0.02,0.43-0.09,0.18-0.19zm-8.57-0.59c0-0.35-1.05-1-1.62-1.01-0.3-0.01-0.47-0.136-0.38-0.285,0.1-0.15-0.03-0.351-0.28-0.447-0.61-0.231-0.59-0.802,0.02-0.802,0.79,0,0.3-0.752-0.56-0.854-0.43-0.052-0.97-0.314-1.19-0.583-0.36-0.435-0.33-0.449,0.26-0.134,0.37,0.195,1.03,0.354,1.48,0.354,0.71,0,0.8,0.102,0.67,0.768-0.17,0.883,0.22,1.288,0.6,0.618,0.27-0.485,1.61-0.328,1.61,0.189,0,0.157,0.13,0.202,0.3,0.098,0.17-0.103,0.31-0.043,0.31,0.134,0,0.178,0.4,0.323,0.88,0.323,0.49,0,0.94,0.129,0.99,0.287,0.06,0.157,0.79,0.464,1.62,0.674,0.84,0.22,1.6,0.5,1.69,0.63,0.27,0.37,1.83-0.48,1.67-0.91-0.11-0.287,0.17-0.333,1.14-0.186,0.71,0.106,1.45,0.336,1.66,0.496,0.28,0.21,0.38,0.16,0.38-0.2,0-0.953-2.33-1.287-3.49-0.503-0.38,0.253-1.8,0.209-3.2-0.108-2.36-0.535-8.33-4.086-15.66-9.314-3.19-2.274-5.35-3.293-8.78-4.134-1.7-0.417-3.5-0.913-4-1.101-1.7-0.638-5.11-2.815-5.25-3.35-0.09-0.344-0.79-0.722-1.98-1.072-1.61-0.474-1.78-0.596-1.4-0.989,0.48-0.485,1.79-2.549,1.79-2.81,0-0.315-2.62,0.421-4.18,1.176-0.88,0.423-1.73,0.683-1.91,0.578-1.02-0.631-2.66,1.757-3.38,4.912-0.32,1.391-0.29,1.68,0.22,2.563,0.58,0.984,2.19,2.146,2.63,1.895,0.13-0.071,0.23,0.063,0.23,0.298,0,0.236,0.26,0.729,0.58,1.098l0.58,0.67,0.2-0.924c0.26-1.151,0.64-1.407,1.23-0.82,0.49,0.491,0.59,0.823,0.22,0.765-0.73-0.116-1.29,0.096-1.29,0.493,0,0.251,0.14,0.456,0.3,0.456,0.17,0,0.31-0.137,0.31-0.304,0-0.168,0.14-0.304,0.3-0.304,0.17,0,0.31,0.202,0.31,0.45,0,0.519,1.4,0.926,2.73,0.793,0.41-0.041,0.41-0.088,0-0.424-0.25-0.207-0.6-0.648-0.78-0.978-0.19-0.331-0.7-0.78-1.15-0.999-0.44-0.218-0.8-0.537-0.8-0.708,0-0.191-0.37-0.231-0.95-0.103-0.66,0.145-0.89,0.106-0.75-0.128,0.12-0.185,0.44-0.341,0.73-0.347,0.46-0.008,0.45-0.053-0.05-0.436-0.69-0.519-0.39-1.195,0.35-0.813,0.28,0.146,0.69,0.203,0.89,0.128,0.21-0.075,0.38,0.08,0.38,0.345s0.25,0.482,0.55,0.482c1.01,0,1.85,0.869,1.95,2.034,0.05,0.612,0.26,1.169,0.47,1.239,0.3,0.097,0.31-0.066,0.07-0.714-0.25-0.647-0.22-0.938,0.11-1.267,0.36-0.368,0.51-0.312,1.07,0.398,0.36,0.454,0.65,1.021,0.65,1.26s0.24,0.41,0.53,0.38c0.97-0.098,1.22,0.01,1.38,0.589,0.11,0.434,0.34,0.536,0.94,0.421,0.88-0.167,0.97-0.421,0.48-1.325-0.39-0.727-0.13-1.227,0.51-0.982,0.35,0.133,0.37,0.241,0.1,0.409-0.2,0.126-0.26,0.396-0.13,0.607,0.17,0.277,0.38,0.183,0.79-0.346,0.31-0.399,0.56-0.573,0.57-0.387,0.02,1.031,4.72,4.386,5.49,3.914,0.16-0.102,0.53,0.045,0.81,0.325,0.48,0.478,0.52,0.469,0.75-0.137l0.24-0.648,0.77,0.668c0.42,0.367,0.76,0.834,0.76,1.037,0,0.51-0.94,0.826-1.32,0.444-0.52-0.518-0.85-0.357-0.75,0.362,0.08,0.528,0.31,0.687,1.09,0.725,0.54,0.027,1.16,0.185,1.37,0.353,0.2,0.168,0.85,0.401,1.44,0.518,0.59,0.118,1.82,0.465,2.74,0.772s2.35,0.766,3.19,1.02c0.84,0.255,2.34,0.837,3.35,1.295,1,0.453,1.91,0.813,2.02,0.783,0.11-0.02,0.37,0.16,0.57,0.41,0.37,0.44,1.21,0.62,1.21,0.25zm-5.78-3.456c0-0.168,0.14-0.305,0.3-0.305,0.17,0,0.31,0.137,0.31,0.305,0,0.167-0.14,0.304-0.31,0.304-0.16,0-0.3-0.137-0.3-0.304zm-1.22-0.609c0-0.167-0.38-0.304-0.86-0.304-0.47,0-0.96-0.103-1.09-0.228-0.23-0.228-0.38-0.271-1.24-0.342-0.54-0.045-0.65-1.863-0.12-1.863,0.21,0,0.26,0.289,0.15,0.741-0.17,0.686-0.08,0.757,1.2,0.949,1.26,0.189,3.23,1.318,2.34,1.341-0.21,0.006-0.38-0.127-0.38-0.294zm-4.94-1.242c-0.3-0.171-0.67-0.227-0.84-0.124-0.41,0.254-0.72-0.634-0.45-1.295,0.19-0.473,0.24-0.456,0.47,0.152,0.15,0.376,0.46,0.684,0.7,0.684s0.51,0.205,0.61,0.456c0.2,0.533,0.2,0.533-0.49,0.127zm-2.36-1.325c0-0.535,0.19-0.613,0.45-0.192,0.09,0.156,0.03,0.37-0.14,0.475s-0.31-0.023-0.31-0.283zm2.36-0.068c0.21-0.084,0.55-0.084,0.76,0,0.21,0.085,0.04,0.154-0.38,0.154s-0.59-0.069-0.38-0.154zm-21.83-4.495c0-0.074,0.14-0.219,0.31-0.322,0.17-0.104,0.3-0.043,0.3,0.134s-0.13,0.322-0.3,0.322-0.31-0.06-0.31-0.134zm2.54-3.073c-0.27-0.701-0.02-0.739,0.64-0.1,0.52,0.511,0.53,0.569,0.06,0.569-0.28,0-0.6-0.211-0.7-0.469zm1.47,11.779c0.73-0.304,2.12-0.727,3.09-0.939,0.98-0.213,1.7-0.459,1.61-0.547-0.09-0.089-1.53-0.339-3.2-0.557-1.67-0.217-3.36-0.492-3.74-0.61-0.39-0.118-0.6-0.107-0.47,0.026,0.12,0.133,0,0.495-0.28,0.806-0.39,0.432-0.43,0.647-0.16,0.922,0.2,0.196,0.36,0.604,0.36,0.905,0,0.72,1.07,0.718,2.79-0.006zm12.42-3.575c0-0.372-0.88-1.022-1.64-1.213-1.1-0.277-0.98,0.217,0.2,0.833,1.06,0.553,1.44,0.652,1.44,0.38zm-4.26-1.043c0-0.167-0.13-0.304-0.3-0.304s-0.31,0.137-0.31,0.304c0,0.168,0.14,0.305,0.31,0.305s0.3-0.137,0.3-0.305zm1.45-0.38c-0.15-0.431-0.64-0.383-0.79,0.076-0.05,0.167,0.13,0.304,0.41,0.304s0.45-0.171,0.38-0.38zm-7.53-2.966c0-0.167-0.21-0.304-0.46-0.304s-0.45,0.137-0.45,0.304c0,0.168,0.2,0.305,0.45,0.305s0.46-0.137,0.46-0.305zm23.57-8.213c-0.1-0.167-0.25-0.304-0.32-0.304s-0.13,0.137-0.13,0.304c0,0.168,0.14,0.304,0.32,0.304s0.24-0.136,0.13-0.304zm-3.34-0.608c-0.11-0.167-0.33-0.304-0.5-0.304-0.16,0-0.21,0.137-0.11,0.304s0.32,0.304,0.49,0.304,0.22-0.137,0.12-0.304zm13.27-0.814c-0.36-0.616-0.45-0.419-0.16,0.346,0.11,0.272,0.26,0.43,0.34,0.352,0.07-0.079-0.01-0.392-0.18-0.698zm-14.5,0.24c-0.16-0.149-0.64-0.36-1.05-0.469l-0.76-0.199,0.76,0.458c0.84,0.511,1.51,0.644,1.05,0.21zm3.51-0.661c0-0.157-0.14-0.286-0.31-0.286-0.16,0-0.3,0.213-0.3,0.474s0.14,0.39,0.3,0.287c0.17-0.104,0.31-0.317,0.31-0.475zm-5.63-0.286c-0.1-0.167-0.35-0.302-0.55-0.299-0.22,0.002-0.18,0.122,0.09,0.299,0.59,0.378,0.69,0.378,0.46,0zm17.49-0.735c0-0.237,0.17-0.511,0.38-0.608,0.3-0.142,0.31-0.214,0-0.355-0.26-0.121-0.09-0.464,0.54-1.088,0.5-0.501,0.9-1.072,0.9-1.268,0-0.264-0.06-0.266-0.23-0.01-0.16,0.246-0.35,0.208-0.67-0.134-0.39-0.426-0.38-0.458,0.08-0.28,0.32,0.121,0.52,0.055,0.53-0.17,0-0.234,0.11-0.202,0.29,0.085,0.24,0.378,0.4,0.39,0.91,0.074,0.5-0.308,0.62-0.308,0.61,0-0.02,0.587-0.78,1.466-1.06,1.214-0.14-0.123-0.17,0.003-0.07,0.279,0.12,0.329-0.01,0.553-0.37,0.648-0.38,0.098-0.55,0.401-0.52,0.914,0.06,0.939,0.32,0.801,1.23-0.645,1.4-2.226,2.58-7.879,1.75-8.392-0.24-0.149-0.34,0.437-0.34,1.986,0,1.209-0.11,2.096-0.23,1.97-0.24-0.241-0.28-0.406-0.34-1.412-0.03-0.344-0.16-0.554-0.3-0.465-0.15,0.089-0.24-0.48-0.2-1.264,0.03-0.784-0.13-2.037-0.35-2.786-0.23-0.748-0.34-1.608-0.24-1.911,0.11-0.344,0.02-0.55-0.22-0.547-0.54,0.006-1.45,0.592-0.94,0.599,0.21,0.002,0.38,0.133,0.38,0.289,0,0.157-0.56,0.278-1.25,0.268-0.69-0.009-1.34,0.123-1.44,0.293-0.26,0.407-0.95,0.49-1.79,0.216-0.81-0.26-0.92-1.053-0.16-1.081,0.41-0.015,0.38-0.084-0.15-0.294-0.37-0.152-0.68-0.425-0.68-0.607,0-0.183,0.13-0.248,0.3-0.144,0.45,0.277,0.37-0.623-0.17-1.911-0.26-0.622-0.43-1.157-0.38-1.189,0.25-0.157-2.46-3.324-3.88-4.539-1.1-0.939-1.56-1.53-1.43-1.855,0.13-0.355,0.91,0.291,3.01,2.51,2.37,2.506,2.94,3.304,3.51,4.946,0.39,1.076,0.87,2.024,1.08,2.106,0.21,0.081,0.31,0.27,0.22,0.42s-0.02,0.272,0.15,0.272c0.48,0,0.39-0.648-0.24-1.683-0.31-0.508-0.66-1.545-0.77-2.305-0.17-1.162-0.51-1.691-2.13-3.335-1.06-1.075-2.39-2.327-2.96-2.782-0.56-0.455-0.87-0.831-0.67-0.836s0.55,0.178,0.78,0.407c0.23,0.23,0.86,0.649,1.41,0.932,0.55,0.284,1.66,1.224,2.47,2.089,0.82,0.865,1.57,1.481,1.69,1.368,0.23-0.232-1.65-2.981-2.04-2.981-0.14,0-0.26-0.197-0.26-0.438s-0.82-0.877-1.83-1.414c-1-0.537-1.78-1.023-1.72-1.082,0.06-0.058,0.74,0.112,1.53,0.379,1.48,0.504,2.06,1.028,4.14,3.696,0.68,0.879,1.38,1.597,1.54,1.597,0.59,0,0.28-0.816-0.64-1.692-0.52-0.491-1.28-1.467-1.69-2.167-0.65-1.1-1.02-1.363-2.7-1.921-2.94-0.978-4.42-2.433-2.49-2.433,0.75,0,1.06-0.565,2.38-4.359,0.45-1.309,0.9-2.462,1-2.56s0.18-0.35,0.18-0.559,0.3-1.042,0.66-1.85c0.67-1.504,1.46-3.494,1.46-3.733,0.01-0.074-0.27,0.166-0.61,0.532-0.83,0.887-1.34,0.852-0.75-0.052,0.26-0.394,0.38-0.942,0.28-1.216-0.15-0.398,0.01-0.507,0.83-0.538,0.93-0.034,0.89-0.06-0.35-0.281-1.94-0.346-3.91-0.35-3.37-0.007,0.23,0.15,0.87,0.201,1.4,0.114,0.86-0.14,0.99-0.066,1.13,0.636,0.1,0.541,0.02,0.793-0.27,0.793-0.22,0-0.41,0.258-0.41,0.573,0,0.464-0.19,0.555-0.99,0.476-0.54-0.054-1.09-0.106-1.22-0.117-0.12-0.011-0.2-0.122-0.16-0.247,0.03-0.126-0.03-0.686-0.15-1.244-0.21-1.005-0.23-1.014-1.51-0.801-1.76,0.293-2.79,0.866-3.77,2.099-1.6,2.007-1.9,3.263-1.92,8.159-0.01,3.167-0.12,4.486-0.36,4.486-0.2,0-1.82,0.671-3.6,1.49-3.37,1.546-5.41,2.183-8.92,2.79-1.83,0.317-2.12,0.459-2.54,1.289-0.59,1.123-0.44,4.113,0.28,5.71,0.26,0.572,0.65,1.657,0.88,2.41,0.34,1.167,0.53,1.383,1.29,1.469,0.52,0.061,1.2-0.136,1.68-0.492,0.44-0.326,1.39-0.895,2.12-1.265,0.72-0.37,1.92-1.29,2.65-2.045s1.33-1.193,1.33-0.974c0,0.253,0.24,0.162,0.65-0.246,0.36-0.356,0.65-1.002,0.65-1.437,0-0.493,0.16-0.79,0.45-0.79,0.24,0,1.07-0.616,1.83-1.369,0.92-0.904,1.66-1.37,2.18-1.373,0.62-0.004,0.69-0.067,0.33-0.304-0.32-0.211-0.14-0.242,0.61-0.107,0.58,0.105,1.2,0.331,1.36,0.501,0.21,0.207,0.13,0.247-0.22,0.121-0.81-0.284-0.65,0.023,0.6,1.176,0.63,0.577,1.42,1.054,1.75,1.062,0.8,0.018,3.86,2.394,4.32,3.35,0.19,0.41,0.45,1.156,0.57,1.658l0.22,0.913-0.65-0.582c-0.36-0.319-0.74-0.496-0.85-0.392-0.36,0.366-0.18,1.762,0.31,2.3,0.27,0.301,0.49,0.686,0.49,0.856,0,0.481,1.09,1.344,1.37,1.088,0.14-0.126,0.15-0.051,0.03,0.165-0.13,0.217-0.08,0.573,0.1,0.793,0.31,0.375,0.69,2.798,0.69,4.395,0,0.521,0.1,0.624,0.34,0.381,0.5-0.504,0.82-0.405,0.82,0.255,0,0.325,0.14,0.675,0.3,0.779,0.4,0.245,0.4,1.278,0,1.526-0.17,0.106-0.46-0.228-0.64-0.743-0.18-0.514-0.46-0.935-0.62-0.935-0.4,0-0.01,1.226,0.61,1.928,0.27,0.308,0.5,0.719,0.5,0.913,0,0.541,0.88,2.33,1.14,2.33,0.13,0,0.23-0.194,0.23-0.431zm-0.4-2.199c-0.39-0.397-0.2-0.716,0.43-0.716,0.35,0,0.58,0.159,0.51,0.361-0.15,0.444-0.66,0.637-0.94,0.355zm0.1-2.407c0-0.261,0.13-0.39,0.3-0.286,0.17,0.103,0.31,0.316,0.31,0.474,0,0.157-0.14,0.286-0.31,0.286s-0.3-0.213-0.3-0.474zm3.52,0.211c-0.13-0.212-0.16-0.468-0.05-0.568,0.27-0.273,0.56,0.128,0.42,0.569-0.11,0.309-0.18,0.309-0.37-0.001zm-4.74-6.134c0-0.163,0.21-0.295,0.46-0.295s0.45,0.054,0.45,0.12c0,0.065-0.2,0.198-0.45,0.294s-0.46,0.043-0.46-0.119zm3.07-1.639c-0.02-0.32,0.06-0.5,0.16-0.399s0.11,0.364,0.02,0.583c-0.1,0.243-0.17,0.171-0.18-0.184zm-11.43-8.998c-0.11-0.168-0.05-0.305,0.13-0.305s0.32,0.137,0.32,0.305c0,0.167-0.06,0.304-0.13,0.304-0.08,0-0.22-0.137-0.32-0.304zm-1.24-3.489c-0.32-0.245-0.44-0.451-0.25-0.456s0.52,0.195,0.73,0.447c0.48,0.579,0.28,0.583-0.48,0.009zm3.52-6.397c0-0.251,0.11-0.457,0.25-0.457s0.25,0.206,0.25,0.457-0.11,0.456-0.25,0.456-0.25-0.205-0.25-0.456zm-1.31-0.043c-0.11-0.107-0.12-0.314-0.03-0.461,0.19-0.315,0.73-0.043,0.73,0.37,0,0.326-0.41,0.38-0.7,0.091zm3.13-4.502c0-0.074,0.14-0.219,0.31-0.322,0.16-0.104,0.3-0.043,0.3,0.134s-0.14,0.322-0.3,0.322c-0.17,0-0.31-0.061-0.31-0.134zm0-2.129c0-0.261,0.14-0.475,0.31-0.475,0.16,0,0.3,0.129,0.3,0.287,0,0.157-0.14,0.37-0.3,0.474-0.17,0.103-0.31-0.026-0.31-0.286zm0.61-0.779c0-0.167,0.14-0.304,0.3-0.304,0.17,0,0.31,0.137,0.31,0.304s-0.14,0.304-0.31,0.304c-0.16,0-0.3-0.137-0.3-0.304zm-0.56-0.608c0-0.419,0.07-0.59,0.15-0.381,0.09,0.21,0.09,0.552,0,0.761-0.08,0.209-0.15,0.038-0.15-0.38zm-4.81-2.244c-0.27-0.311-0.12-0.478,0.71-0.777,0.58-0.21,1.13-0.304,1.23-0.21,0.09,0.095-0.2,0.312-0.65,0.484s-0.74,0.449-0.63,0.617c0.27,0.442-0.25,0.352-0.66-0.114zm2.33-0.722c0-0.377,0.14-0.685,0.3-0.685,0.38,0,0.38,0.323,0,0.913-0.24,0.369-0.29,0.325-0.3-0.228zm-10.54,41.427c-0.13-0.314,0.02-0.53,0.44-0.638,0.82-0.215,0.96-0.692,0.47-1.625l-0.4-0.761-0.05,0.913c-0.04,0.686-0.1,0.573-0.24-0.456-0.11-0.753-0.07-1.544,0.09-1.757,0.15-0.213,0.19-0.478,0.08-0.588-0.44-0.432-0.86,0.534-1.02,2.309-0.09,1.024-0.26,1.861-0.37,1.861-0.4,0-1.29-1.302-1-1.484,0.41-0.265,0.64-2.484,0.33-3.307-0.33-0.917-0.87-0.871-0.87,0.076,0,0.583-0.16,0.763-0.69,0.77-0.64,0.009-0.65,0.034-0.13,0.427,0.64,0.483,0.19,0.942-0.64,0.654-0.47-0.163-0.47-0.142,0.01,0.235,0.3,0.228,0.54,0.508,0.54,0.622,0,0.266,0.51,0.906,1.75,2.194,1.04,1.076,2.02,1.397,1.7,0.555zm-0.34-2.263c0-0.586,0.06-0.825,0.14-0.533,0.07,0.293,0.07,0.772,0,1.065-0.08,0.293-0.14,0.053-0.14-0.532zm-2.3-0.507c-0.11-0.112-0.21-0.344-0.21-0.517,0-0.191,0.15-0.173,0.36,0.045,0.2,0.198,0.29,0.431,0.21,0.517-0.09,0.087-0.25,0.066-0.36-0.045zm14.09,0.507c0-0.167-0.14-0.304-0.3-0.304-0.17,0-0.31,0.137-0.31,0.304s0.14,0.304,0.31,0.304c0.16,0,0.3-0.137,0.3-0.304zm-16.12-2.7c0-0.146-0.2-0.83-0.44-1.521-0.25-0.69-0.33-1.255-0.18-1.255s0.4,0.377,0.56,0.837c0.27,0.773,0.31,0.79,0.53,0.228,0.12-0.334,0.45-0.871,0.72-1.193,0.39-0.478,0.4-0.535,0.03-0.313-0.99,0.589-1.3,0.436-1.1-0.547,0.24-1.204,0.31-1.258,1.05-0.861,0.34,0.18,0.9,0.328,1.24,0.328,0.53,0,0.64,0.201,0.67,1.293l0.03,1.293,0.28-1.521c0.15-0.836,0.29-1.929,0.31-2.427,0.03-0.499,0.24-1.098,0.47-1.332,0.24-0.234,0.35-0.637,0.25-0.895-0.1-0.257-0.03-0.562,0.15-0.677,0.24-0.144,0.2-0.348-0.12-0.667-0.34-0.343-0.37-0.547-0.11-0.805s0.22-0.345-0.15-0.345c-0.27,0-0.54,0.105-0.59,0.233-0.06,0.129-1.06,0.735-2.23,1.348-1.28,0.669-2.17,1.334-2.22,1.667-0.05,0.305-0.24,0.854-0.42,1.22-0.52,1.031,0.3,6.178,0.98,6.178,0.16,0,0.29-0.119,0.29-0.266zm-0.86-4.525c0.04-0.292-0.02-0.702-0.15-0.909-0.16-0.258-0.09-0.319,0.23-0.195,0.53,0.202,0.66,1.637,0.15,1.637-0.18,0-0.28-0.24-0.23-0.533zm17.1,4.042c0.27-0.413,0.49-1.207,0.49-1.765s0.16-1.176,0.36-1.374,0.28-0.437,0.19-0.532c-0.1-0.094-0.4,0.057-0.68,0.336-0.47,0.465-0.54,0.467-0.87,0.021-0.27-0.349-0.5-0.403-0.83-0.19-0.4,0.266-0.4,0.332,0,0.598,0.28,0.181,0.32,0.302,0.1,0.305-0.57,0.007-0.76-0.536-0.42-1.179,0.21-0.397,0.52-0.534,0.95-0.422,0.46,0.121,0.67-0.006,0.8-0.484,0.11-0.427,0.41-0.648,0.87-0.648,1.67,0,1.01-1.022-0.85-1.307-0.93-0.144-1.22-0.059-1.59,0.475-0.35,0.507-0.37,0.708-0.08,0.916,0.3,0.211,0.3,0.298,0,0.42-0.21,0.085-0.38,0.417-0.38,0.738,0,0.32-0.14,0.583-0.31,0.583-0.6,0-0.29,0.583,0.58,1.097s1.45,2.088,0.89,2.432c-0.14,0.086-0.25,0.286-0.25,0.443,0,0.532,0.53,0.291,1.03-0.463zm-1.13-5.233c-0.31-0.309-0.24-0.71,0.12-0.71,0.17,0,0.24,0.125,0.15,0.278-0.1,0.153,0,0.348,0.21,0.433s0.23,0.164,0.05,0.178c-0.18,0.013-0.42-0.068-0.53-0.179zm-3.98,4.848c-0.1-0.101-0.17,0.079-0.16,0.399,0.02,0.354,0.09,0.427,0.19,0.184,0.09-0.22,0.07-0.482-0.03-0.583zm8.03,0.526c0-0.167-0.13-0.304-0.3-0.304s-0.31,0.137-0.31,0.304,0.14,0.304,0.31,0.304,0.3-0.137,0.3-0.304zm-13.99-0.989c-0.01-0.534-0.07-0.587-0.29-0.242-0.15,0.243-0.21,0.551-0.13,0.684,0.27,0.427,0.42,0.262,0.42-0.442zm12.64-0.148c0.27-0.375,0.3-0.694,0.08-1.103-0.19-0.358-0.2-0.647-0.02-0.765,0.41-0.268,0.72-2.109,0.39-2.312-0.15-0.092-0.36-0.027-0.47,0.146-0.1,0.172-0.32,0.235-0.47,0.139-0.16-0.096-0.29-0.03-0.29,0.147s0.14,0.322,0.31,0.322,0.3,0.342,0.3,0.761c0,0.418-0.13,0.76-0.3,0.76s-0.31,0.548-0.31,1.217c0,1.331,0.19,1.495,0.78,0.688zm1.66-0.725c0-0.795-0.5-0.717-0.72,0.113-0.29,1.065-0.23,1.246,0.26,0.836,0.25-0.208,0.46-0.635,0.46-0.949zm-5.32-3.935c0.13-0.621,0.1-0.903-0.09-0.783-0.46,0.284-0.74-1.253-0.36-1.97,0.19-0.345,0.26-0.71,0.16-0.81s-0.35,0.254-0.55,0.787c-0.38,1-0.95,1.382-0.65,0.436,0.09-0.308-0.17-0.147-0.63,0.38l-0.79,0.913,0.17-1.673c0.35-3.286,0.37-3.174-0.46-3.184-0.58-0.008-0.77-0.178-0.8-0.715-0.04-0.855-0.72-1.68-0.72-0.877,0,0.284,0.1,0.518,0.23,0.519,0.12,0,0.26,0.646,0.31,1.433,0.04,0.788,0.3,1.759,0.56,2.157,0.27,0.422,0.4,1.022,0.29,1.437-0.1,0.392-0.03,0.806,0.16,0.919,0.19,0.122,0.26,0.653,0.15,1.311-0.15,0.96-0.13,1.007,0.14,0.357,0.44-1.034,0.5-1.063,1.06-0.504,0.27,0.271,0.35,0.493,0.17,0.493-0.17,0-0.23,0.228-0.12,0.506,0.13,0.34,0.08,0.434-0.16,0.286-0.2-0.121-0.36-0.075-0.36,0.102,0,0.574,0.53,0.342,1.06-0.464,0.28-0.433,0.59-0.711,0.68-0.618s-0.05,0.5-0.31,0.904c-0.27,0.404-0.4,0.817-0.3,0.917,0.24,0.239,0.89-1.029,1.16-2.259zm-7.89,1.202c-0.8-0.631-1.39-0.747-1.39-0.272,0,0.167,0.21,0.304,0.46,0.304,0.26,0,0.54,0.197,0.64,0.437,0.09,0.241,0.36,0.363,0.59,0.272,0.33-0.126,0.26-0.303-0.3-0.741zm2.71-0.272c-0.1-0.167-0.35-0.302-0.55-0.3-0.22,0.003-0.18,0.123,0.1,0.3,0.58,0.378,0.69,0.378,0.45,0zm18.23-1.574c-0.28-0.869-0.41-2.125-0.41-3.825,0-0.711-0.14-1.293-0.31-1.293-0.18,0-0.32-0.206-0.32-0.456,0-0.251,0.14-0.457,0.32-0.457s0.23-0.158,0.11-0.351c-0.14-0.218-0.09-0.268,0.13-0.134,0.19,0.119,0.35,0.059,0.35-0.134,0-0.192-0.26-0.417-0.57-0.5-0.31-0.082-0.74-0.512-0.94-0.957-0.33-0.735-0.4-0.761-0.75-0.289-0.25,0.353-0.47,0.42-0.69,0.209-0.21-0.211-0.36,0.255-0.49,1.454-0.1,0.971-0.06,1.888,0.09,2.039,0.15,0.15,0.2,0.664,0.1,1.141-0.11,0.567-0.04,0.868,0.19,0.868s0.29-0.232,0.17-0.606c-0.15-0.49-0.09-0.567,0.35-0.399,0.43,0.165,0.4,0.054-0.15-0.534-0.52-0.552-0.65-0.966-0.52-1.617,0.09-0.481,0.18-1.097,0.19-1.368,0.02-0.381,0.08-0.354,0.29,0.114,0.26,0.591,0.27,0.589,0.47-0.076,0.11-0.377,0.33-0.685,0.49-0.685s0.2,0.146,0.09,0.325c-0.11,0.178,0.05,0.518,0.36,0.754,0.49,0.374,0.5,0.47,0.11,0.733-0.34,0.22-0.49,0.176-0.56-0.164-0.06-0.255-0.26-0.408-0.46-0.338-0.41,0.147-0.33,1.426,0.13,1.878,0.21,0.212,0.24,0.13,0.09-0.264-0.15-0.413-0.1-0.534,0.21-0.433,0.65,0.217,0.85,1.555,0.3,1.971-0.42,0.316-0.4,0.439,0.22,1.094,0.4,0.431,0.61,0.936,0.51,1.216-0.1,0.264,0.05,0.837,0.33,1.274,0.61,0.925,0.9,0.828,0.57-0.19zm-21.59,0.389c0.09-0.15-0.04-0.351-0.29-0.447-0.28-0.106-0.45,0.001-0.45,0.273,0,0.492,0.47,0.604,0.74,0.174zm2.3-0.673c0-0.185-0.21-0.258-0.46-0.161-0.25,0.096-0.45,0.042-0.45-0.12s0.2-0.295,0.45-0.295,0.46-0.151,0.46-0.336c0-0.186-0.22-0.254-0.48-0.152-0.27,0.101-0.61,0.184-0.76,0.184-0.16,0-0.28,0.274-0.28,0.609,0,0.446,0.2,0.608,0.76,0.608,0.42,0,0.76-0.151,0.76-0.337zm1.99,0.054c-0.1-0.156-0.05-0.359,0.09-0.451,0.15-0.092,0.28-0.495,0.28-0.895,0-0.675-0.04-0.692-0.51-0.234-0.52,0.504-0.5,1.863,0.03,1.863,0.15,0,0.2-0.127,0.11-0.283zm-25.3-1.694c-0.19-0.497-0.72-0.628-0.72-0.178,0,0.231,0.21,0.388,0.82,0.61,0.04,0.013-0.01-0.181-0.1-0.432zm3.67,0.118c-0.09-0.149,0.11-0.27,0.46-0.27,0.84,0,0.8-0.533-0.06-0.698l-0.69-0.132,0.69-0.041c0.41-0.025,0.68-0.239,0.68-0.535,0-0.384-0.09-0.417-0.41-0.147-0.23,0.191-0.63,0.266-0.89,0.168-0.25-0.098-0.56-0.025-0.67,0.162-0.15,0.248-0.33,0.244-0.64-0.017-0.35-0.291-0.43-0.21-0.43,0.442,0,0.439-0.14,0.798-0.3,0.798-0.17,0-0.31,0.104-0.31,0.232s0.62,0.25,1.37,0.27c0.75,0.021,1.29-0.084,1.2-0.232zm4.29-0.69c0.29-1.139,0.04-2.482-0.43-2.382-0.27,0.057-0.35-0.082-0.24-0.38,0.12-0.297,0.01-0.468-0.29-0.468-0.31,0-0.43,0.229-0.37,0.684,0.06,0.376,0.27,0.684,0.48,0.684s0.35,0.137,0.3,0.304c-0.04,0.168-0.17,0.27-0.3,0.229-0.27-0.092-0.3,0.899-0.04,1.572,0.27,0.702,0.69,0.588,0.89-0.243zm13.83,0.42c-0.6-0.385-1.22-0.385-1.22,0,0,0.167,0.38,0.302,0.84,0.299,0.65-0.003,0.73-0.069,0.38-0.299zm1.66-0.283c0.09-0.156,0.05-0.361-0.11-0.455-0.15-0.094-0.35,0.033-0.45,0.283-0.19,0.493,0.27,0.634,0.56,0.172zm-16.87-0.941c0-0.736-1.08-0.455-1.13,0.296-0.03,0.407,0.11,0.514,0.54,0.402,0.32-0.084,0.59-0.399,0.59-0.698zm-9.76-0.677c0.01-0.126-0.11-0.229-0.28-0.229s-0.29,0.377-0.28,0.837c0.02,0.741,0.05,0.767,0.28,0.228,0.14-0.335,0.27-0.711,0.28-0.836zm25.44,0.152c-0.03-0.779-0.18-1.141-0.49-1.141-0.29,0-0.41,0.26-0.36,0.76,0.19,1.826,0.91,2.148,0.85,0.381zm6.52,0.058c0-0.261-0.13-0.39-0.3-0.287-0.17,0.104-0.3,0.317-0.3,0.475,0,0.157,0.13,0.286,0.3,0.286s0.3-0.213,0.3-0.474zm-5.02-0.134c-0.1-0.168,0.03-0.305,0.29-0.305s0.47-0.226,0.47-0.503c0-0.455-0.05-0.451-0.6,0.041-0.52,0.471-0.59,1.071-0.12,1.071,0.08,0,0.07-0.137-0.04-0.304zm9.39-0.143c0.25-0.663-0.28-0.841-0.76-0.252-0.28,0.352-0.29,0.44-0.03,0.283,0.21-0.126,0.38-0.083,0.38,0.094,0,0.461,0.21,0.397,0.41-0.125zm-30.99-0.846c0.03-0.417,0.38-0.844,0.89-1.092,0.46-0.225,0.77-0.471,0.7-0.548-0.29-0.282-3.26-0.362-3.26-0.088,0,0.156,0.23,0.283,0.5,0.283,0.39,0,0.42,0.091,0.14,0.427-0.27,0.327-0.27,0.469,0.04,0.608,0.32,0.148,0.32,0.216-0.01,0.365-0.3,0.138-0.26,0.28,0.15,0.583,0.65,0.472,0.79,0.383,0.85-0.538zm-13.53,0.313c0-0.15,0.12-0.197,0.27-0.105,0.15,0.093,0.35-0.036,0.45-0.286s0.44-0.454,0.76-0.454,0.67-0.214,0.77-0.476c0.1-0.261,0.31-0.396,0.47-0.299,0.15,0.097,0.37,0.029,0.48-0.151,0.25-0.394-3.34-0.07-4.21,0.381-0.31,0.158-0.75,0.213-0.99,0.123-0.61-0.236-1.18,0.921-0.61,1.242,0.61,0.339,2.61,0.359,2.61,0.025zm0.02-0.972c-0.01-0.321,0.06-0.5,0.16-0.399,0.11,0.101,0.12,0.363,0.03,0.583-0.1,0.242-0.17,0.17-0.19-0.184zm10.56,0.431c-0.45-0.719-0.57-0.636-0.34,0.238,0.09,0.367,0.29,0.594,0.44,0.505,0.14-0.09,0.1-0.424-0.1-0.743zm-6.32,0.304c0-0.167-0.15-0.304-0.32-0.304-0.18,0-0.24,0.137-0.14,0.304,0.11,0.167,0.25,0.304,0.33,0.304,0.07,0,0.13-0.137,0.13-0.304zm3.64-0.598c-0.01-0.676-0.05-0.705-0.32-0.232-0.17,0.296-0.44,0.459-0.6,0.362s-0.29,0.008-0.29,0.233,0.28,0.409,0.61,0.409c0.45,0,0.61-0.2,0.6-0.772zm9.74,0.453c0-0.198-0.47-0.282-1.21-0.211-0.67,0.063-1.16,0.211-1.09,0.327,0.22,0.345,2.3,0.24,2.3-0.116zm22.36-0.159c0.22,0,0.46,0.102,0.53,0.228s0.11,0.103,0.09-0.05-0.33-0.466-0.67-0.696c-0.59-0.39-0.63-0.36-0.63,0.43,0.01,0.467,0.07,0.677,0.14,0.468,0.08-0.209,0.32-0.38,0.54-0.38zm2.51,0.397c-0.3-0.077-0.71-0.072-0.92,0.012-0.2,0.083,0.04,0.146,0.54,0.14s0.67-0.074,0.38-0.152zm12.45-2.298c0.52-1.046,1.67-2.86,2.56-4.031,1.41-1.855,1.62-2.312,1.63-3.549,0.01-0.78,0.12-1.529,0.26-1.663,0.13-0.135,0.15-0.009,0.04,0.278-0.11,0.301-0.05,0.524,0.14,0.524,0.18,0,0.34-0.377,0.35-0.837s0.09-1.562,0.18-2.449c0.21-2.069-0.3-4.16-1.43-5.861-0.49-0.741-0.89-1.227-0.89-1.079s-0.29-0.096-0.64-0.542c-0.69-0.872-3.43-2.408-3.74-2.096-0.37,0.37-0.18,0.758,0.29,0.58,0.27-0.104,0.39-0.053,0.28,0.12-0.1,0.165,0.09,0.3,0.42,0.3,0.93,0,1.56,0.327,1.56,0.811,0,0.265,0.15,0.356,0.38,0.227,0.31-0.171,0.31-0.132,0,0.195-0.58,0.631-0.46,1.181,0.24,1.046,0.44-0.084,0.79,0.149,1.17,0.777,0.3,0.493,0.66,0.794,0.81,0.67,0.14-0.125,0.01,0.166-0.29,0.647-0.44,0.702-0.48,1.019-0.21,1.611,0.46,1.005,0.42,1.159-0.16,0.679-0.42-0.354-0.47-0.329-0.37,0.191,0.08,0.42,0.32,0.57,0.8,0.504,0.37-0.053,0.67,0.05,0.67,0.228s-0.13,0.323-0.3,0.323c-0.39,0-0.39,0.625,0,1.217,0.27,0.406,0.34,0.406,0.6,0,0.26-0.394,0.3-0.386,0.31,0.058,0,0.725-0.47,0.93-0.91,0.395-0.53-0.631-0.84-0.566-1.1,0.231l-0.23,0.685-0.17-0.703c-0.19-0.774-0.78-0.798-0.78-0.031,0,0.547-0.7,1.494-1.1,1.494-0.15,0-0.27-0.205-0.27-0.456,0-0.55-0.36-0.588-0.85-0.091-0.26,0.259-0.37,0.265-0.37,0.02,0-0.189,0.31-0.442,0.69-0.56,1.17-0.37,2.04-1.402,1.71-2.022-0.19-0.357-0.18-0.541,0.02-0.541,0.18,0,0.32,0.189,0.32,0.421,0,0.231,0.27,0.492,0.61,0.58,0.71,0.187,0.81-0.331,0.14-0.816-0.51-0.378-0.78-1.48-0.85-3.556-0.04-1.012-0.18-1.396-0.51-1.399-0.25-0.003-0.54,0.126-0.65,0.286-0.11,0.177-0.27,0.159-0.39-0.046-0.12-0.185-0.07-0.337,0.11-0.337s0.32-0.205,0.32-0.456c0-0.551-0.5-0.609-0.68-0.079-0.09,0.279-0.25,0.252-0.61-0.103-0.3-0.302-0.38-0.634-0.22-0.895,0.14-0.228,0.18-0.538,0.09-0.689-0.1-0.151-0.42,0.253-0.72,0.898-0.58,1.24-0.8,0.994-0.3-0.329,0.16-0.429,0.19-0.781,0.06-0.781-0.14,0-0.7,1.13-1.25,2.51s-1.27,3.106-1.59,3.836c-0.33,0.729-0.5,1.414-0.38,1.521s0.27,0.023,0.35-0.188c0.07-0.21,0.26-0.305,0.41-0.21s0.28,0,0.28-0.211c0-0.298,0.08-0.302,0.36-0.018,0.57,0.567,0.86,0.435,0.86-0.395,0-0.419,0.12-0.761,0.26-0.761,0.15,0,0.35-0.41,0.45-0.912,0.19-0.933,1.11-1.313,1.11-0.457,0,0.251-0.19,0.457-0.42,0.457-0.49,0-0.78,0.92-0.79,2.491,0,1.094-0.61,1.941-0.85,1.2-0.1-0.287-0.23-0.283-0.6,0.02-0.41,0.34-0.44,0.293-0.24-0.368l0.22-0.758-0.52,0.716c-0.4,0.548-0.58,0.621-0.78,0.313-0.31-0.504-0.29-0.532-1.28,1.943-1,2.516-1.01,2.763-0.05,1.591l0.75-0.912v0.988c0,0.544,0.14,0.989,0.3,0.989,0.17,0,0.31-0.206,0.31-0.457,0-0.713,0.55-0.534,0.7,0.228l0.13,0.685,0.24-0.71c0.17-0.547,0.29-0.617,0.51-0.304,0.2,0.281,0.23,0.203,0.1-0.253-0.24-0.865,0.34-1.202,1.02-0.588,0.3,0.267,0.7,0.486,0.9,0.486,0.19,0,0.35,0.137,0.35,0.304,0,0.168-0.12,0.304-0.26,0.304s-0.19,0.377-0.1,0.837c0.13,0.688,0.08,0.777-0.27,0.5-0.74-0.576-1.8-0.72-1.8-0.243,0,0.235,0.17,0.393,0.38,0.351,0.21-0.041,0.38,0.198,0.38,0.533,0,0.334-0.17,0.574-0.38,0.532s-0.4,0.232-0.42,0.608c-0.02,0.542-0.06,0.57-0.17,0.135-0.08-0.302-0.48-0.674-0.88-0.827-0.48-0.184-0.66-0.435-0.55-0.746,0.14-0.339,0.05-0.417-0.31-0.282-0.58,0.226-0.61,0.483-0.11,0.988,0.3,0.301,0.29,0.441-0.07,0.689-0.36,0.246-0.32,0.274,0.18,0.135,0.41-0.114,0.82,0.032,1.17,0.416,0.29,0.326,0.73,0.514,0.98,0.419,0.32-0.12,0.42-0.003,0.35,0.389-0.07,0.42,0.1,0.564,0.67,0.573,0.61,0.01,0.74,0.151,0.68,0.715-0.04,0.386,0.03,0.64,0.15,0.564,0.13-0.076,0.39,0.038,0.59,0.254,0.28,0.303,0.27,0.518-0.07,0.956-0.47,0.623-0.58,1.326-0.2,1.326,0.13,0,0.66-0.856,1.18-1.901zm-1.81-3.27c-0.11-0.396-0.01-0.609,0.26-0.609,0.24,0,0.43,0.274,0.43,0.609,0,0.334-0.12,0.608-0.27,0.608-0.14,0-0.34-0.274-0.42-0.608zm-1.44-0.305c0-0.167,0.14-0.304,0.31-0.304,0.16,0,0.3,0.137,0.3,0.304,0,0.168-0.14,0.305-0.3,0.305-0.17,0-0.31-0.137-0.31-0.305zm2.49-1.096c0.12-0.658,1.07-0.938,1.56-0.458,0.4,0.41,0.28,0.537-0.81,0.81-0.74,0.186-0.85,0.134-0.75-0.352zm2.68-0.576c0-0.252,0.24-0.461,0.54-0.466,0.48-0.009,0.48-0.049-0.05-0.449-0.51-0.388-0.63-0.378-1.01,0.085-0.38,0.473-0.39,0.459-0.1-0.139,0.4-0.839,0.41-1.406,0.02-1.161-0.17,0.104-0.31-0.017-0.31-0.268s0.15-0.547,0.33-0.657c0.17-0.111,0.26-0.365,0.18-0.564-0.08-0.207,0.14-0.377,0.51-0.395,0.36-0.017,0.48,0.035,0.27,0.115-0.23,0.089-0.36,0.646-0.33,1.414l0.04,1.268,0.21-1.217c0.2-1.177,0.21-1.192,0.52-0.456,0.18,0.418,0.44,0.692,0.59,0.608s0.28,0.181,0.3,0.589c0.04,0.71,0.02,0.716-0.39,0.156-0.4-0.547-0.42-0.526-0.35,0.332,0.07,0.975-0.21,1.661-0.68,1.661-0.16,0-0.29-0.206-0.29-0.456zm-2.13-1.369c0-0.356,0.21-0.609,0.49-0.609,0.32,0,0.43,0.166,0.31,0.482-0.1,0.264-0.19,0.538-0.19,0.608s-0.13,0.127-0.3,0.127-0.31-0.274-0.31-0.608zm-0.3-1.199c0-0.177,0.14-0.322,0.3-0.322,0.17,0,0.31,0.06,0.31,0.134s-0.14,0.219-0.31,0.322c-0.16,0.103-0.3,0.043-0.3-0.134zm-5.17-1.977c0-0.074,0.14-0.219,0.3-0.323,0.17-0.103,0.31-0.042,0.31,0.135s-0.14,0.322-0.31,0.322c-0.16,0-0.3-0.061-0.3-0.134zm5.06-1.843c-0.1-0.251-0.04-0.457,0.12-0.457s0.29,0.206,0.29,0.457-0.05,0.456-0.12,0.456c-0.06,0-0.19-0.205-0.29-0.456zm4.99-1.799c-0.24-0.6-0.61-1.091-0.83-1.091-0.53,0-0.5-0.243,0.07-0.819,0.56-0.556,0.53-0.586,1.03,1.012,0.51,1.613,0.29,2.335-0.27,0.898zm-5.03,0.43c-0.11-0.167,0.02-0.304,0.28-0.304,0.27,0,0.48,0.137,0.48,0.304s-0.13,0.304-0.29,0.304-0.37-0.137-0.47-0.304zm-2.59-2.89c0.21-0.251,0.43-0.456,0.5-0.456,0.06,0,0.11,0.205,0.11,0.456s-0.22,0.456-0.49,0.456c-0.41,0-0.43-0.082-0.12-0.456zm2.44,0.152c0-0.167,0.21-0.304,0.47-0.304s0.39,0.137,0.29,0.304c-0.11,0.167-0.32,0.304-0.48,0.304s-0.28-0.137-0.28-0.304zm-58.96,17.131c-0.22-0.088-0.48-0.077-0.58,0.024s0.08,0.173,0.4,0.16c0.35-0.015,0.42-0.087,0.18-0.184zm15.96-1.215c-0.08-0.085-0.47-0.053-0.85,0.069l-0.71,0.223,0.68,0.251c0.38,0.139,0.7,0.427,0.72,0.642,0.03,0.214,0.11,0.07,0.18-0.321s0.07-0.779-0.02-0.864zm-17.08,0.814c-0.1-0.167-0.32-0.304-0.47-0.304-0.16,0-0.29,0.137-0.29,0.304,0,0.168,0.21,0.305,0.47,0.305s0.39-0.137,0.29-0.305zm13.07-0.859c-0.13-0.113-0.28-0.049-0.35,0.143-0.07,0.191-0.43,0.282-0.8,0.203-0.6-0.131-0.59-0.104,0.09,0.279,0.65,0.363,0.8,0.363,1.02,0.003,0.14-0.233,0.16-0.515,0.04-0.628zm1.68,0.555c0-0.167-0.24-0.302-0.53-0.299-0.45,0.004-0.47,0.047-0.08,0.299,0.58,0.371,0.61,0.371,0.61,0zm-4.03-0.211c-0.3-0.077-0.71-0.072-0.92,0.012-0.2,0.083,0.04,0.146,0.54,0.14s0.67-0.075,0.38-0.152zm11.39,0.003c-0.22-0.087-0.48-0.077-0.58,0.024s0.08,0.173,0.4,0.16c0.35-0.015,0.42-0.087,0.18-0.184zm22.07-0.882c-0.29-0.29-0.87,0.18-0.65,0.529,0.13,0.208,0.3,0.203,0.51-0.016,0.18-0.179,0.25-0.41,0.14-0.513zm-22.55-0.957c-0.1-0.101-0.17,0.079-0.16,0.399,0.01,0.355,0.09,0.427,0.18,0.184,0.09-0.219,0.08-0.482-0.02-0.583zm-0.49-0.082c0-0.168-0.13-0.304-0.29-0.304-0.15,0-0.37,0.136-0.47,0.304-0.1,0.167,0.03,0.304,0.29,0.304s0.47-0.137,0.47-0.304zm22.81-0.295c0-0.162-0.2-0.216-0.45-0.119-0.25,0.096-0.46,0.228-0.46,0.294s0.21,0.12,0.46,0.12,0.45-0.133,0.45-0.295zm13.27-0.535c-0.1-0.101-0.18,0.078-0.16,0.399,0.01,0.354,0.08,0.426,0.18,0.184,0.09-0.22,0.08-0.482-0.02-0.583zm-0.87-0.597c-0.29-0.283-0.62-0.412-0.74-0.288-0.13,0.125-0.03,0.354,0.22,0.51,0.74,0.468,1.07,0.328,0.52-0.222zm-2.16-2.358c-0.44-0.412-0.81-0.6-0.81-0.419,0,0.402,1.26,1.53,1.47,1.319,0.08-0.083-0.21-0.488-0.66-0.9zm-26.21-0.474c0.11-0.167-0.02-0.304-0.28-0.304s-0.48,0.137-0.48,0.304,0.13,0.304,0.29,0.304,0.37-0.137,0.47-0.304zm26.78-0.631c0.11-0.347,0.12-0.712,0.02-0.811s-0.18,0.048-0.18,0.327-0.14,0.507-0.3,0.507c-0.17,0-0.31,0.137-0.31,0.304,0,0.555,0.57,0.315,0.77-0.327zm-25.72-0.27c0.75-0.475,0.22-0.589-0.75-0.16-0.71,0.312-0.78,0.408-0.31,0.424,0.34,0.01,0.81-0.108,1.06-0.264zm2.78-1.625c-0.25-0.241-0.34-0.162-0.34,0.285,0,0.805,0.43,1.231,0.56,0.563,0.06-0.284-0.04-0.665-0.22-0.848zm-2.47-1.834c0-0.631-0.36-0.839-0.81-0.467-0.58,0.49-0.5,0.873,0.2,0.873,0.34,0,0.61-0.183,0.61-0.406zm2.2-1.475c-0.19-0.19-0.23,0.01-0.12,0.565,0.13,0.637,0.21,0.713,0.29,0.295,0.07-0.311-0.01-0.698-0.17-0.86zm-0.68,0.664c0-0.167-0.14-0.304-0.32-0.304s-0.24,0.137-0.13,0.304c0.1,0.167,0.25,0.304,0.32,0.304s0.13-0.137,0.13-0.304zm-2.31-0.741c-0.09-0.241-0.36-0.363-0.6-0.273-0.51,0.198-0.27,0.71,0.34,0.71,0.24,0,0.35-0.185,0.26-0.437zm2.92-2.32c0-0.818-0.09-0.893-1.06-0.893-0.59,0-1.07,0.136-1.07,0.304,0,0.167,0.21,0.304,0.46,0.304s0.46,0.245,0.46,0.544c0,0.325,0.24,0.562,0.6,0.589,0.48,0.036,0.61-0.142,0.61-0.848zm-17.64-0.893c0-0.168-0.15-0.304-0.32-0.304-0.18,0-0.24,0.136-0.14,0.304,0.11,0.167,0.25,0.304,0.33,0.304,0.07,0,0.13-0.137,0.13-0.304zm16.57-1.416c-0.84-0.614-1.23-0.493-0.61,0.192,0.3,0.33,0.69,0.515,0.86,0.41,0.18-0.114,0.08-0.358-0.25-0.602zm10.4-1.094c-0.08-0.209-0.15-0.038-0.15,0.38,0,0.419,0.07,0.59,0.15,0.381s0.08-0.552,0-0.761zm-11.46-0.246c0-0.157-0.13-0.286-0.3-0.286s-0.31,0.213-0.31,0.474,0.14,0.39,0.31,0.286c0.17-0.103,0.3-0.316,0.3-0.474zm1.16-0.347c0.2-0.201,0.36-0.564,0.36-0.808,0-0.351-0.12-0.329-0.6,0.108-0.63,0.566-0.8,1.065-0.37,1.065,0.13,0,0.41-0.164,0.61-0.365zm-24.58-0.395c0-0.251-0.13-0.457-0.29-0.457-0.17,0-0.22,0.206-0.12,0.457,0.09,0.25,0.23,0.456,0.29,0.456,0.07,0,0.12-0.206,0.12-0.456zm34.57-1.451c-0.08-0.206-0.14,0.036-0.14,0.538,0.01,0.502,0.08,0.67,0.15,0.374,0.08-0.296,0.08-0.706-0.01-0.912zm20.87,0.792c-0.21-0.085-0.31-0.279-0.21-0.432,0.09-0.153,0.03-0.278-0.14-0.278-0.16,0-0.38,0.125-0.47,0.278-0.17,0.275,0.3,0.586,0.89,0.586,0.17,0,0.14-0.069-0.07-0.154zm-31.25-0.715c0.1-0.17,0.32-0.231,0.47-0.134,0.34,0.21,0.33-0.103-0.02-0.926-0.23-0.532-0.26-0.541-0.28-0.066-0.01,0.298-0.23,0.62-0.48,0.716-0.5,0.193-0.63,0.719-0.17,0.719,0.16,0,0.37-0.139,0.48-0.309zm-30.07-4.336c-0.09-0.206-0.15,0.036-0.14,0.538,0,0.502,0.07,0.671,0.15,0.375s0.07-0.707-0.01-0.913zm18.35-0.258c0-0.167-0.13-0.22-0.3-0.116-0.17,0.103-0.31,0.325-0.31,0.492s0.14,0.22,0.31,0.116c0.17-0.103,0.3-0.325,0.3-0.492zm53.05-5.988c0.11-0.181,0.27-1.741,0.35-3.465s0.36-3.778,0.62-4.564c0.35-1.059,0.39-1.585,0.15-2.033-0.18-0.332-0.33-0.818-0.33-1.078s-0.46-1.084-1.03-1.83-1.13-1.91-1.25-2.587c-0.24-1.454-0.76-1.942-0.76-0.719,0,0.47,0.41,1.723,0.91,2.783,0.56,1.164,0.92,2.422,0.92,3.173,0,1.187-1.87,8.286-2.49,9.442-0.47,0.877,0,2.182,1.21,3.397l1.12,1.126,0.19-1.657c0.1-0.911,0.27-1.806,0.39-1.988zm-53.05,2.678c0-0.167-0.51-0.291-1.14-0.274-1.02,0.027-1.06,0.056-0.38,0.274,1.09,0.348,1.52,0.348,1.52,0zm22.51-1.369c0-0.251-0.05-0.456-0.12-0.456-0.06,0-0.2,0.205-0.29,0.456-0.1,0.251-0.04,0.456,0.12,0.456s0.29-0.205,0.29-0.456zm-8.22-1.463c0-0.366-0.13-0.872-0.29-1.123-0.22-0.333-0.3-0.103-0.3,0.855-0.01,0.797,0.11,1.237,0.3,1.123,0.16-0.104,0.3-0.488,0.29-0.855zm9.13-8.879c-0.2-0.251-0.51-0.457-0.68-0.457s-0.13,0.202,0.08,0.457c0.2,0.251,0.51,0.456,0.68,0.456s0.14-0.202-0.08-0.456zm0.77-0.761c-0.11-0.167-0.25-0.304-0.33-0.304-0.07,0-0.13,0.137-0.13,0.304,0,0.168,0.14,0.304,0.32,0.304s0.24-0.136,0.14-0.304zm-0.92-1.216c-0.1-0.168-0.25-0.305-0.32-0.305s-0.13,0.137-0.13,0.305c0,0.167,0.14,0.304,0.32,0.304s0.24-0.137,0.13-0.304zm15.67-3.346c0-0.335-0.14-0.609-0.31-0.609-0.16,0-0.3-0.151-0.3-0.336s-0.35-0.615-0.79-0.954c-0.49-0.387-0.73-0.823-0.64-1.165,0.08-0.301-0.02-0.612-0.23-0.692-0.27-0.102-0.34-0.754-0.25-2.2333l0.13-2.0891-1.11-0.5312c-1.47-0.6998-4.41-1.0035-5.27-0.5438-0.86,0.4582-0.84,0.6119,0.24,1.7966,0.72,0.7821,0.82,1.0288,0.46,1.1649-0.25,0.095-0.45,0.295-0.45,0.4444,0,0.3975,1.04,0.3315,1.46-0.0934,0.29-0.2839,0.37-0.267,0.37,0.076,0,0.5319,0.88,1.5969,3.57,4.3199,2.05,2.084,3.12,2.577,3.12,1.445zm12.4-5.34c-0.07-0.071-0.56-0.2165-1.09-0.3228-1.3-0.2603-1.28,0.3898,0.02,0.7358,0.86,0.228,1.48-0.008,1.07-0.413zm-3.77-0.146c0.15-0.1379-0.54-0.2501-1.52-0.2495-1.64,0.001-1.74,0.0383-1.19,0.4435,0.61,0.443,2.15,0.333,2.71-0.194zm1.82-1.6493c1.15,0.0572,2.16,0.1802,2.26,0.2734,0.32,0.3199,0.67,0.1687,0.67-0.287,0-0.3336-0.35-0.457-1.29-0.4589-0.71-0.0015-2.01-0.089-2.89-0.1945-1.51-0.1816-1.6-0.1553-1.6,0.4962,0,0.5132,0.1,0.6091,0.38,0.3774,0.21-0.1709,1.32-0.2638,2.47-0.2066zm4.04-1.5214c-0.09-0.2582-0.41-0.4694-0.7-0.4694s-0.8-0.2529-1.15-0.5621c-0.75-0.6739-3.07-1.611-3.33-1.3482-0.38,0.3803-0.18,1.0608,0.26,0.8912,0.45-0.1708,2.23,0.549,3.96,1.6008,1.02,0.6127,1.23,0.5873,0.96-0.1123zm-5.98-0.9078c-0.01-0.1771-0.21-0.0564-0.46,0.2684s-0.44,0.7354-0.44,0.9126c0.01,0.1771,0.21,0.0563,0.46-0.2684,0.24-0.3248,0.44-0.7354,0.44-0.9126zm6.7-0.9038c0-0.6384-0.33-0.8573-2.49-1.683-1.93-0.7387-2.54-0.8626-2.73-0.5589-0.15,0.2486-0.05,0.463,0.28,0.5909,0.29,0.1104,1.31,0.5005,2.26,0.867,0.96,0.3664,1.9,0.8578,2.09,1.092,0.49,0.5886,0.59,0.5386,0.59-0.308zm-67.31,27.014c-0.12-0.122-0.22-0.432-0.22-0.688,0-0.343,0.09-0.377,0.34-0.128,0.18,0.186,0.28,0.496,0.22,0.688-0.07,0.192-0.22,0.25-0.34,0.128zm1.2-0.019c-0.37-0.372-0.21-0.71,0.33-0.686,0.32,0.015,0.38,0.085,0.15,0.178-0.21,0.085-0.31,0.279-0.21,0.433,0.2,0.323,0.02,0.371-0.27,0.075zm6.96-0.642c-0.06-0.057-0.03-0.364,0.05-0.682,0.13-0.489,0.37-0.559,1.56-0.453,0.78,0.069,1.66,0.132,1.97,0.14s0.46,0.155,0.34,0.345c-0.11,0.182-0.46,0.263-0.78,0.181-0.31-0.083-0.57-0.041-0.57,0.094,0,0.236-2.36,0.582-2.57,0.375zm1.41-0.58c-0.22-0.088-0.48-0.077-0.58,0.024s0.07,0.173,0.4,0.16c0.35-0.015,0.42-0.087,0.18-0.184zm-7.36,0.208c0-0.167,0.14-0.304,0.31-0.304,0.16,0,0.3,0.137,0.3,0.304s-0.14,0.304-0.3,0.304c-0.17,0-0.31-0.137-0.31-0.304zm-2.13-0.566c0-0.144,0.34-0.197,0.76-0.117s0.76,0.198,0.76,0.262-0.34,0.117-0.76,0.117-0.76-0.118-0.76-0.262zm4.42-0.034c-0.09-0.143-0.74-0.348-1.45-0.455-2.16-0.328-2.62-0.676-2.37-1.798,0.12-0.532,0.18-1.265,0.12-1.628s0.04-0.744,0.2-0.848c0.46-0.279,0.05-0.756-0.47-0.557-0.25,0.094-0.45,0.004-0.45-0.201,0-0.219,0.25-0.308,0.6-0.217,0.79,0.207,0.85-0.09,0.51-2.554-0.23-1.746-0.34-2.009-0.65-1.59-0.2,0.277-0.52,0.405-0.72,0.286-0.43-0.266-0.46-1.093-0.04-1.093,0.17,0,0.3-0.146,0.3-0.325,0-0.193-0.26-0.241-0.65-0.117-0.52,0.166-0.62,0.107-0.47-0.283,0.11-0.271,0.07-0.492-0.07-0.492-0.15,0-0.34,0.206-0.44,0.457-0.28,0.723-1.19,0.58-0.95-0.15,0.1-0.333,0.08-0.778-0.05-0.988-0.16-0.257-0.31-0.082-0.44,0.529-0.19,0.877-0.2,0.868-0.24-0.248-0.03-1.063-0.09-1.142-0.72-0.936-1.56,0.515-1.88,0.351-2.1-1.097-0.27-1.78-0.31-5.285-0.06-5.932,0.15-0.4046,0.25-0.425,0.45-0.101,0.19,0.303,0.26,0.31,0.26,0.025,0.01-0.209,0.15-0.3801,0.33-0.3801,0.19,0,0.24,0.2594,0.13,0.6081-0.11,0.349-0.05,0.609,0.14,0.609,0.17,0,0.32-0.214,0.32-0.475,0-0.26,0.14-0.389,0.3-0.286,0.17,0.104,0.31-0.084,0.31-0.4158,0-0.7029,0.71-0.9316,1.91-0.6104,0.5,0.1358,0.77,0.1126,0.66-0.0578-0.1-0.1656,0.65-0.2846,1.8-0.2846,1.09,0,2.07,0.1462,2.18,0.3249s0.38,0.2579,0.59,0.1759,0.53-0.0047,0.71,0.1717c0.18,0.1774,0.57,0.2184,0.87,0.0917,0.31-0.1261,1.24-0.2906,2.07-0.3656s1.67-0.2626,1.85-0.417c0.19-0.1543,0.43-0.1916,0.54-0.083,0.32,0.319-0.42,1.0109-1.13,1.0492-0.52,0.0284-0.54,0.0629-0.11,0.1751,0.3,0.0767,0.46,0.2667,0.36,0.4207-0.28,0.465,0.39,0.317,0.91-0.197,0.53-0.5279,2.64-0.7554,3.82-0.4115,0.54,0.1565,0.23,0.2302-1.06,0.2525-1.45,0.025-2.09,0.204-3.08,0.867-1.03,0.683-1.19,0.904-0.86,1.212,0.23,0.207,0.62,0.295,0.88,0.196,0.26-0.1,0.47-0.03,0.47,0.155s-0.23,0.337-0.51,0.337-0.73,0.208-1.02,0.463c-0.63,0.572-1.51,0.282-1.51-0.496,0-0.317-0.2-0.576-0.43-0.576-0.61,0-1.52,0.954-1.14,1.189,0.18,0.108-0.07,0.69-0.58,1.378-0.49,0.656-0.9,0.996-0.91,0.758-0.02-0.262-0.13-0.192-0.29,0.174-0.36,0.837-0.36,1.134,0,0.912,0.26-0.158,0.5,1.756,0.34,2.684-0.03,0.138,0.08,0.174,0.23,0.08,0.33-0.205,0.65,0.742,0.82,2.407,0.09,0.899,0.04,1.058-0.16,0.609-0.15-0.335-0.28-0.917-0.29-1.293-0.03-0.822-0.63-0.931-0.63-0.114,0,0.313,0.22,1.169,0.49,1.901s0.48,1.646,0.46,2.032c-0.02,0.456,0.09,0.626,0.31,0.485,0.22-0.131,0.27-0.081,0.14,0.127-0.29,0.476,0.48,1.835,1.76,3.097,1.11,1.097,1.38,1.802,0.72,1.856-0.21,0.017-0.89,0.078-1.52,0.135-0.62,0.057-1.2-0.014-1.29-0.157zm-2.29-2.442c0-0.167-0.21-0.304-0.47-0.304s-0.39,0.137-0.29,0.304,0.32,0.304,0.48,0.304c0.15,0,0.28-0.137,0.28-0.304zm-2.66-15.818c0.31,0,0.48-0.137,0.38-0.304-0.26-0.426,0.26-0.38,0.7,0.061,0.28,0.284,0.37,0.212,0.37-0.323,0-0.539-0.15-0.668-0.69-0.593-0.51,0.071-0.71-0.075-0.78-0.59-0.13-0.9382-0.67-0.8692-0.59,0.076,0.03,0.419,0.17,0.761,0.3,0.761,0.5,0,0.21,0.545-0.37,0.696-0.34,0.088-0.61,0.337-0.61,0.553,0,0.306,0.08,0.312,0.36,0.028,0.2-0.2,0.62-0.365,0.93-0.365zm2.3-0.988c-0.47-1.3823-0.55-1.4011-0.55-0.127,0,0.771,0.14,1.115,0.44,1.115,0.36,0,0.38-0.174,0.11-0.988zm4.94-0.176c-0.85-0.128-1.63,0.164-1.4,0.527,0.1,0.165,0.56,0.134,1.12-0.074,0.84-0.312,0.87-0.365,0.28-0.453zm-8.53-0.339c0-0.41-0.56-0.6951-0.92-0.471-0.17,0.105-0.23,0.319-0.13,0.475,0.22,0.369,1.05,0.367,1.05-0.004zm3.4-1.442c-0.22-0.0879-0.48-0.0771-0.58,0.024s0.08,0.1729,0.4,0.1597c0.35-0.0146,0.42-0.0866,0.18-0.1837zm11.43,21.286c0.37-0.072,0.99-0.072,1.37,0,0.37,0.073,0.06,0.132-0.69,0.132s-1.06-0.059-0.68-0.132zm-16.84-1.875c0.02-0.412,0.22-0.812,0.44-0.887,0.3-0.099,0.36,0.041,0.21,0.507-0.12,0.382-0.07,0.645,0.12,0.645,0.18,0,0.32,0.128,0.32,0.285s-0.25,0.266-0.56,0.243c-0.39-0.03-0.55-0.269-0.53-0.793zm33.72,0.459c-0.85-0.42-0.89-0.808-0.08-0.65,0.8,0.152,1.22,0.422,1.22,0.778,0,0.345-0.24,0.318-1.14-0.128zm-13.25-0.118c-0.36-0.636-0.5-1.902-0.21-1.902,0.17,0,0.45-0.344,0.61-0.765,0.26-0.675,1.34-1.364,2.14-1.364,0.15,0,0.5,0.336,0.77,0.747,0.56,0.86,0.32,1.619-0.34,1.071-0.33-0.273-0.45-0.123-0.61,0.749-0.29,1.545-0.89,1.816-0.66,0.294,0.17-1.08,0.15-1.135-0.25-0.606-0.25,0.333-0.36,0.884-0.25,1.292,0.14,0.573,0.05,0.712-0.45,0.712-0.34,0-0.68-0.103-0.75-0.228zm4.86-0.888c-0.33-0.332-0.23-1.014,0.15-1.014,0.2,0,0.27,0.091,0.16,0.201s-0.05,0.383,0.13,0.608c0.34,0.408-0.06,0.591-0.44,0.205zm-16.01-1.447c-0.46-1.189-0.37-1.376,0.18-0.376,0.25,0.475,0.39,0.939,0.3,1.031-0.1,0.092-0.31-0.203-0.48-0.655zm19.62,0.448c-0.25-0.405,1-1.511,1.72-1.525,0.8-0.016,2.07,0.65,2.07,1.085,0,0.305-0.18,0.295-0.84-0.047-1.09-0.573-1.28-0.556-2.07,0.191-0.45,0.42-0.75,0.519-0.88,0.296zm-2.4-0.894c0.26-1.077,0.38-1.25,0.86-1.25,0.46,0,0.91,1.047,0.64,1.482-0.09,0.149-0.51,0.336-0.93,0.416-0.68,0.131-0.74,0.069-0.57-0.648zm-23.85-0.083c-0.21-0.206-0.38-0.583-0.38-0.836,0-0.399,0.07-0.395,0.49,0.03,0.27,0.271,0.44,0.648,0.38,0.838-0.08,0.249-0.22,0.24-0.49-0.032zm37.26-0.454c0.2-0.083,0.62-0.088,0.91-0.011,0.3,0.077,0.13,0.145-0.37,0.151-0.5,0.007-0.75-0.056-0.54-0.14zm-42.3-1.524c-0.31-0.303-0.25-1.38,0.06-1.189,0.35,0.216,0.66,1.392,0.37,1.392-0.13,0-0.32-0.091-0.43-0.203zm28.01-1.391c-0.77-0.877-1.36-1.641-1.3-1.698,0.26-0.263,1.38,0.65,1.98,1.615,0.48,0.774,0.88,1.074,1.47,1.09,0.73,0.019,0.75,0.048,0.21,0.283-0.34,0.143-0.69,0.271-0.78,0.283-0.1,0.011-0.81-0.696-1.58-1.573zm-23.76-0.079c0.11-0.289-0.01-0.456-0.32-0.456-0.27,0-0.49-0.103-0.49-0.229s0.72-0.247,1.6-0.269,1.43,0.024,1.22,0.102-0.38,0.321-0.38,0.54c0,0.411-0.65,0.768-1.39,0.768-0.25,0-0.35-0.186-0.24-0.456zm-3.64-0.659c-0.12-0.112-0.2-0.557-0.18-0.989,0.02-0.771,0.03-0.769,0.29,0.112,0.28,0.925,0.24,1.23-0.11,0.877zm35.84-1.014c-0.1-0.167-0.04-0.304,0.13-0.304,0.18,0,0.33,0.137,0.33,0.304s-0.07,0.304-0.14,0.304-0.22-0.137-0.32-0.304zm-33.01-0.743c0-0.534,0.19-0.613,0.45-0.191,0.09,0.156,0.03,0.369-0.14,0.475-0.17,0.104-0.31-0.023-0.31-0.284zm18.81-2.331c-0.48-0.536-0.75-1.115-0.64-1.387,0.35-0.926,1.52-1.825,2.24-1.716,0.9,0.138,1.16,0.397,0.4,0.397-1.03,0-1.99,0.89-1.89,1.755,0.05,0.431,0.25,0.834,0.44,0.896,0.22,0.071,0.28-0.183,0.18-0.709-0.31-1.637,2.11-2.245,3.66-0.917,0.46,0.395,0.84,0.818,0.84,0.939s-0.43-0.135-0.94-0.568c-0.52-0.433-1.14-0.787-1.39-0.787-0.73,0-1.63,0.593-1.63,1.075,0,0.582,0.49,0.575,0.72-0.011,0.26-0.682,1.61-0.555,2.14,0.202,0.56,0.802,0.38,1.167-0.58,1.167-0.4,0-0.79,0.107-0.87,0.238s-0.53,0.262-1.01,0.291c-0.61,0.039-1.09-0.208-1.67-0.865zm4.79,0.669c-0.1-0.152,0.1-0.204,0.44-0.117,0.71,0.186,0.8,0.393,0.17,0.393-0.25,0-0.52-0.125-0.61-0.276zm-17.06-0.333c-0.1-0.167-0.04-0.304,0.14-0.304s0.32,0.137,0.32,0.304-0.06,0.304-0.13,0.304c-0.08,0-0.22-0.137-0.33-0.304zm18.41-0.621c0-0.175-0.34-0.682-0.75-1.127-0.41-0.444-0.68-0.878-0.6-0.964,0.21-0.202,1.96,1.668,1.96,2.087,0,0.177-0.14,0.321-0.31,0.321-0.16,0-0.3-0.143-0.3-0.317zm1.6-1.101c-0.21-0.085-0.39-0.294-0.39-0.465,0-0.18,0.23-0.216,0.54-0.086,0.29,0.124,1.01,0.329,1.59,0.454l1.07,0.228-1.22,0.011c-0.67,0.006-1.39-0.058-1.59-0.142zm-1.22-3.651c-0.21-0.084-0.38-0.295-0.38-0.469,0-0.207,0.14-0.199,0.41,0.023,0.22,0.186,0.49,0.248,0.6,0.138s0.2-0.04,0.2,0.155c0,0.372-0.2,0.409-0.83,0.153zm-3.27-0.851c-2.09-0.332-3.98-1.046-2.83-1.067,0.28-0.005,0.58,0.108,0.67,0.253,0.09,0.144,1.07,0.334,2.17,0.422,1.81,0.146,2.59,0.363,2.24,0.632-0.07,0.055-1.08-0.053-2.25-0.24zm-5.02-1.667c0-0.177,0.14-0.322,0.3-0.322,0.17,0,0.31,0.06,0.31,0.134s-0.14,0.219-0.31,0.322c-0.16,0.104-0.3,0.043-0.3-0.134zm1.91,0.103c0.1-0.101,0.36-0.112,0.58-0.024,0.24,0.097,0.17,0.169-0.18,0.183-0.32,0.014-0.5-0.058-0.4-0.159zm-21.38-1.3374c0.59-0.3812,0.91-0.3812,0.91,0,0,0.1673-0.3,0.3021-0.68,0.2995-0.55-0.0038-0.6-0.0611-0.23-0.2995zm18.17,0.1187c-0.1-0.1028-0.57-0.2236-1.04-0.2686-1.13-0.108-1.92-0.4509-1.92-0.8325,0-0.1699,0.22-0.1262,0.49,0.0971,0.42,0.3451,0.55,0.3184,0.92-0.1776,0.41-0.5705,0.43-0.5685,0.89,0.0875,0.52,0.7388,1.12,0.9151,0.87,0.2537-0.12-0.3084,0.04-0.378,0.63-0.2663,0.43,0.0832,0.75,0.1698,0.7,0.1926s-0.37,0.2798-0.72,0.5711c-0.35,0.2914-0.72,0.4457-0.82,0.343zm-11.09-0.9109c0.1-0.1011,0.36-0.1119,0.58-0.024,0.25,0.0971,0.17,0.1692-0.18,0.1838-0.32,0.0132-0.5-0.0587-0.4-0.1598zm4.95-0.5006c0.29-0.9301,0.39-1.0064,0.81-0.5881,0.28,0.272,0.28,0.3599,0.01,0.3599-0.2,0-0.28,0.2054-0.18,0.4563,0.11,0.2936-0.01,0.4563-0.34,0.4563-0.38,0-0.46-0.1634-0.3-0.6844zm-6.78,0.1964c0.11-0.101,0.37-0.1119,0.59-0.024,0.24,0.0971,0.17,0.1692-0.19,0.1838-0.32,0.0132-0.5-0.0587-0.4-0.1598zm3.96-1.0254c-0.05-0.7347,0.11-0.771,0.72-0.1596,0.25,0.2509,0.39,0.4563,0.31,0.4563s-0.34,0.0718-0.57,0.1595c-0.26,0.1-0.43-0.0704-0.46-0.4562zm-9.59-1.2487c0.1-0.4113,0.24-0.5492,0.32-0.3213,0.07,0.2194-0.01,0.5436-0.19,0.7203-0.23,0.2258-0.27,0.107-0.13-0.399zm1.98-0.2695c-0.29-0.4548-0.71-0.6186-1.6-0.6186-1.19,0-1.22-0.0203-1.22-1.0972,0-0.8755,0.1-1.0599,0.49-0.9126,0.26,0.1016,0.64,0.189,0.83,0.1943,0.2,0.0054,0.12,0.1898-0.17,0.4099-0.49,0.3701-0.47,0.4264,0.24,0.7489,0.62,0.2841,0.8,0.2645,0.94-0.1056,0.18-0.4727,0.93-0.5875,1.76-0.2698,0.86,0.33,0.52,0.8127-0.44,0.6214-0.85-0.17-1.32,0.2222-0.57,0.4729,0.19,0.0622,0.29,0.352,0.23,0.644-0.1,0.4777-0.15,0.4689-0.49-0.0876zm2.13-1.1066c0.11-0.1011,0.37-0.1119,0.59-0.024,0.24,0.0971,0.17,0.1692-0.19,0.1838-0.32,0.0132-0.5-0.0587-0.4-0.1598zm3.01-1.033c0-0.4182,0.07-0.5893,0.15-0.3802,0.09,0.2091,0.09,0.5513,0,0.7605-0.08,0.2091-0.15,0.038-0.15-0.3803z" transform="translate(10, 1126.3380980000002) "/>
- <rect id="d0e135" display="none" height="1000px" width="288" y="1269.8" x="10"/>
+ <text id="tracing-f05-ja.svgtext2879" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1156.6884665) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="128.14566" x="81.327339" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f05-ja.svgtspan2880" y="128.14566" x="81.327339" role="line">オリジナル画像</tspan></text>
+ <text id="tracing-f05-ja.svgtext2882" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1156.6884665) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="124.44067" x="227.33034" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f05-ja.svgtspan2883" y="124.44067" x="227.33034" role="line">トレースイメージ / 出力パス</tspan><tspan id="tracing-f05-ja.svgtspan2893" y="130.44067" x="227.33034" role="line">(1,551 ノード)</tspan></text>
+ <image id="tracing-f05-ja.svgimage1651" sodipodi:absref="/oldguitar.jpg" xlink:href="oldguitar.jpg" transform="translate(10, 1156.6884665) " height="115.89" width="83.347" y="0.000066406" x="39.654"/>
+ <path id="tracing-f05-ja.svgpath1653" d="M185.42,89.583v-26.312l0.69-0.042,0.68-0.041-0.69-0.133-0.69-0.133,0.02-14.959,0.03-14.959,0.95-0.068c0.52-0.037,1.06-0.242,1.19-0.456,0.18-0.284,0.25-0.245,0.25,0.144,0.01,0.921,1.05,0.497,1.31-0.532,0.11-0.467,0.16-0.413,0.18,0.228,0.03,0.702,0.17,0.836,0.88,0.832,0.63-0.004,0.72-0.073,0.38-0.288-0.24-0.156-0.36-0.366-0.26-0.466,0.1-0.101,0.38,0.011,0.62,0.249,0.45,0.456,4.62,0.633,4.34,0.185-0.08-0.128,0.03-0.311,0.24-0.407,0.21-0.097,0.07-0.099-0.31-0.006-0.37,0.093-0.68,0.047-0.68-0.104,0-0.514,0.31-0.583,1.69-0.373,0.75,0.114,1.45,0.093,1.53-0.049,0.22-0.357,0.73-0.324,0.73,0.047,0,0.167-0.2,0.304-0.45,0.304s-0.46,0.127-0.46,0.283c0,0.155-0.31,0.341-0.68,0.411-0.38,0.071-0.17,0.127,0.47,0.124,0.63-0.003,1.22-0.12,1.31-0.26,0.08-0.14,0.43-0.254,0.76-0.254,0.34,0,0.53-0.129,0.43-0.286-0.09-0.157,0.07-0.294,0.37-0.304,1.91-0.063,3.68-0.251,4.34-0.46,0.42-0.133,0.66-0.135,0.53-0.004-0.12,0.131,0.07,0.446,0.44,0.7,0.77,0.54,6.33,0.862,6.33,0.368,0-0.165-0.21-0.22-0.46-0.124s-0.45,0.046-0.45-0.111-0.21-0.286-0.46-0.286-0.46,0.091-0.46,0.203c0,0.111-0.21,0.202-0.47,0.202s-0.42-0.206-0.36-0.481c0.06-0.31,0.37-0.454,0.85-0.405,0.58,0.06,0.64,0.012,0.29-0.223-0.67-0.438-1.26-0.377-1.66,0.171-0.27,0.374-0.62,0.432-1.55,0.258-1.15-0.217-1.17-0.238-0.46-0.552,0.55-0.246,0.76-0.234,0.86,0.047,0.17,0.509,0.68,0.475,0.68-0.044,0-0.863,1.73-0.81,4.02,0.122,1.22,0.497,2.3,0.903,2.4,0.904,0.36,0.002,0.51-3.488,0.16-3.709-0.18-0.116-0.23-0.307-0.12-0.424,0.43-0.428,1.2,0.59,1.04,1.379-0.14,0.706,0.36,1.842,0.81,1.842,0.1,0,0.34-0.513,0.52-1.141,0.53-1.745,1.51-2.804,2.32-2.495,0.53,0.2,0.64,0.438,0.53,1.138-0.2,1.236,0.5,1.702,2.63,1.757l1.78,0.045-0.17-0.945c-0.1-0.519-0.57-1.45-1.05-2.067-0.48-0.618-0.88-1.388-0.88-1.712,0-0.842-0.62-1.243-2.25-1.468-0.9-0.123-1.77-0.489-2.33-0.98-1.23-1.081-1.12-1.38,0.24-0.65,1.28,0.686,2.82,0.809,2.82,0.226,0-0.211-0.31-0.731-0.68-1.156-0.9-1.012-1.45-1.989-1.45-2.575,0-0.506,0.39-0.288,1.43,0.807,0.26,0.272,0.69,0.436,0.96,0.365,0.31-0.079,0.62,0.141,0.8,0.57,0.31,0.694,3.24,2.095,4.56,2.181,0.34,0.021,0.92,0.347,1.29,0.724l0.67,0.684h-0.69c-0.37,0-0.81,0.114-0.97,0.253s-0.9,0.425-1.64,0.636c-1.57,0.448-1.17,0.985,0.54,0.709,0.9-0.147,1.03-0.097,0.87,0.331-0.14,0.354-0.03,0.504,0.35,0.504,0.56,0,1.86,1.176,1.88,1.693,0,0.157,0.34,0.524,0.74,0.817l0.73,0.533,0.22-1.422c0.23-1.58-0.03-6.439-0.43-7.856l-0.26-0.913-0.21,1.141c-0.12,0.627-0.35,1.141-0.5,1.141-0.16,0-1.08-0.42-2.04-0.932-1.75-0.928-3.12-2.223-3.13-2.947,0-0.556-0.93-0.464-1.37,0.135-0.35,0.476-0.42,0.478-0.87,0.02-0.36-0.357-0.4-0.558-0.15-0.714,0.25-0.152,0.18-0.348-0.22-0.645-0.54-0.397-0.52-0.416,0.27-0.276,0.74,0.133,0.87,0.041,1.02-0.743,0.24-1.181,0.57-1.143,0.56,0.065,0,0.549,0.18,1.021,0.42,1.104,0.24,0.079,0.35,0.013,0.25-0.148-0.1-0.162,0.01-0.293,0.26-0.293,0.24,0,0.44,0.114,0.44,0.253s0.32,0.254,0.7,0.254,0.85,0.153,1.04,0.342c0.41,0.411,3.13,0.08,3.13-0.381,0-0.694-0.64-1.452-1.08-1.282-0.26,0.098-0.76-0.078-1.11-0.392-0.55-0.48-0.62-0.49-0.47-0.068,0.14,0.381-0.04,0.534-0.74,0.636-1.58,0.233-2.38-0.058-2.38-0.868,0-0.425,0.19-0.741,0.45-0.763,0.59-0.049,0.75-0.095,1.75-0.511,0.46-0.191,1.08-0.26,1.37-0.154,0.4,0.145,0.35-0.007-0.21-0.626-0.41-0.45-0.93-0.75-1.14-0.667-0.22,0.083-0.4-0.049-0.4-0.295,0-0.771-0.5-0.601-1.91,0.642-0.21,0.181-0.54,0.275-0.73,0.21-0.2-0.066-0.66,0.175-1.02,0.536-0.39,0.392-0.89,0.594-1.23,0.503-0.32-0.083-0.58-0.062-0.58,0.048s-0.58,0.2-1.3,0.2c-0.71,0-1.36,0.081-1.44,0.18s-0.63,0.271-1.22,0.383l-1.06,0.202,0.91-0.609c0.5-0.335,0.74-0.609,0.52-0.611-0.32-0.001-0.32-0.082,0-0.439,0.34-0.381,0.44-0.377,0.75,0.03,0.73,0.946,4.33-0.287,6.35-2.173,0.5-0.46,1.99-1.36,3.33-2.0001,1.34-0.6404,3.53-1.7571,4.87-2.4814,2.63-1.4232,2.78-1.4433,7.36-1.0003,2.46,0.2383,2.49,0.2327,2.67-0.4871,0.1-0.4005,0.14-1.7548,0.1-3.0096l-0.09-2.2814,8.67-0.0812c7.53-0.0706,8.71-0.0196,9.01,0.3891,0.3,0.4121,0.37,0.4143,0.52,0.0178,0.14-0.3777,0.87-0.4354,4.37-0.3481,2.31,0.0575,4.3,0.1203,4.43,0.1395,0.17,0.0259,0.12,95.017-0.06,113.12l-0.02,2.5h-41.52-41.53v-26.307zm6.99,25.117c0.42-0.78,0.4-0.93-0.11-0.93-0.4,0-0.79,0.61-0.79,1.24,0,0.49,0.58,0.29,0.9-0.31zm2.36-1.64c0.14-1.09-0.08-1.03-0.49,0.12-0.24,0.69-0.23,0.9,0.03,0.82,0.19-0.07,0.4-0.49,0.46-0.94zm1.18-0.12c-0.1-0.11-0.17,0.07-0.16,0.39,0.02,0.36,0.09,0.43,0.18,0.19,0.09-0.22,0.08-0.48-0.02-0.58zm-2.31-0.52c0-0.4,0.08-0.98,0.18-1.29,0.13-0.4,0-0.34-0.45,0.2-0.74,0.9-0.84,1.83-0.19,1.83,0.28,0,0.46-0.29,0.46-0.74zm-1.8,0.2c0.11-1.07,1.02-3.42,1.34-3.43,0.17,0,0.56-0.55,0.86-1.21,0.31-0.67,0.7-1.21,0.88-1.21,0.17,0,0.78-0.41,1.35-0.91,0.57-0.51,0.94-0.92,0.82-0.92s0.24-0.34,0.8-0.76c0.57-0.41,1.14-0.92,1.27-1.13,0.17-0.28,0.32-0.29,0.57-0.05,0.55,0.56,2.21,0.04,2.71-0.86,0.47-0.82,0.47-0.78-0.59-3.028-0.39-0.83-0.21-2.381,0.28-2.381,0.55,0-0.87-2.327-1.62-2.672-0.69-0.314-0.84-0.271-1.26,0.37-0.26,0.399-0.86,2.141-1.33,3.871-0.87,3.19-1.69,5.25-2.38,5.98-0.21,0.22-0.38,0.56-0.38,0.75,0,0.42-1.76,1.98-2.51,2.22-0.63,0.2-1.28,1.36-1.59,2.83-0.17,0.79-0.14,0.97,0.16,0.79,0.39-0.25,0.34,0.23-0.17,1.45-0.15,0.38-0.07,0.53,0.27,0.53,0.27,0,0.5-0.1,0.52-0.23zm55.06-3.05c-0.18-0.06-0.33-0.44-0.33-0.85,0-0.45-0.18-0.73-0.46-0.73-0.25,0-0.46,0.2-0.46,0.45s0.14,0.46,0.31,0.46c0.16,0,0.3,0.13,0.3,0.28,0,0.16,0.16,0.67,0.36,1.14l0.36,0.86,0.13-0.75c0.07-0.41-0.03-0.8-0.21-0.86zm-1.73-0.17c-0.1-0.27-0.31-0.42-0.46-0.33s-0.1,0.35,0.11,0.57c0.47,0.51,0.6,0.42,0.35-0.24zm-1.33-1.99c-0.2-0.38-0.51-0.55-0.79-0.44-0.4,0.15-0.36,0.3,0.22,0.92,0.76,0.8,1.1,0.51,0.57-0.48zm2.28-1.54c-0.07-0.87-0.77-1.24-0.77-0.41,0,0.31-0.21,0.87-0.47,1.24-0.7,0.99-0.23,1.46,0.61,0.62,0.39-0.41,0.66-1.02,0.63-1.45zm-2.6-1.19c0-0.15-0.2-0.44-0.45-0.65-0.5-0.41-0.56-0.31-0.27,0.43,0.19,0.51,0.72,0.67,0.72,0.22zm2.44-0.36c0-0.18-0.14-0.24-0.31-0.14-0.16,0.11-0.3,0.25-0.3,0.33,0,0.07,0.14,0.13,0.3,0.13,0.17,0,0.31-0.15,0.31-0.32zm-7.49-2.42c-0.17-0.17-0.76-0.44-1.32-0.6-0.98-0.28-0.99-0.28-0.46,0.31,0.3,0.33,0.89,0.6,1.31,0.6,0.53,0,0.68-0.1,0.47-0.31zm6.02-0.21c-0.22-0.08-0.48-0.07-0.58,0.03s0.08,0.17,0.4,0.16c0.35-0.02,0.43-0.09,0.18-0.19zm-8.57-0.59c0-0.35-1.05-1-1.62-1.01-0.3-0.01-0.47-0.136-0.38-0.285,0.1-0.15-0.03-0.351-0.28-0.447-0.61-0.231-0.59-0.802,0.02-0.802,0.79,0,0.3-0.752-0.56-0.854-0.43-0.052-0.97-0.314-1.19-0.583-0.36-0.435-0.33-0.449,0.26-0.134,0.37,0.195,1.03,0.354,1.48,0.354,0.71,0,0.8,0.102,0.67,0.768-0.17,0.883,0.22,1.288,0.6,0.618,0.27-0.485,1.61-0.328,1.61,0.189,0,0.157,0.13,0.202,0.3,0.098,0.17-0.103,0.31-0.043,0.31,0.134,0,0.178,0.4,0.323,0.88,0.323,0.49,0,0.94,0.129,0.99,0.287,0.06,0.157,0.79,0.464,1.62,0.674,0.84,0.22,1.6,0.5,1.69,0.63,0.27,0.37,1.83-0.48,1.67-0.91-0.11-0.287,0.17-0.333,1.14-0.186,0.71,0.106,1.45,0.336,1.66,0.496,0.28,0.21,0.38,0.16,0.38-0.2,0-0.953-2.33-1.287-3.49-0.503-0.38,0.253-1.8,0.209-3.2-0.108-2.36-0.535-8.33-4.086-15.66-9.314-3.19-2.274-5.35-3.293-8.78-4.134-1.7-0.417-3.5-0.913-4-1.101-1.7-0.638-5.11-2.815-5.25-3.35-0.09-0.344-0.79-0.722-1.98-1.072-1.61-0.474-1.78-0.596-1.4-0.989,0.48-0.485,1.79-2.549,1.79-2.81,0-0.315-2.62,0.421-4.18,1.176-0.88,0.423-1.73,0.683-1.91,0.578-1.02-0.631-2.66,1.757-3.38,4.912-0.32,1.391-0.29,1.68,0.22,2.563,0.58,0.984,2.19,2.146,2.63,1.895,0.13-0.071,0.23,0.063,0.23,0.298,0,0.236,0.26,0.729,0.58,1.098l0.58,0.67,0.2-0.924c0.26-1.151,0.64-1.407,1.23-0.82,0.49,0.491,0.59,0.823,0.22,0.765-0.73-0.116-1.29,0.096-1.29,0.493,0,0.251,0.14,0.456,0.3,0.456,0.17,0,0.31-0.137,0.31-0.304,0-0.168,0.14-0.304,0.3-0.304,0.17,0,0.31,0.202,0.31,0.45,0,0.519,1.4,0.926,2.73,0.793,0.41-0.041,0.41-0.088,0-0.424-0.25-0.207-0.6-0.648-0.78-0.978-0.19-0.331-0.7-0.78-1.15-0.999-0.44-0.218-0.8-0.537-0.8-0.708,0-0.191-0.37-0.231-0.95-0.103-0.66,0.145-0.89,0.106-0.75-0.128,0.12-0.185,0.44-0.341,0.73-0.347,0.46-0.008,0.45-0.053-0.05-0.436-0.69-0.519-0.39-1.195,0.35-0.813,0.28,0.146,0.69,0.203,0.89,0.128,0.21-0.075,0.38,0.08,0.38,0.345s0.25,0.482,0.55,0.482c1.01,0,1.85,0.869,1.95,2.034,0.05,0.612,0.26,1.169,0.47,1.239,0.3,0.097,0.31-0.066,0.07-0.714-0.25-0.647-0.22-0.938,0.11-1.267,0.36-0.368,0.51-0.312,1.07,0.398,0.36,0.454,0.65,1.021,0.65,1.26s0.24,0.41,0.53,0.38c0.97-0.098,1.22,0.01,1.38,0.589,0.11,0.434,0.34,0.536,0.94,0.421,0.88-0.167,0.97-0.421,0.48-1.325-0.39-0.727-0.13-1.227,0.51-0.982,0.35,0.133,0.37,0.241,0.1,0.409-0.2,0.126-0.26,0.396-0.13,0.607,0.17,0.277,0.38,0.183,0.79-0.346,0.31-0.399,0.56-0.573,0.57-0.387,0.02,1.031,4.72,4.386,5.49,3.914,0.16-0.102,0.53,0.045,0.81,0.325,0.48,0.478,0.52,0.469,0.75-0.137l0.24-0.648,0.77,0.668c0.42,0.367,0.76,0.834,0.76,1.037,0,0.51-0.94,0.826-1.32,0.444-0.52-0.518-0.85-0.357-0.75,0.362,0.08,0.528,0.31,0.687,1.09,0.725,0.54,0.027,1.16,0.185,1.37,0.353,0.2,0.168,0.85,0.401,1.44,0.518,0.59,0.118,1.82,0.465,2.74,0.772s2.35,0.766,3.19,1.02c0.84,0.255,2.34,0.837,3.35,1.295,1,0.453,1.91,0.813,2.02,0.783,0.11-0.02,0.37,0.16,0.57,0.41,0.37,0.44,1.21,0.62,1.21,0.25zm-5.78-3.456c0-0.168,0.14-0.305,0.3-0.305,0.17,0,0.31,0.137,0.31,0.305,0,0.167-0.14,0.304-0.31,0.304-0.16,0-0.3-0.137-0.3-0.304zm-1.22-0.609c0-0.167-0.38-0.304-0.86-0.304-0.47,0-0.96-0.103-1.09-0.228-0.23-0.228-0.38-0.271-1.24-0.342-0.54-0.045-0.65-1.863-0.12-1.863,0.21,0,0.26,0.289,0.15,0.741-0.17,0.686-0.08,0.757,1.2,0.949,1.26,0.189,3.23,1.318,2.34,1.341-0.21,0.006-0.38-0.127-0.38-0.294zm-4.94-1.242c-0.3-0.171-0.67-0.227-0.84-0.124-0.41,0.254-0.72-0.634-0.45-1.295,0.19-0.473,0.24-0.456,0.47,0.152,0.15,0.376,0.46,0.684,0.7,0.684s0.51,0.205,0.61,0.456c0.2,0.533,0.2,0.533-0.49,0.127zm-2.36-1.325c0-0.535,0.19-0.613,0.45-0.192,0.09,0.156,0.03,0.37-0.14,0.475s-0.31-0.023-0.31-0.283zm2.36-0.068c0.21-0.084,0.55-0.084,0.76,0,0.21,0.085,0.04,0.154-0.38,0.154s-0.59-0.069-0.38-0.154zm-21.83-4.495c0-0.074,0.14-0.219,0.31-0.322,0.17-0.104,0.3-0.043,0.3,0.134s-0.13,0.322-0.3,0.322-0.31-0.06-0.31-0.134zm2.54-3.073c-0.27-0.701-0.02-0.739,0.64-0.1,0.52,0.511,0.53,0.569,0.06,0.569-0.28,0-0.6-0.211-0.7-0.469zm1.47,11.779c0.73-0.304,2.12-0.727,3.09-0.939,0.98-0.213,1.7-0.459,1.61-0.547-0.09-0.089-1.53-0.339-3.2-0.557-1.67-0.217-3.36-0.492-3.74-0.61-0.39-0.118-0.6-0.107-0.47,0.026,0.12,0.133,0,0.495-0.28,0.806-0.39,0.432-0.43,0.647-0.16,0.922,0.2,0.196,0.36,0.604,0.36,0.905,0,0.72,1.07,0.718,2.79-0.006zm12.42-3.575c0-0.372-0.88-1.022-1.64-1.213-1.1-0.277-0.98,0.217,0.2,0.833,1.06,0.553,1.44,0.652,1.44,0.38zm-4.26-1.043c0-0.167-0.13-0.304-0.3-0.304s-0.31,0.137-0.31,0.304c0,0.168,0.14,0.305,0.31,0.305s0.3-0.137,0.3-0.305zm1.45-0.38c-0.15-0.431-0.64-0.383-0.79,0.076-0.05,0.167,0.13,0.304,0.41,0.304s0.45-0.171,0.38-0.38zm-7.53-2.966c0-0.167-0.21-0.304-0.46-0.304s-0.45,0.137-0.45,0.304c0,0.168,0.2,0.305,0.45,0.305s0.46-0.137,0.46-0.305zm23.57-8.213c-0.1-0.167-0.25-0.304-0.32-0.304s-0.13,0.137-0.13,0.304c0,0.168,0.14,0.304,0.32,0.304s0.24-0.136,0.13-0.304zm-3.34-0.608c-0.11-0.167-0.33-0.304-0.5-0.304-0.16,0-0.21,0.137-0.11,0.304s0.32,0.304,0.49,0.304,0.22-0.137,0.12-0.304zm13.27-0.814c-0.36-0.616-0.45-0.419-0.16,0.346,0.11,0.272,0.26,0.43,0.34,0.352,0.07-0.079-0.01-0.392-0.18-0.698zm-14.5,0.24c-0.16-0.149-0.64-0.36-1.05-0.469l-0.76-0.199,0.76,0.458c0.84,0.511,1.51,0.644,1.05,0.21zm3.51-0.661c0-0.157-0.14-0.286-0.31-0.286-0.16,0-0.3,0.213-0.3,0.474s0.14,0.39,0.3,0.287c0.17-0.104,0.31-0.317,0.31-0.475zm-5.63-0.286c-0.1-0.167-0.35-0.302-0.55-0.299-0.22,0.002-0.18,0.122,0.09,0.299,0.59,0.378,0.69,0.378,0.46,0zm17.49-0.735c0-0.237,0.17-0.511,0.38-0.608,0.3-0.142,0.31-0.214,0-0.355-0.26-0.121-0.09-0.464,0.54-1.088,0.5-0.501,0.9-1.072,0.9-1.268,0-0.264-0.06-0.266-0.23-0.01-0.16,0.246-0.35,0.208-0.67-0.134-0.39-0.426-0.38-0.458,0.08-0.28,0.32,0.121,0.52,0.055,0.53-0.17,0-0.234,0.11-0.202,0.29,0.085,0.24,0.378,0.4,0.39,0.91,0.074,0.5-0.308,0.62-0.308,0.61,0-0.02,0.587-0.78,1.466-1.06,1.214-0.14-0.123-0.17,0.003-0.07,0.279,0.12,0.329-0.01,0.553-0.37,0.648-0.38,0.098-0.55,0.401-0.52,0.914,0.06,0.939,0.32,0.801,1.23-0.645,1.4-2.226,2.58-7.879,1.75-8.392-0.24-0.149-0.34,0.437-0.34,1.986,0,1.209-0.11,2.096-0.23,1.97-0.24-0.241-0.28-0.406-0.34-1.412-0.03-0.344-0.16-0.554-0.3-0.465-0.15,0.089-0.24-0.48-0.2-1.264,0.03-0.784-0.13-2.037-0.35-2.786-0.23-0.748-0.34-1.608-0.24-1.911,0.11-0.344,0.02-0.55-0.22-0.547-0.54,0.006-1.45,0.592-0.94,0.599,0.21,0.002,0.38,0.133,0.38,0.289,0,0.157-0.56,0.278-1.25,0.268-0.69-0.009-1.34,0.123-1.44,0.293-0.26,0.407-0.95,0.49-1.79,0.216-0.81-0.26-0.92-1.053-0.16-1.081,0.41-0.015,0.38-0.084-0.15-0.294-0.37-0.152-0.68-0.425-0.68-0.607,0-0.183,0.13-0.248,0.3-0.144,0.45,0.277,0.37-0.623-0.17-1.911-0.26-0.622-0.43-1.157-0.38-1.189,0.25-0.157-2.46-3.324-3.88-4.539-1.1-0.939-1.56-1.53-1.43-1.855,0.13-0.355,0.91,0.291,3.01,2.51,2.37,2.506,2.94,3.304,3.51,4.946,0.39,1.076,0.87,2.024,1.08,2.106,0.21,0.081,0.31,0.27,0.22,0.42s-0.02,0.272,0.15,0.272c0.48,0,0.39-0.648-0.24-1.683-0.31-0.508-0.66-1.545-0.77-2.305-0.17-1.162-0.51-1.691-2.13-3.335-1.06-1.075-2.39-2.327-2.96-2.782-0.56-0.455-0.87-0.831-0.67-0.836s0.55,0.178,0.78,0.407c0.23,0.23,0.86,0.649,1.41,0.932,0.55,0.284,1.66,1.224,2.47,2.089,0.82,0.865,1.57,1.481,1.69,1.368,0.23-0.232-1.65-2.981-2.04-2.981-0.14,0-0.26-0.197-0.26-0.438s-0.82-0.877-1.83-1.414c-1-0.537-1.78-1.023-1.72-1.082,0.06-0.058,0.74,0.112,1.53,0.379,1.48,0.504,2.06,1.028,4.14,3.696,0.68,0.879,1.38,1.597,1.54,1.597,0.59,0,0.28-0.816-0.64-1.692-0.52-0.491-1.28-1.467-1.69-2.167-0.65-1.1-1.02-1.363-2.7-1.921-2.94-0.978-4.42-2.433-2.49-2.433,0.75,0,1.06-0.565,2.38-4.359,0.45-1.309,0.9-2.462,1-2.56s0.18-0.35,0.18-0.559,0.3-1.042,0.66-1.85c0.67-1.504,1.46-3.494,1.46-3.733,0.01-0.074-0.27,0.166-0.61,0.532-0.83,0.887-1.34,0.852-0.75-0.052,0.26-0.394,0.38-0.942,0.28-1.216-0.15-0.398,0.01-0.507,0.83-0.538,0.93-0.034,0.89-0.06-0.35-0.281-1.94-0.346-3.91-0.35-3.37-0.007,0.23,0.15,0.87,0.201,1.4,0.114,0.86-0.14,0.99-0.066,1.13,0.636,0.1,0.541,0.02,0.793-0.27,0.793-0.22,0-0.41,0.258-0.41,0.573,0,0.464-0.19,0.555-0.99,0.476-0.54-0.054-1.09-0.106-1.22-0.117-0.12-0.011-0.2-0.122-0.16-0.247,0.03-0.126-0.03-0.686-0.15-1.244-0.21-1.005-0.23-1.014-1.51-0.801-1.76,0.293-2.79,0.866-3.77,2.099-1.6,2.007-1.9,3.263-1.92,8.159-0.01,3.167-0.12,4.486-0.36,4.486-0.2,0-1.82,0.671-3.6,1.49-3.37,1.546-5.41,2.183-8.92,2.79-1.83,0.317-2.12,0.459-2.54,1.289-0.59,1.123-0.44,4.113,0.28,5.71,0.26,0.572,0.65,1.657,0.88,2.41,0.34,1.167,0.53,1.383,1.29,1.469,0.52,0.061,1.2-0.136,1.68-0.492,0.44-0.326,1.39-0.895,2.12-1.265,0.72-0.37,1.92-1.29,2.65-2.045s1.33-1.193,1.33-0.974c0,0.253,0.24,0.162,0.65-0.246,0.36-0.356,0.65-1.002,0.65-1.437,0-0.493,0.16-0.79,0.45-0.79,0.24,0,1.07-0.616,1.83-1.369,0.92-0.904,1.66-1.37,2.18-1.373,0.62-0.004,0.69-0.067,0.33-0.304-0.32-0.211-0.14-0.242,0.61-0.107,0.58,0.105,1.2,0.331,1.36,0.501,0.21,0.207,0.13,0.247-0.22,0.121-0.81-0.284-0.65,0.023,0.6,1.176,0.63,0.577,1.42,1.054,1.75,1.062,0.8,0.018,3.86,2.394,4.32,3.35,0.19,0.41,0.45,1.156,0.57,1.658l0.22,0.913-0.65-0.582c-0.36-0.319-0.74-0.496-0.85-0.392-0.36,0.366-0.18,1.762,0.31,2.3,0.27,0.301,0.49,0.686,0.49,0.856,0,0.481,1.09,1.344,1.37,1.088,0.14-0.126,0.15-0.051,0.03,0.165-0.13,0.217-0.08,0.573,0.1,0.793,0.31,0.375,0.69,2.798,0.69,4.395,0,0.521,0.1,0.624,0.34,0.381,0.5-0.504,0.82-0.405,0.82,0.255,0,0.325,0.14,0.675,0.3,0.779,0.4,0.245,0.4,1.278,0,1.526-0.17,0.106-0.46-0.228-0.64-0.743-0.18-0.514-0.46-0.935-0.62-0.935-0.4,0-0.01,1.226,0.61,1.928,0.27,0.308,0.5,0.719,0.5,0.913,0,0.541,0.88,2.33,1.14,2.33,0.13,0,0.23-0.194,0.23-0.431zm-0.4-2.199c-0.39-0.397-0.2-0.716,0.43-0.716,0.35,0,0.58,0.159,0.51,0.361-0.15,0.444-0.66,0.637-0.94,0.355zm0.1-2.407c0-0.261,0.13-0.39,0.3-0.286,0.17,0.103,0.31,0.316,0.31,0.474,0,0.157-0.14,0.286-0.31,0.286s-0.3-0.213-0.3-0.474zm3.52,0.211c-0.13-0.212-0.16-0.468-0.05-0.568,0.27-0.273,0.56,0.128,0.42,0.569-0.11,0.309-0.18,0.309-0.37-0.001zm-4.74-6.134c0-0.163,0.21-0.295,0.46-0.295s0.45,0.054,0.45,0.12c0,0.065-0.2,0.198-0.45,0.294s-0.46,0.043-0.46-0.119zm3.07-1.639c-0.02-0.32,0.06-0.5,0.16-0.399s0.11,0.364,0.02,0.583c-0.1,0.243-0.17,0.171-0.18-0.184zm-11.43-8.998c-0.11-0.168-0.05-0.305,0.13-0.305s0.32,0.137,0.32,0.305c0,0.167-0.06,0.304-0.13,0.304-0.08,0-0.22-0.137-0.32-0.304zm-1.24-3.489c-0.32-0.245-0.44-0.451-0.25-0.456s0.52,0.195,0.73,0.447c0.48,0.579,0.28,0.583-0.48,0.009zm3.52-6.397c0-0.251,0.11-0.457,0.25-0.457s0.25,0.206,0.25,0.457-0.11,0.456-0.25,0.456-0.25-0.205-0.25-0.456zm-1.31-0.043c-0.11-0.107-0.12-0.314-0.03-0.461,0.19-0.315,0.73-0.043,0.73,0.37,0,0.326-0.41,0.38-0.7,0.091zm3.13-4.502c0-0.074,0.14-0.219,0.31-0.322,0.16-0.104,0.3-0.043,0.3,0.134s-0.14,0.322-0.3,0.322c-0.17,0-0.31-0.061-0.31-0.134zm0-2.129c0-0.261,0.14-0.475,0.31-0.475,0.16,0,0.3,0.129,0.3,0.287,0,0.157-0.14,0.37-0.3,0.474-0.17,0.103-0.31-0.026-0.31-0.286zm0.61-0.779c0-0.167,0.14-0.304,0.3-0.304,0.17,0,0.31,0.137,0.31,0.304s-0.14,0.304-0.31,0.304c-0.16,0-0.3-0.137-0.3-0.304zm-0.56-0.608c0-0.419,0.07-0.59,0.15-0.381,0.09,0.21,0.09,0.552,0,0.761-0.08,0.209-0.15,0.038-0.15-0.38zm-4.81-2.244c-0.27-0.311-0.12-0.478,0.71-0.777,0.58-0.21,1.13-0.304,1.23-0.21,0.09,0.095-0.2,0.312-0.65,0.484s-0.74,0.449-0.63,0.617c0.27,0.442-0.25,0.352-0.66-0.114zm2.33-0.722c0-0.377,0.14-0.685,0.3-0.685,0.38,0,0.38,0.323,0,0.913-0.24,0.369-0.29,0.325-0.3-0.228zm-10.54,41.427c-0.13-0.314,0.02-0.53,0.44-0.638,0.82-0.215,0.96-0.692,0.47-1.625l-0.4-0.761-0.05,0.913c-0.04,0.686-0.1,0.573-0.24-0.456-0.11-0.753-0.07-1.544,0.09-1.757,0.15-0.213,0.19-0.478,0.08-0.588-0.44-0.432-0.86,0.534-1.02,2.309-0.09,1.024-0.26,1.861-0.37,1.861-0.4,0-1.29-1.302-1-1.484,0.41-0.265,0.64-2.484,0.33-3.307-0.33-0.917-0.87-0.871-0.87,0.076,0,0.583-0.16,0.763-0.69,0.77-0.64,0.009-0.65,0.034-0.13,0.427,0.64,0.483,0.19,0.942-0.64,0.654-0.47-0.163-0.47-0.142,0.01,0.235,0.3,0.228,0.54,0.508,0.54,0.622,0,0.266,0.51,0.906,1.75,2.194,1.04,1.076,2.02,1.397,1.7,0.555zm-0.34-2.263c0-0.586,0.06-0.825,0.14-0.533,0.07,0.293,0.07,0.772,0,1.065-0.08,0.293-0.14,0.053-0.14-0.532zm-2.3-0.507c-0.11-0.112-0.21-0.344-0.21-0.517,0-0.191,0.15-0.173,0.36,0.045,0.2,0.198,0.29,0.431,0.21,0.517-0.09,0.087-0.25,0.066-0.36-0.045zm14.09,0.507c0-0.167-0.14-0.304-0.3-0.304-0.17,0-0.31,0.137-0.31,0.304s0.14,0.304,0.31,0.304c0.16,0,0.3-0.137,0.3-0.304zm-16.12-2.7c0-0.146-0.2-0.83-0.44-1.521-0.25-0.69-0.33-1.255-0.18-1.255s0.4,0.377,0.56,0.837c0.27,0.773,0.31,0.79,0.53,0.228,0.12-0.334,0.45-0.871,0.72-1.193,0.39-0.478,0.4-0.535,0.03-0.313-0.99,0.589-1.3,0.436-1.1-0.547,0.24-1.204,0.31-1.258,1.05-0.861,0.34,0.18,0.9,0.328,1.24,0.328,0.53,0,0.64,0.201,0.67,1.293l0.03,1.293,0.28-1.521c0.15-0.836,0.29-1.929,0.31-2.427,0.03-0.499,0.24-1.098,0.47-1.332,0.24-0.234,0.35-0.637,0.25-0.895-0.1-0.257-0.03-0.562,0.15-0.677,0.24-0.144,0.2-0.348-0.12-0.667-0.34-0.343-0.37-0.547-0.11-0.805s0.22-0.345-0.15-0.345c-0.27,0-0.54,0.105-0.59,0.233-0.06,0.129-1.06,0.735-2.23,1.348-1.28,0.669-2.17,1.334-2.22,1.667-0.05,0.305-0.24,0.854-0.42,1.22-0.52,1.031,0.3,6.178,0.98,6.178,0.16,0,0.29-0.119,0.29-0.266zm-0.86-4.525c0.04-0.292-0.02-0.702-0.15-0.909-0.16-0.258-0.09-0.319,0.23-0.195,0.53,0.202,0.66,1.637,0.15,1.637-0.18,0-0.28-0.24-0.23-0.533zm17.1,4.042c0.27-0.413,0.49-1.207,0.49-1.765s0.16-1.176,0.36-1.374,0.28-0.437,0.19-0.532c-0.1-0.094-0.4,0.057-0.68,0.336-0.47,0.465-0.54,0.467-0.87,0.021-0.27-0.349-0.5-0.403-0.83-0.19-0.4,0.266-0.4,0.332,0,0.598,0.28,0.181,0.32,0.302,0.1,0.305-0.57,0.007-0.76-0.536-0.42-1.179,0.21-0.397,0.52-0.534,0.95-0.422,0.46,0.121,0.67-0.006,0.8-0.484,0.11-0.427,0.41-0.648,0.87-0.648,1.67,0,1.01-1.022-0.85-1.307-0.93-0.144-1.22-0.059-1.59,0.475-0.35,0.507-0.37,0.708-0.08,0.916,0.3,0.211,0.3,0.298,0,0.42-0.21,0.085-0.38,0.417-0.38,0.738,0,0.32-0.14,0.583-0.31,0.583-0.6,0-0.29,0.583,0.58,1.097s1.45,2.088,0.89,2.432c-0.14,0.086-0.25,0.286-0.25,0.443,0,0.532,0.53,0.291,1.03-0.463zm-1.13-5.233c-0.31-0.309-0.24-0.71,0.12-0.71,0.17,0,0.24,0.125,0.15,0.278-0.1,0.153,0,0.348,0.21,0.433s0.23,0.164,0.05,0.178c-0.18,0.013-0.42-0.068-0.53-0.179zm-3.98,4.848c-0.1-0.101-0.17,0.079-0.16,0.399,0.02,0.354,0.09,0.427,0.19,0.184,0.09-0.22,0.07-0.482-0.03-0.583zm8.03,0.526c0-0.167-0.13-0.304-0.3-0.304s-0.31,0.137-0.31,0.304,0.14,0.304,0.31,0.304,0.3-0.137,0.3-0.304zm-13.99-0.989c-0.01-0.534-0.07-0.587-0.29-0.242-0.15,0.243-0.21,0.551-0.13,0.684,0.27,0.427,0.42,0.262,0.42-0.442zm12.64-0.148c0.27-0.375,0.3-0.694,0.08-1.103-0.19-0.358-0.2-0.647-0.02-0.765,0.41-0.268,0.72-2.109,0.39-2.312-0.15-0.092-0.36-0.027-0.47,0.146-0.1,0.172-0.32,0.235-0.47,0.139-0.16-0.096-0.29-0.03-0.29,0.147s0.14,0.322,0.31,0.322,0.3,0.342,0.3,0.761c0,0.418-0.13,0.76-0.3,0.76s-0.31,0.548-0.31,1.217c0,1.331,0.19,1.495,0.78,0.688zm1.66-0.725c0-0.795-0.5-0.717-0.72,0.113-0.29,1.065-0.23,1.246,0.26,0.836,0.25-0.208,0.46-0.635,0.46-0.949zm-5.32-3.935c0.13-0.621,0.1-0.903-0.09-0.783-0.46,0.284-0.74-1.253-0.36-1.97,0.19-0.345,0.26-0.71,0.16-0.81s-0.35,0.254-0.55,0.787c-0.38,1-0.95,1.382-0.65,0.436,0.09-0.308-0.17-0.147-0.63,0.38l-0.79,0.913,0.17-1.673c0.35-3.286,0.37-3.174-0.46-3.184-0.58-0.008-0.77-0.178-0.8-0.715-0.04-0.855-0.72-1.68-0.72-0.877,0,0.284,0.1,0.518,0.23,0.519,0.12,0,0.26,0.646,0.31,1.433,0.04,0.788,0.3,1.759,0.56,2.157,0.27,0.422,0.4,1.022,0.29,1.437-0.1,0.392-0.03,0.806,0.16,0.919,0.19,0.122,0.26,0.653,0.15,1.311-0.15,0.96-0.13,1.007,0.14,0.357,0.44-1.034,0.5-1.063,1.06-0.504,0.27,0.271,0.35,0.493,0.17,0.493-0.17,0-0.23,0.228-0.12,0.506,0.13,0.34,0.08,0.434-0.16,0.286-0.2-0.121-0.36-0.075-0.36,0.102,0,0.574,0.53,0.342,1.06-0.464,0.28-0.433,0.59-0.711,0.68-0.618s-0.05,0.5-0.31,0.904c-0.27,0.404-0.4,0.817-0.3,0.917,0.24,0.239,0.89-1.029,1.16-2.259zm-7.89,1.202c-0.8-0.631-1.39-0.747-1.39-0.272,0,0.167,0.21,0.304,0.46,0.304,0.26,0,0.54,0.197,0.64,0.437,0.09,0.241,0.36,0.363,0.59,0.272,0.33-0.126,0.26-0.303-0.3-0.741zm2.71-0.272c-0.1-0.167-0.35-0.302-0.55-0.3-0.22,0.003-0.18,0.123,0.1,0.3,0.58,0.378,0.69,0.378,0.45,0zm18.23-1.574c-0.28-0.869-0.41-2.125-0.41-3.825,0-0.711-0.14-1.293-0.31-1.293-0.18,0-0.32-0.206-0.32-0.456,0-0.251,0.14-0.457,0.32-0.457s0.23-0.158,0.11-0.351c-0.14-0.218-0.09-0.268,0.13-0.134,0.19,0.119,0.35,0.059,0.35-0.134,0-0.192-0.26-0.417-0.57-0.5-0.31-0.082-0.74-0.512-0.94-0.957-0.33-0.735-0.4-0.761-0.75-0.289-0.25,0.353-0.47,0.42-0.69,0.209-0.21-0.211-0.36,0.255-0.49,1.454-0.1,0.971-0.06,1.888,0.09,2.039,0.15,0.15,0.2,0.664,0.1,1.141-0.11,0.567-0.04,0.868,0.19,0.868s0.29-0.232,0.17-0.606c-0.15-0.49-0.09-0.567,0.35-0.399,0.43,0.165,0.4,0.054-0.15-0.534-0.52-0.552-0.65-0.966-0.52-1.617,0.09-0.481,0.18-1.097,0.19-1.368,0.02-0.381,0.08-0.354,0.29,0.114,0.26,0.591,0.27,0.589,0.47-0.076,0.11-0.377,0.33-0.685,0.49-0.685s0.2,0.146,0.09,0.325c-0.11,0.178,0.05,0.518,0.36,0.754,0.49,0.374,0.5,0.47,0.11,0.733-0.34,0.22-0.49,0.176-0.56-0.164-0.06-0.255-0.26-0.408-0.46-0.338-0.41,0.147-0.33,1.426,0.13,1.878,0.21,0.212,0.24,0.13,0.09-0.264-0.15-0.413-0.1-0.534,0.21-0.433,0.65,0.217,0.85,1.555,0.3,1.971-0.42,0.316-0.4,0.439,0.22,1.094,0.4,0.431,0.61,0.936,0.51,1.216-0.1,0.264,0.05,0.837,0.33,1.274,0.61,0.925,0.9,0.828,0.57-0.19zm-21.59,0.389c0.09-0.15-0.04-0.351-0.29-0.447-0.28-0.106-0.45,0.001-0.45,0.273,0,0.492,0.47,0.604,0.74,0.174zm2.3-0.673c0-0.185-0.21-0.258-0.46-0.161-0.25,0.096-0.45,0.042-0.45-0.12s0.2-0.295,0.45-0.295,0.46-0.151,0.46-0.336c0-0.186-0.22-0.254-0.48-0.152-0.27,0.101-0.61,0.184-0.76,0.184-0.16,0-0.28,0.274-0.28,0.609,0,0.446,0.2,0.608,0.76,0.608,0.42,0,0.76-0.151,0.76-0.337zm1.99,0.054c-0.1-0.156-0.05-0.359,0.09-0.451,0.15-0.092,0.28-0.495,0.28-0.895,0-0.675-0.04-0.692-0.51-0.234-0.52,0.504-0.5,1.863,0.03,1.863,0.15,0,0.2-0.127,0.11-0.283zm-25.3-1.694c-0.19-0.497-0.72-0.628-0.72-0.178,0,0.231,0.21,0.388,0.82,0.61,0.04,0.013-0.01-0.181-0.1-0.432zm3.67,0.118c-0.09-0.149,0.11-0.27,0.46-0.27,0.84,0,0.8-0.533-0.06-0.698l-0.69-0.132,0.69-0.041c0.41-0.025,0.68-0.239,0.68-0.535,0-0.384-0.09-0.417-0.41-0.147-0.23,0.191-0.63,0.266-0.89,0.168-0.25-0.098-0.56-0.025-0.67,0.162-0.15,0.248-0.33,0.244-0.64-0.017-0.35-0.291-0.43-0.21-0.43,0.442,0,0.439-0.14,0.798-0.3,0.798-0.17,0-0.31,0.104-0.31,0.232s0.62,0.25,1.37,0.27c0.75,0.021,1.29-0.084,1.2-0.232zm4.29-0.69c0.29-1.139,0.04-2.482-0.43-2.382-0.27,0.057-0.35-0.082-0.24-0.38,0.12-0.297,0.01-0.468-0.29-0.468-0.31,0-0.43,0.229-0.37,0.684,0.06,0.376,0.27,0.684,0.48,0.684s0.35,0.137,0.3,0.304c-0.04,0.168-0.17,0.27-0.3,0.229-0.27-0.092-0.3,0.899-0.04,1.572,0.27,0.702,0.69,0.588,0.89-0.243zm13.83,0.42c-0.6-0.385-1.22-0.385-1.22,0,0,0.167,0.38,0.302,0.84,0.299,0.65-0.003,0.73-0.069,0.38-0.299zm1.66-0.283c0.09-0.156,0.05-0.361-0.11-0.455-0.15-0.094-0.35,0.033-0.45,0.283-0.19,0.493,0.27,0.634,0.56,0.172zm-16.87-0.941c0-0.736-1.08-0.455-1.13,0.296-0.03,0.407,0.11,0.514,0.54,0.402,0.32-0.084,0.59-0.399,0.59-0.698zm-9.76-0.677c0.01-0.126-0.11-0.229-0.28-0.229s-0.29,0.377-0.28,0.837c0.02,0.741,0.05,0.767,0.28,0.228,0.14-0.335,0.27-0.711,0.28-0.836zm25.44,0.152c-0.03-0.779-0.18-1.141-0.49-1.141-0.29,0-0.41,0.26-0.36,0.76,0.19,1.826,0.91,2.148,0.85,0.381zm6.52,0.058c0-0.261-0.13-0.39-0.3-0.287-0.17,0.104-0.3,0.317-0.3,0.475,0,0.157,0.13,0.286,0.3,0.286s0.3-0.213,0.3-0.474zm-5.02-0.134c-0.1-0.168,0.03-0.305,0.29-0.305s0.47-0.226,0.47-0.503c0-0.455-0.05-0.451-0.6,0.041-0.52,0.471-0.59,1.071-0.12,1.071,0.08,0,0.07-0.137-0.04-0.304zm9.39-0.143c0.25-0.663-0.28-0.841-0.76-0.252-0.28,0.352-0.29,0.44-0.03,0.283,0.21-0.126,0.38-0.083,0.38,0.094,0,0.461,0.21,0.397,0.41-0.125zm-30.99-0.846c0.03-0.417,0.38-0.844,0.89-1.092,0.46-0.225,0.77-0.471,0.7-0.548-0.29-0.282-3.26-0.362-3.26-0.088,0,0.156,0.23,0.283,0.5,0.283,0.39,0,0.42,0.091,0.14,0.427-0.27,0.327-0.27,0.469,0.04,0.608,0.32,0.148,0.32,0.216-0.01,0.365-0.3,0.138-0.26,0.28,0.15,0.583,0.65,0.472,0.79,0.383,0.85-0.538zm-13.53,0.313c0-0.15,0.12-0.197,0.27-0.105,0.15,0.093,0.35-0.036,0.45-0.286s0.44-0.454,0.76-0.454,0.67-0.214,0.77-0.476c0.1-0.261,0.31-0.396,0.47-0.299,0.15,0.097,0.37,0.029,0.48-0.151,0.25-0.394-3.34-0.07-4.21,0.381-0.31,0.158-0.75,0.213-0.99,0.123-0.61-0.236-1.18,0.921-0.61,1.242,0.61,0.339,2.61,0.359,2.61,0.025zm0.02-0.972c-0.01-0.321,0.06-0.5,0.16-0.399,0.11,0.101,0.12,0.363,0.03,0.583-0.1,0.242-0.17,0.17-0.19-0.184zm10.56,0.431c-0.45-0.719-0.57-0.636-0.34,0.238,0.09,0.367,0.29,0.594,0.44,0.505,0.14-0.09,0.1-0.424-0.1-0.743zm-6.32,0.304c0-0.167-0.15-0.304-0.32-0.304-0.18,0-0.24,0.137-0.14,0.304,0.11,0.167,0.25,0.304,0.33,0.304,0.07,0,0.13-0.137,0.13-0.304zm3.64-0.598c-0.01-0.676-0.05-0.705-0.32-0.232-0.17,0.296-0.44,0.459-0.6,0.362s-0.29,0.008-0.29,0.233,0.28,0.409,0.61,0.409c0.45,0,0.61-0.2,0.6-0.772zm9.74,0.453c0-0.198-0.47-0.282-1.21-0.211-0.67,0.063-1.16,0.211-1.09,0.327,0.22,0.345,2.3,0.24,2.3-0.116zm22.36-0.159c0.22,0,0.46,0.102,0.53,0.228s0.11,0.103,0.09-0.05-0.33-0.466-0.67-0.696c-0.59-0.39-0.63-0.36-0.63,0.43,0.01,0.467,0.07,0.677,0.14,0.468,0.08-0.209,0.32-0.38,0.54-0.38zm2.51,0.397c-0.3-0.077-0.71-0.072-0.92,0.012-0.2,0.083,0.04,0.146,0.54,0.14s0.67-0.074,0.38-0.152zm12.45-2.298c0.52-1.046,1.67-2.86,2.56-4.031,1.41-1.855,1.62-2.312,1.63-3.549,0.01-0.78,0.12-1.529,0.26-1.663,0.13-0.135,0.15-0.009,0.04,0.278-0.11,0.301-0.05,0.524,0.14,0.524,0.18,0,0.34-0.377,0.35-0.837s0.09-1.562,0.18-2.449c0.21-2.069-0.3-4.16-1.43-5.861-0.49-0.741-0.89-1.227-0.89-1.079s-0.29-0.096-0.64-0.542c-0.69-0.872-3.43-2.408-3.74-2.096-0.37,0.37-0.18,0.758,0.29,0.58,0.27-0.104,0.39-0.053,0.28,0.12-0.1,0.165,0.09,0.3,0.42,0.3,0.93,0,1.56,0.327,1.56,0.811,0,0.265,0.15,0.356,0.38,0.227,0.31-0.171,0.31-0.132,0,0.195-0.58,0.631-0.46,1.181,0.24,1.046,0.44-0.084,0.79,0.149,1.17,0.777,0.3,0.493,0.66,0.794,0.81,0.67,0.14-0.125,0.01,0.166-0.29,0.647-0.44,0.702-0.48,1.019-0.21,1.611,0.46,1.005,0.42,1.159-0.16,0.679-0.42-0.354-0.47-0.329-0.37,0.191,0.08,0.42,0.32,0.57,0.8,0.504,0.37-0.053,0.67,0.05,0.67,0.228s-0.13,0.323-0.3,0.323c-0.39,0-0.39,0.625,0,1.217,0.27,0.406,0.34,0.406,0.6,0,0.26-0.394,0.3-0.386,0.31,0.058,0,0.725-0.47,0.93-0.91,0.395-0.53-0.631-0.84-0.566-1.1,0.231l-0.23,0.685-0.17-0.703c-0.19-0.774-0.78-0.798-0.78-0.031,0,0.547-0.7,1.494-1.1,1.494-0.15,0-0.27-0.205-0.27-0.456,0-0.55-0.36-0.588-0.85-0.091-0.26,0.259-0.37,0.265-0.37,0.02,0-0.189,0.31-0.442,0.69-0.56,1.17-0.37,2.04-1.402,1.71-2.022-0.19-0.357-0.18-0.541,0.02-0.541,0.18,0,0.32,0.189,0.32,0.421,0,0.231,0.27,0.492,0.61,0.58,0.71,0.187,0.81-0.331,0.14-0.816-0.51-0.378-0.78-1.48-0.85-3.556-0.04-1.012-0.18-1.396-0.51-1.399-0.25-0.003-0.54,0.126-0.65,0.286-0.11,0.177-0.27,0.159-0.39-0.046-0.12-0.185-0.07-0.337,0.11-0.337s0.32-0.205,0.32-0.456c0-0.551-0.5-0.609-0.68-0.079-0.09,0.279-0.25,0.252-0.61-0.103-0.3-0.302-0.38-0.634-0.22-0.895,0.14-0.228,0.18-0.538,0.09-0.689-0.1-0.151-0.42,0.253-0.72,0.898-0.58,1.24-0.8,0.994-0.3-0.329,0.16-0.429,0.19-0.781,0.06-0.781-0.14,0-0.7,1.13-1.25,2.51s-1.27,3.106-1.59,3.836c-0.33,0.729-0.5,1.414-0.38,1.521s0.27,0.023,0.35-0.188c0.07-0.21,0.26-0.305,0.41-0.21s0.28,0,0.28-0.211c0-0.298,0.08-0.302,0.36-0.018,0.57,0.567,0.86,0.435,0.86-0.395,0-0.419,0.12-0.761,0.26-0.761,0.15,0,0.35-0.41,0.45-0.912,0.19-0.933,1.11-1.313,1.11-0.457,0,0.251-0.19,0.457-0.42,0.457-0.49,0-0.78,0.92-0.79,2.491,0,1.094-0.61,1.941-0.85,1.2-0.1-0.287-0.23-0.283-0.6,0.02-0.41,0.34-0.44,0.293-0.24-0.368l0.22-0.758-0.52,0.716c-0.4,0.548-0.58,0.621-0.78,0.313-0.31-0.504-0.29-0.532-1.28,1.943-1,2.516-1.01,2.763-0.05,1.591l0.75-0.912v0.988c0,0.544,0.14,0.989,0.3,0.989,0.17,0,0.31-0.206,0.31-0.457,0-0.713,0.55-0.534,0.7,0.228l0.13,0.685,0.24-0.71c0.17-0.547,0.29-0.617,0.51-0.304,0.2,0.281,0.23,0.203,0.1-0.253-0.24-0.865,0.34-1.202,1.02-0.588,0.3,0.267,0.7,0.486,0.9,0.486,0.19,0,0.35,0.137,0.35,0.304,0,0.168-0.12,0.304-0.26,0.304s-0.19,0.377-0.1,0.837c0.13,0.688,0.08,0.777-0.27,0.5-0.74-0.576-1.8-0.72-1.8-0.243,0,0.235,0.17,0.393,0.38,0.351,0.21-0.041,0.38,0.198,0.38,0.533,0,0.334-0.17,0.574-0.38,0.532s-0.4,0.232-0.42,0.608c-0.02,0.542-0.06,0.57-0.17,0.135-0.08-0.302-0.48-0.674-0.88-0.827-0.48-0.184-0.66-0.435-0.55-0.746,0.14-0.339,0.05-0.417-0.31-0.282-0.58,0.226-0.61,0.483-0.11,0.988,0.3,0.301,0.29,0.441-0.07,0.689-0.36,0.246-0.32,0.274,0.18,0.135,0.41-0.114,0.82,0.032,1.17,0.416,0.29,0.326,0.73,0.514,0.98,0.419,0.32-0.12,0.42-0.003,0.35,0.389-0.07,0.42,0.1,0.564,0.67,0.573,0.61,0.01,0.74,0.151,0.68,0.715-0.04,0.386,0.03,0.64,0.15,0.564,0.13-0.076,0.39,0.038,0.59,0.254,0.28,0.303,0.27,0.518-0.07,0.956-0.47,0.623-0.58,1.326-0.2,1.326,0.13,0,0.66-0.856,1.18-1.901zm-1.81-3.27c-0.11-0.396-0.01-0.609,0.26-0.609,0.24,0,0.43,0.274,0.43,0.609,0,0.334-0.12,0.608-0.27,0.608-0.14,0-0.34-0.274-0.42-0.608zm-1.44-0.305c0-0.167,0.14-0.304,0.31-0.304,0.16,0,0.3,0.137,0.3,0.304,0,0.168-0.14,0.305-0.3,0.305-0.17,0-0.31-0.137-0.31-0.305zm2.49-1.096c0.12-0.658,1.07-0.938,1.56-0.458,0.4,0.41,0.28,0.537-0.81,0.81-0.74,0.186-0.85,0.134-0.75-0.352zm2.68-0.576c0-0.252,0.24-0.461,0.54-0.466,0.48-0.009,0.48-0.049-0.05-0.449-0.51-0.388-0.63-0.378-1.01,0.085-0.38,0.473-0.39,0.459-0.1-0.139,0.4-0.839,0.41-1.406,0.02-1.161-0.17,0.104-0.31-0.017-0.31-0.268s0.15-0.547,0.33-0.657c0.17-0.111,0.26-0.365,0.18-0.564-0.08-0.207,0.14-0.377,0.51-0.395,0.36-0.017,0.48,0.035,0.27,0.115-0.23,0.089-0.36,0.646-0.33,1.414l0.04,1.268,0.21-1.217c0.2-1.177,0.21-1.192,0.52-0.456,0.18,0.418,0.44,0.692,0.59,0.608s0.28,0.181,0.3,0.589c0.04,0.71,0.02,0.716-0.39,0.156-0.4-0.547-0.42-0.526-0.35,0.332,0.07,0.975-0.21,1.661-0.68,1.661-0.16,0-0.29-0.206-0.29-0.456zm-2.13-1.369c0-0.356,0.21-0.609,0.49-0.609,0.32,0,0.43,0.166,0.31,0.482-0.1,0.264-0.19,0.538-0.19,0.608s-0.13,0.127-0.3,0.127-0.31-0.274-0.31-0.608zm-0.3-1.199c0-0.177,0.14-0.322,0.3-0.322,0.17,0,0.31,0.06,0.31,0.134s-0.14,0.219-0.31,0.322c-0.16,0.103-0.3,0.043-0.3-0.134zm-5.17-1.977c0-0.074,0.14-0.219,0.3-0.323,0.17-0.103,0.31-0.042,0.31,0.135s-0.14,0.322-0.31,0.322c-0.16,0-0.3-0.061-0.3-0.134zm5.06-1.843c-0.1-0.251-0.04-0.457,0.12-0.457s0.29,0.206,0.29,0.457-0.05,0.456-0.12,0.456c-0.06,0-0.19-0.205-0.29-0.456zm4.99-1.799c-0.24-0.6-0.61-1.091-0.83-1.091-0.53,0-0.5-0.243,0.07-0.819,0.56-0.556,0.53-0.586,1.03,1.012,0.51,1.613,0.29,2.335-0.27,0.898zm-5.03,0.43c-0.11-0.167,0.02-0.304,0.28-0.304,0.27,0,0.48,0.137,0.48,0.304s-0.13,0.304-0.29,0.304-0.37-0.137-0.47-0.304zm-2.59-2.89c0.21-0.251,0.43-0.456,0.5-0.456,0.06,0,0.11,0.205,0.11,0.456s-0.22,0.456-0.49,0.456c-0.41,0-0.43-0.082-0.12-0.456zm2.44,0.152c0-0.167,0.21-0.304,0.47-0.304s0.39,0.137,0.29,0.304c-0.11,0.167-0.32,0.304-0.48,0.304s-0.28-0.137-0.28-0.304zm-58.96,17.131c-0.22-0.088-0.48-0.077-0.58,0.024s0.08,0.173,0.4,0.16c0.35-0.015,0.42-0.087,0.18-0.184zm15.96-1.215c-0.08-0.085-0.47-0.053-0.85,0.069l-0.71,0.223,0.68,0.251c0.38,0.139,0.7,0.427,0.72,0.642,0.03,0.214,0.11,0.07,0.18-0.321s0.07-0.779-0.02-0.864zm-17.08,0.814c-0.1-0.167-0.32-0.304-0.47-0.304-0.16,0-0.29,0.137-0.29,0.304,0,0.168,0.21,0.305,0.47,0.305s0.39-0.137,0.29-0.305zm13.07-0.859c-0.13-0.113-0.28-0.049-0.35,0.143-0.07,0.191-0.43,0.282-0.8,0.203-0.6-0.131-0.59-0.104,0.09,0.279,0.65,0.363,0.8,0.363,1.02,0.003,0.14-0.233,0.16-0.515,0.04-0.628zm1.68,0.555c0-0.167-0.24-0.302-0.53-0.299-0.45,0.004-0.47,0.047-0.08,0.299,0.58,0.371,0.61,0.371,0.61,0zm-4.03-0.211c-0.3-0.077-0.71-0.072-0.92,0.012-0.2,0.083,0.04,0.146,0.54,0.14s0.67-0.075,0.38-0.152zm11.39,0.003c-0.22-0.087-0.48-0.077-0.58,0.024s0.08,0.173,0.4,0.16c0.35-0.015,0.42-0.087,0.18-0.184zm22.07-0.882c-0.29-0.29-0.87,0.18-0.65,0.529,0.13,0.208,0.3,0.203,0.51-0.016,0.18-0.179,0.25-0.41,0.14-0.513zm-22.55-0.957c-0.1-0.101-0.17,0.079-0.16,0.399,0.01,0.355,0.09,0.427,0.18,0.184,0.09-0.219,0.08-0.482-0.02-0.583zm-0.49-0.082c0-0.168-0.13-0.304-0.29-0.304-0.15,0-0.37,0.136-0.47,0.304-0.1,0.167,0.03,0.304,0.29,0.304s0.47-0.137,0.47-0.304zm22.81-0.295c0-0.162-0.2-0.216-0.45-0.119-0.25,0.096-0.46,0.228-0.46,0.294s0.21,0.12,0.46,0.12,0.45-0.133,0.45-0.295zm13.27-0.535c-0.1-0.101-0.18,0.078-0.16,0.399,0.01,0.354,0.08,0.426,0.18,0.184,0.09-0.22,0.08-0.482-0.02-0.583zm-0.87-0.597c-0.29-0.283-0.62-0.412-0.74-0.288-0.13,0.125-0.03,0.354,0.22,0.51,0.74,0.468,1.07,0.328,0.52-0.222zm-2.16-2.358c-0.44-0.412-0.81-0.6-0.81-0.419,0,0.402,1.26,1.53,1.47,1.319,0.08-0.083-0.21-0.488-0.66-0.9zm-26.21-0.474c0.11-0.167-0.02-0.304-0.28-0.304s-0.48,0.137-0.48,0.304,0.13,0.304,0.29,0.304,0.37-0.137,0.47-0.304zm26.78-0.631c0.11-0.347,0.12-0.712,0.02-0.811s-0.18,0.048-0.18,0.327-0.14,0.507-0.3,0.507c-0.17,0-0.31,0.137-0.31,0.304,0,0.555,0.57,0.315,0.77-0.327zm-25.72-0.27c0.75-0.475,0.22-0.589-0.75-0.16-0.71,0.312-0.78,0.408-0.31,0.424,0.34,0.01,0.81-0.108,1.06-0.264zm2.78-1.625c-0.25-0.241-0.34-0.162-0.34,0.285,0,0.805,0.43,1.231,0.56,0.563,0.06-0.284-0.04-0.665-0.22-0.848zm-2.47-1.834c0-0.631-0.36-0.839-0.81-0.467-0.58,0.49-0.5,0.873,0.2,0.873,0.34,0,0.61-0.183,0.61-0.406zm2.2-1.475c-0.19-0.19-0.23,0.01-0.12,0.565,0.13,0.637,0.21,0.713,0.29,0.295,0.07-0.311-0.01-0.698-0.17-0.86zm-0.68,0.664c0-0.167-0.14-0.304-0.32-0.304s-0.24,0.137-0.13,0.304c0.1,0.167,0.25,0.304,0.32,0.304s0.13-0.137,0.13-0.304zm-2.31-0.741c-0.09-0.241-0.36-0.363-0.6-0.273-0.51,0.198-0.27,0.71,0.34,0.71,0.24,0,0.35-0.185,0.26-0.437zm2.92-2.32c0-0.818-0.09-0.893-1.06-0.893-0.59,0-1.07,0.136-1.07,0.304,0,0.167,0.21,0.304,0.46,0.304s0.46,0.245,0.46,0.544c0,0.325,0.24,0.562,0.6,0.589,0.48,0.036,0.61-0.142,0.61-0.848zm-17.64-0.893c0-0.168-0.15-0.304-0.32-0.304-0.18,0-0.24,0.136-0.14,0.304,0.11,0.167,0.25,0.304,0.33,0.304,0.07,0,0.13-0.137,0.13-0.304zm16.57-1.416c-0.84-0.614-1.23-0.493-0.61,0.192,0.3,0.33,0.69,0.515,0.86,0.41,0.18-0.114,0.08-0.358-0.25-0.602zm10.4-1.094c-0.08-0.209-0.15-0.038-0.15,0.38,0,0.419,0.07,0.59,0.15,0.381s0.08-0.552,0-0.761zm-11.46-0.246c0-0.157-0.13-0.286-0.3-0.286s-0.31,0.213-0.31,0.474,0.14,0.39,0.31,0.286c0.17-0.103,0.3-0.316,0.3-0.474zm1.16-0.347c0.2-0.201,0.36-0.564,0.36-0.808,0-0.351-0.12-0.329-0.6,0.108-0.63,0.566-0.8,1.065-0.37,1.065,0.13,0,0.41-0.164,0.61-0.365zm-24.58-0.395c0-0.251-0.13-0.457-0.29-0.457-0.17,0-0.22,0.206-0.12,0.457,0.09,0.25,0.23,0.456,0.29,0.456,0.07,0,0.12-0.206,0.12-0.456zm34.57-1.451c-0.08-0.206-0.14,0.036-0.14,0.538,0.01,0.502,0.08,0.67,0.15,0.374,0.08-0.296,0.08-0.706-0.01-0.912zm20.87,0.792c-0.21-0.085-0.31-0.279-0.21-0.432,0.09-0.153,0.03-0.278-0.14-0.278-0.16,0-0.38,0.125-0.47,0.278-0.17,0.275,0.3,0.586,0.89,0.586,0.17,0,0.14-0.069-0.07-0.154zm-31.25-0.715c0.1-0.17,0.32-0.231,0.47-0.134,0.34,0.21,0.33-0.103-0.02-0.926-0.23-0.532-0.26-0.541-0.28-0.066-0.01,0.298-0.23,0.62-0.48,0.716-0.5,0.193-0.63,0.719-0.17,0.719,0.16,0,0.37-0.139,0.48-0.309zm-30.07-4.336c-0.09-0.206-0.15,0.036-0.14,0.538,0,0.502,0.07,0.671,0.15,0.375s0.07-0.707-0.01-0.913zm18.35-0.258c0-0.167-0.13-0.22-0.3-0.116-0.17,0.103-0.31,0.325-0.31,0.492s0.14,0.22,0.31,0.116c0.17-0.103,0.3-0.325,0.3-0.492zm53.05-5.988c0.11-0.181,0.27-1.741,0.35-3.465s0.36-3.778,0.62-4.564c0.35-1.059,0.39-1.585,0.15-2.033-0.18-0.332-0.33-0.818-0.33-1.078s-0.46-1.084-1.03-1.83-1.13-1.91-1.25-2.587c-0.24-1.454-0.76-1.942-0.76-0.719,0,0.47,0.41,1.723,0.91,2.783,0.56,1.164,0.92,2.422,0.92,3.173,0,1.187-1.87,8.286-2.49,9.442-0.47,0.877,0,2.182,1.21,3.397l1.12,1.126,0.19-1.657c0.1-0.911,0.27-1.806,0.39-1.988zm-53.05,2.678c0-0.167-0.51-0.291-1.14-0.274-1.02,0.027-1.06,0.056-0.38,0.274,1.09,0.348,1.52,0.348,1.52,0zm22.51-1.369c0-0.251-0.05-0.456-0.12-0.456-0.06,0-0.2,0.205-0.29,0.456-0.1,0.251-0.04,0.456,0.12,0.456s0.29-0.205,0.29-0.456zm-8.22-1.463c0-0.366-0.13-0.872-0.29-1.123-0.22-0.333-0.3-0.103-0.3,0.855-0.01,0.797,0.11,1.237,0.3,1.123,0.16-0.104,0.3-0.488,0.29-0.855zm9.13-8.879c-0.2-0.251-0.51-0.457-0.68-0.457s-0.13,0.202,0.08,0.457c0.2,0.251,0.51,0.456,0.68,0.456s0.14-0.202-0.08-0.456zm0.77-0.761c-0.11-0.167-0.25-0.304-0.33-0.304-0.07,0-0.13,0.137-0.13,0.304,0,0.168,0.14,0.304,0.32,0.304s0.24-0.136,0.14-0.304zm-0.92-1.216c-0.1-0.168-0.25-0.305-0.32-0.305s-0.13,0.137-0.13,0.305c0,0.167,0.14,0.304,0.32,0.304s0.24-0.137,0.13-0.304zm15.67-3.346c0-0.335-0.14-0.609-0.31-0.609-0.16,0-0.3-0.151-0.3-0.336s-0.35-0.615-0.79-0.954c-0.49-0.387-0.73-0.823-0.64-1.165,0.08-0.301-0.02-0.612-0.23-0.692-0.27-0.102-0.34-0.754-0.25-2.2333l0.13-2.0891-1.11-0.5312c-1.47-0.6998-4.41-1.0035-5.27-0.5438-0.86,0.4582-0.84,0.6119,0.24,1.7966,0.72,0.7821,0.82,1.0288,0.46,1.1649-0.25,0.095-0.45,0.295-0.45,0.4444,0,0.3975,1.04,0.3315,1.46-0.0934,0.29-0.2839,0.37-0.267,0.37,0.076,0,0.5319,0.88,1.5969,3.57,4.3199,2.05,2.084,3.12,2.577,3.12,1.445zm12.4-5.34c-0.07-0.071-0.56-0.2165-1.09-0.3228-1.3-0.2603-1.28,0.3898,0.02,0.7358,0.86,0.228,1.48-0.008,1.07-0.413zm-3.77-0.146c0.15-0.1379-0.54-0.2501-1.52-0.2495-1.64,0.001-1.74,0.0383-1.19,0.4435,0.61,0.443,2.15,0.333,2.71-0.194zm1.82-1.6493c1.15,0.0572,2.16,0.1802,2.26,0.2734,0.32,0.3199,0.67,0.1687,0.67-0.287,0-0.3336-0.35-0.457-1.29-0.4589-0.71-0.0015-2.01-0.089-2.89-0.1945-1.51-0.1816-1.6-0.1553-1.6,0.4962,0,0.5132,0.1,0.6091,0.38,0.3774,0.21-0.1709,1.32-0.2638,2.47-0.2066zm4.04-1.5214c-0.09-0.2582-0.41-0.4694-0.7-0.4694s-0.8-0.2529-1.15-0.5621c-0.75-0.6739-3.07-1.611-3.33-1.3482-0.38,0.3803-0.18,1.0608,0.26,0.8912,0.45-0.1708,2.23,0.549,3.96,1.6008,1.02,0.6127,1.23,0.5873,0.96-0.1123zm-5.98-0.9078c-0.01-0.1771-0.21-0.0564-0.46,0.2684s-0.44,0.7354-0.44,0.9126c0.01,0.1771,0.21,0.0563,0.46-0.2684,0.24-0.3248,0.44-0.7354,0.44-0.9126zm6.7-0.9038c0-0.6384-0.33-0.8573-2.49-1.683-1.93-0.7387-2.54-0.8626-2.73-0.5589-0.15,0.2486-0.05,0.463,0.28,0.5909,0.29,0.1104,1.31,0.5005,2.26,0.867,0.96,0.3664,1.9,0.8578,2.09,1.092,0.49,0.5886,0.59,0.5386,0.59-0.308zm-67.31,27.014c-0.12-0.122-0.22-0.432-0.22-0.688,0-0.343,0.09-0.377,0.34-0.128,0.18,0.186,0.28,0.496,0.22,0.688-0.07,0.192-0.22,0.25-0.34,0.128zm1.2-0.019c-0.37-0.372-0.21-0.71,0.33-0.686,0.32,0.015,0.38,0.085,0.15,0.178-0.21,0.085-0.31,0.279-0.21,0.433,0.2,0.323,0.02,0.371-0.27,0.075zm6.96-0.642c-0.06-0.057-0.03-0.364,0.05-0.682,0.13-0.489,0.37-0.559,1.56-0.453,0.78,0.069,1.66,0.132,1.97,0.14s0.46,0.155,0.34,0.345c-0.11,0.182-0.46,0.263-0.78,0.181-0.31-0.083-0.57-0.041-0.57,0.094,0,0.236-2.36,0.582-2.57,0.375zm1.41-0.58c-0.22-0.088-0.48-0.077-0.58,0.024s0.07,0.173,0.4,0.16c0.35-0.015,0.42-0.087,0.18-0.184zm-7.36,0.208c0-0.167,0.14-0.304,0.31-0.304,0.16,0,0.3,0.137,0.3,0.304s-0.14,0.304-0.3,0.304c-0.17,0-0.31-0.137-0.31-0.304zm-2.13-0.566c0-0.144,0.34-0.197,0.76-0.117s0.76,0.198,0.76,0.262-0.34,0.117-0.76,0.117-0.76-0.118-0.76-0.262zm4.42-0.034c-0.09-0.143-0.74-0.348-1.45-0.455-2.16-0.328-2.62-0.676-2.37-1.798,0.12-0.532,0.18-1.265,0.12-1.628s0.04-0.744,0.2-0.848c0.46-0.279,0.05-0.756-0.47-0.557-0.25,0.094-0.45,0.004-0.45-0.201,0-0.219,0.25-0.308,0.6-0.217,0.79,0.207,0.85-0.09,0.51-2.554-0.23-1.746-0.34-2.009-0.65-1.59-0.2,0.277-0.52,0.405-0.72,0.286-0.43-0.266-0.46-1.093-0.04-1.093,0.17,0,0.3-0.146,0.3-0.325,0-0.193-0.26-0.241-0.65-0.117-0.52,0.166-0.62,0.107-0.47-0.283,0.11-0.271,0.07-0.492-0.07-0.492-0.15,0-0.34,0.206-0.44,0.457-0.28,0.723-1.19,0.58-0.95-0.15,0.1-0.333,0.08-0.778-0.05-0.988-0.16-0.257-0.31-0.082-0.44,0.529-0.19,0.877-0.2,0.868-0.24-0.248-0.03-1.063-0.09-1.142-0.72-0.936-1.56,0.515-1.88,0.351-2.1-1.097-0.27-1.78-0.31-5.285-0.06-5.932,0.15-0.4046,0.25-0.425,0.45-0.101,0.19,0.303,0.26,0.31,0.26,0.025,0.01-0.209,0.15-0.3801,0.33-0.3801,0.19,0,0.24,0.2594,0.13,0.6081-0.11,0.349-0.05,0.609,0.14,0.609,0.17,0,0.32-0.214,0.32-0.475,0-0.26,0.14-0.389,0.3-0.286,0.17,0.104,0.31-0.084,0.31-0.4158,0-0.7029,0.71-0.9316,1.91-0.6104,0.5,0.1358,0.77,0.1126,0.66-0.0578-0.1-0.1656,0.65-0.2846,1.8-0.2846,1.09,0,2.07,0.1462,2.18,0.3249s0.38,0.2579,0.59,0.1759,0.53-0.0047,0.71,0.1717c0.18,0.1774,0.57,0.2184,0.87,0.0917,0.31-0.1261,1.24-0.2906,2.07-0.3656s1.67-0.2626,1.85-0.417c0.19-0.1543,0.43-0.1916,0.54-0.083,0.32,0.319-0.42,1.0109-1.13,1.0492-0.52,0.0284-0.54,0.0629-0.11,0.1751,0.3,0.0767,0.46,0.2667,0.36,0.4207-0.28,0.465,0.39,0.317,0.91-0.197,0.53-0.5279,2.64-0.7554,3.82-0.4115,0.54,0.1565,0.23,0.2302-1.06,0.2525-1.45,0.025-2.09,0.204-3.08,0.867-1.03,0.683-1.19,0.904-0.86,1.212,0.23,0.207,0.62,0.295,0.88,0.196,0.26-0.1,0.47-0.03,0.47,0.155s-0.23,0.337-0.51,0.337-0.73,0.208-1.02,0.463c-0.63,0.572-1.51,0.282-1.51-0.496,0-0.317-0.2-0.576-0.43-0.576-0.61,0-1.52,0.954-1.14,1.189,0.18,0.108-0.07,0.69-0.58,1.378-0.49,0.656-0.9,0.996-0.91,0.758-0.02-0.262-0.13-0.192-0.29,0.174-0.36,0.837-0.36,1.134,0,0.912,0.26-0.158,0.5,1.756,0.34,2.684-0.03,0.138,0.08,0.174,0.23,0.08,0.33-0.205,0.65,0.742,0.82,2.407,0.09,0.899,0.04,1.058-0.16,0.609-0.15-0.335-0.28-0.917-0.29-1.293-0.03-0.822-0.63-0.931-0.63-0.114,0,0.313,0.22,1.169,0.49,1.901s0.48,1.646,0.46,2.032c-0.02,0.456,0.09,0.626,0.31,0.485,0.22-0.131,0.27-0.081,0.14,0.127-0.29,0.476,0.48,1.835,1.76,3.097,1.11,1.097,1.38,1.802,0.72,1.856-0.21,0.017-0.89,0.078-1.52,0.135-0.62,0.057-1.2-0.014-1.29-0.157zm-2.29-2.442c0-0.167-0.21-0.304-0.47-0.304s-0.39,0.137-0.29,0.304,0.32,0.304,0.48,0.304c0.15,0,0.28-0.137,0.28-0.304zm-2.66-15.818c0.31,0,0.48-0.137,0.38-0.304-0.26-0.426,0.26-0.38,0.7,0.061,0.28,0.284,0.37,0.212,0.37-0.323,0-0.539-0.15-0.668-0.69-0.593-0.51,0.071-0.71-0.075-0.78-0.59-0.13-0.9382-0.67-0.8692-0.59,0.076,0.03,0.419,0.17,0.761,0.3,0.761,0.5,0,0.21,0.545-0.37,0.696-0.34,0.088-0.61,0.337-0.61,0.553,0,0.306,0.08,0.312,0.36,0.028,0.2-0.2,0.62-0.365,0.93-0.365zm2.3-0.988c-0.47-1.3823-0.55-1.4011-0.55-0.127,0,0.771,0.14,1.115,0.44,1.115,0.36,0,0.38-0.174,0.11-0.988zm4.94-0.176c-0.85-0.128-1.63,0.164-1.4,0.527,0.1,0.165,0.56,0.134,1.12-0.074,0.84-0.312,0.87-0.365,0.28-0.453zm-8.53-0.339c0-0.41-0.56-0.6951-0.92-0.471-0.17,0.105-0.23,0.319-0.13,0.475,0.22,0.369,1.05,0.367,1.05-0.004zm3.4-1.442c-0.22-0.0879-0.48-0.0771-0.58,0.024s0.08,0.1729,0.4,0.1597c0.35-0.0146,0.42-0.0866,0.18-0.1837zm11.43,21.286c0.37-0.072,0.99-0.072,1.37,0,0.37,0.073,0.06,0.132-0.69,0.132s-1.06-0.059-0.68-0.132zm-16.84-1.875c0.02-0.412,0.22-0.812,0.44-0.887,0.3-0.099,0.36,0.041,0.21,0.507-0.12,0.382-0.07,0.645,0.12,0.645,0.18,0,0.32,0.128,0.32,0.285s-0.25,0.266-0.56,0.243c-0.39-0.03-0.55-0.269-0.53-0.793zm33.72,0.459c-0.85-0.42-0.89-0.808-0.08-0.65,0.8,0.152,1.22,0.422,1.22,0.778,0,0.345-0.24,0.318-1.14-0.128zm-13.25-0.118c-0.36-0.636-0.5-1.902-0.21-1.902,0.17,0,0.45-0.344,0.61-0.765,0.26-0.675,1.34-1.364,2.14-1.364,0.15,0,0.5,0.336,0.77,0.747,0.56,0.86,0.32,1.619-0.34,1.071-0.33-0.273-0.45-0.123-0.61,0.749-0.29,1.545-0.89,1.816-0.66,0.294,0.17-1.08,0.15-1.135-0.25-0.606-0.25,0.333-0.36,0.884-0.25,1.292,0.14,0.573,0.05,0.712-0.45,0.712-0.34,0-0.68-0.103-0.75-0.228zm4.86-0.888c-0.33-0.332-0.23-1.014,0.15-1.014,0.2,0,0.27,0.091,0.16,0.201s-0.05,0.383,0.13,0.608c0.34,0.408-0.06,0.591-0.44,0.205zm-16.01-1.447c-0.46-1.189-0.37-1.376,0.18-0.376,0.25,0.475,0.39,0.939,0.3,1.031-0.1,0.092-0.31-0.203-0.48-0.655zm19.62,0.448c-0.25-0.405,1-1.511,1.72-1.525,0.8-0.016,2.07,0.65,2.07,1.085,0,0.305-0.18,0.295-0.84-0.047-1.09-0.573-1.28-0.556-2.07,0.191-0.45,0.42-0.75,0.519-0.88,0.296zm-2.4-0.894c0.26-1.077,0.38-1.25,0.86-1.25,0.46,0,0.91,1.047,0.64,1.482-0.09,0.149-0.51,0.336-0.93,0.416-0.68,0.131-0.74,0.069-0.57-0.648zm-23.85-0.083c-0.21-0.206-0.38-0.583-0.38-0.836,0-0.399,0.07-0.395,0.49,0.03,0.27,0.271,0.44,0.648,0.38,0.838-0.08,0.249-0.22,0.24-0.49-0.032zm37.26-0.454c0.2-0.083,0.62-0.088,0.91-0.011,0.3,0.077,0.13,0.145-0.37,0.151-0.5,0.007-0.75-0.056-0.54-0.14zm-42.3-1.524c-0.31-0.303-0.25-1.38,0.06-1.189,0.35,0.216,0.66,1.392,0.37,1.392-0.13,0-0.32-0.091-0.43-0.203zm28.01-1.391c-0.77-0.877-1.36-1.641-1.3-1.698,0.26-0.263,1.38,0.65,1.98,1.615,0.48,0.774,0.88,1.074,1.47,1.09,0.73,0.019,0.75,0.048,0.21,0.283-0.34,0.143-0.69,0.271-0.78,0.283-0.1,0.011-0.81-0.696-1.58-1.573zm-23.76-0.079c0.11-0.289-0.01-0.456-0.32-0.456-0.27,0-0.49-0.103-0.49-0.229s0.72-0.247,1.6-0.269,1.43,0.024,1.22,0.102-0.38,0.321-0.38,0.54c0,0.411-0.65,0.768-1.39,0.768-0.25,0-0.35-0.186-0.24-0.456zm-3.64-0.659c-0.12-0.112-0.2-0.557-0.18-0.989,0.02-0.771,0.03-0.769,0.29,0.112,0.28,0.925,0.24,1.23-0.11,0.877zm35.84-1.014c-0.1-0.167-0.04-0.304,0.13-0.304,0.18,0,0.33,0.137,0.33,0.304s-0.07,0.304-0.14,0.304-0.22-0.137-0.32-0.304zm-33.01-0.743c0-0.534,0.19-0.613,0.45-0.191,0.09,0.156,0.03,0.369-0.14,0.475-0.17,0.104-0.31-0.023-0.31-0.284zm18.81-2.331c-0.48-0.536-0.75-1.115-0.64-1.387,0.35-0.926,1.52-1.825,2.24-1.716,0.9,0.138,1.16,0.397,0.4,0.397-1.03,0-1.99,0.89-1.89,1.755,0.05,0.431,0.25,0.834,0.44,0.896,0.22,0.071,0.28-0.183,0.18-0.709-0.31-1.637,2.11-2.245,3.66-0.917,0.46,0.395,0.84,0.818,0.84,0.939s-0.43-0.135-0.94-0.568c-0.52-0.433-1.14-0.787-1.39-0.787-0.73,0-1.63,0.593-1.63,1.075,0,0.582,0.49,0.575,0.72-0.011,0.26-0.682,1.61-0.555,2.14,0.202,0.56,0.802,0.38,1.167-0.58,1.167-0.4,0-0.79,0.107-0.87,0.238s-0.53,0.262-1.01,0.291c-0.61,0.039-1.09-0.208-1.67-0.865zm4.79,0.669c-0.1-0.152,0.1-0.204,0.44-0.117,0.71,0.186,0.8,0.393,0.17,0.393-0.25,0-0.52-0.125-0.61-0.276zm-17.06-0.333c-0.1-0.167-0.04-0.304,0.14-0.304s0.32,0.137,0.32,0.304-0.06,0.304-0.13,0.304c-0.08,0-0.22-0.137-0.33-0.304zm18.41-0.621c0-0.175-0.34-0.682-0.75-1.127-0.41-0.444-0.68-0.878-0.6-0.964,0.21-0.202,1.96,1.668,1.96,2.087,0,0.177-0.14,0.321-0.31,0.321-0.16,0-0.3-0.143-0.3-0.317zm1.6-1.101c-0.21-0.085-0.39-0.294-0.39-0.465,0-0.18,0.23-0.216,0.54-0.086,0.29,0.124,1.01,0.329,1.59,0.454l1.07,0.228-1.22,0.011c-0.67,0.006-1.39-0.058-1.59-0.142zm-1.22-3.651c-0.21-0.084-0.38-0.295-0.38-0.469,0-0.207,0.14-0.199,0.41,0.023,0.22,0.186,0.49,0.248,0.6,0.138s0.2-0.04,0.2,0.155c0,0.372-0.2,0.409-0.83,0.153zm-3.27-0.851c-2.09-0.332-3.98-1.046-2.83-1.067,0.28-0.005,0.58,0.108,0.67,0.253,0.09,0.144,1.07,0.334,2.17,0.422,1.81,0.146,2.59,0.363,2.24,0.632-0.07,0.055-1.08-0.053-2.25-0.24zm-5.02-1.667c0-0.177,0.14-0.322,0.3-0.322,0.17,0,0.31,0.06,0.31,0.134s-0.14,0.219-0.31,0.322c-0.16,0.104-0.3,0.043-0.3-0.134zm1.91,0.103c0.1-0.101,0.36-0.112,0.58-0.024,0.24,0.097,0.17,0.169-0.18,0.183-0.32,0.014-0.5-0.058-0.4-0.159zm-21.38-1.3374c0.59-0.3812,0.91-0.3812,0.91,0,0,0.1673-0.3,0.3021-0.68,0.2995-0.55-0.0038-0.6-0.0611-0.23-0.2995zm18.17,0.1187c-0.1-0.1028-0.57-0.2236-1.04-0.2686-1.13-0.108-1.92-0.4509-1.92-0.8325,0-0.1699,0.22-0.1262,0.49,0.0971,0.42,0.3451,0.55,0.3184,0.92-0.1776,0.41-0.5705,0.43-0.5685,0.89,0.0875,0.52,0.7388,1.12,0.9151,0.87,0.2537-0.12-0.3084,0.04-0.378,0.63-0.2663,0.43,0.0832,0.75,0.1698,0.7,0.1926s-0.37,0.2798-0.72,0.5711c-0.35,0.2914-0.72,0.4457-0.82,0.343zm-11.09-0.9109c0.1-0.1011,0.36-0.1119,0.58-0.024,0.25,0.0971,0.17,0.1692-0.18,0.1838-0.32,0.0132-0.5-0.0587-0.4-0.1598zm4.95-0.5006c0.29-0.9301,0.39-1.0064,0.81-0.5881,0.28,0.272,0.28,0.3599,0.01,0.3599-0.2,0-0.28,0.2054-0.18,0.4563,0.11,0.2936-0.01,0.4563-0.34,0.4563-0.38,0-0.46-0.1634-0.3-0.6844zm-6.78,0.1964c0.11-0.101,0.37-0.1119,0.59-0.024,0.24,0.0971,0.17,0.1692-0.19,0.1838-0.32,0.0132-0.5-0.0587-0.4-0.1598zm3.96-1.0254c-0.05-0.7347,0.11-0.771,0.72-0.1596,0.25,0.2509,0.39,0.4563,0.31,0.4563s-0.34,0.0718-0.57,0.1595c-0.26,0.1-0.43-0.0704-0.46-0.4562zm-9.59-1.2487c0.1-0.4113,0.24-0.5492,0.32-0.3213,0.07,0.2194-0.01,0.5436-0.19,0.7203-0.23,0.2258-0.27,0.107-0.13-0.399zm1.98-0.2695c-0.29-0.4548-0.71-0.6186-1.6-0.6186-1.19,0-1.22-0.0203-1.22-1.0972,0-0.8755,0.1-1.0599,0.49-0.9126,0.26,0.1016,0.64,0.189,0.83,0.1943,0.2,0.0054,0.12,0.1898-0.17,0.4099-0.49,0.3701-0.47,0.4264,0.24,0.7489,0.62,0.2841,0.8,0.2645,0.94-0.1056,0.18-0.4727,0.93-0.5875,1.76-0.2698,0.86,0.33,0.52,0.8127-0.44,0.6214-0.85-0.17-1.32,0.2222-0.57,0.4729,0.19,0.0622,0.29,0.352,0.23,0.644-0.1,0.4777-0.15,0.4689-0.49-0.0876zm2.13-1.1066c0.11-0.1011,0.37-0.1119,0.59-0.024,0.24,0.0971,0.17,0.1692-0.19,0.1838-0.32,0.0132-0.5-0.0587-0.4-0.1598zm3.01-1.033c0-0.4182,0.07-0.5893,0.15-0.3802,0.09,0.2091,0.09,0.5513,0,0.7605-0.08,0.2091-0.15,0.038-0.15-0.3803z" transform="translate(10, 1156.6884665) "/>
+ <rect id="d0e135" display="none" height="1000px" width="288" y="1300" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e135"/>
</flowRegion>
<flowDiv xml:space="preserve">パスには厖大な数のノードがあることに注目してください。<flowSpan font-weight="bold">Ctrl+L</flowSpan> を押したあとの典型的な結果がこれです:</flowDiv>
</flowRoot>
- <text id="tracing-f06-ja.svgtext2885" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1306.698535) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="128.33766" x="81.327339" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f06-ja.svgtspan2886" y="128.33766" x="81.327339" role="line">オリジナル画像</tspan></text>
- <text id="tracing-f06-ja.svgtext2888" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1306.698535) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="124.67367" x="227.35374" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f06-ja.svgtspan2889" y="124.67367" x="227.35374" role="line">トレースイメージ / 出力パス - 簡略化</tspan><tspan id="tracing-f06-ja.svgtspan2891" y="130.67367" x="227.35374" role="line">(384 ノード)</tspan></text>
- <image id="tracing-f06-ja.svgimage1855" sodipodi:absref="/oldguitar.jpg" xlink:href="oldguitar.jpg" transform="translate(10, 1306.698535) " height="115.89" width="83.347" y="0.058779" x="39.654"/>
- <path id="tracing-f06-ja.svgpath1856" d="M185.36,89.642v-26.312c2.75,0.214-1.46-0.484-0.01-2.745,0.01-9.174,0.03-18.348,0.04-27.522,3.14-0.382,3.52-0.813,5.15-0.14-0.1-0.543,6.61,1.062,4.27-1.007,2.32,0.05,5.04-0.393,1.89,1.17,3.75-0.672,7.61-2.582,11.13-0.349,5.33,0.097,3.03,0.037,1.6-1.05,3.17-0.429-6.19-0.139-1.76-0.086,2.08-2.801,9.63,3.884,6.92-3.22,1.56-0.493,1.39,6.127,2.89,0.699,2.56-3.733,2.4,3.493,6.37,1.604,1.07-3.701-4.17-6.684-7.12-8.166,2.81,1.684,5.26,0.793,2.17-2.023-0.34-3.194,5.23,3.836,8,3.024,4.33,1.742-7.33,2.644-0.51,2.855,1.09,1.705,4.84,6.01,3.95,0.683-0.04-1.819-0.23-10.127-1.49-4.793-3.46-0.879-5.06-4.836-7.71-4.155-0.62-1.477,1.16-1.504,1.74-2.567-0.82,2.324,6.49,3.348,5.91,0.852-1.43-2.129-5.79,1.75-4.95-1.772,4.54,0.377,2.67-2.664,0.35-2.344-1.5,1.835-9.89,3.443-8.62,2.425,1.63-1.707,7.28-1.237,9.99-4.7142,4.79-2.7554,9.75-5.3947,15.44-3.8839,1.82-1.8037-1.44-7.1732,2.88-5.9164,5.09,0.1172,10.31-0.5425,15.28,0.3304,3.71-0.4323,11.96-2.1157,9.38,4.9761,0.07,36.819,0.1,73.64-0.14,110.46h-83.04v-26.308zm6.98,25.118zm2.36-1.64zm1.18-0.13zm-2.31-0.51zm-1.8,0.2c1.25-4.6,5.42-9.67,10.05-9.89,1.46-2.07-0.48-5.022-0.08-7.207-4.92-4.349-3.53,8.547-7.62,10.687-2.95,0.78-3.96,5.99-2.35,6.41zm55.06-3.05zm-1.72-0.17zm-1.33-2zm2.27-1.53zm-2.59-1.19zm2.43-0.36zm-7.49-2.42zm6.03-0.21zm-8.58-0.59c-3.11-1.194-2.11-3.874-3.74-4.116,2.63,0.914,2.1,2.124,4.87,1.989,3.48,2.777,6.6,0.793,10.04,1.597-2.31-2.311-8.5,0.46-11.59-3.244-7.35-3.872-13.34-10.542-21.9-11.762-3.12-1.3-9.61-4.182-9.7-6.483,3.78-4.319-6.22-0.693-7.05,1.356-4.07,3.426,2.15,9.561,3.33,8.707,1.3-2.198,1.89,0.297,0.24,0.76,0.88-0.786,6.31,2.681,2.61-1.175-2.48-1.531-3.67-1.488-2.15-2.992,2.87-0.736,4.68,6.909,4.42,2.247,1.83,1.796,5.58,4.532,5.56,0.741,0.52,0.625,4.94,3.58,8.1,4.86,1.02-2.932,3.16,2.699-0.02,0.955,3.2,2.982,9.7,2.899,13.91,5.44,1.06-0.077,2.23,1.74,3.07,1.12zm-5.78-3.458zm-1.21-0.608c-2.07,0.726-4.67-3.14-3.17-1.996-1.02,0.642,5.87,2.494,3.17,1.996zm-4.95-1.242c-2.89-0.68-0.27-2.401,0.59,0.288l-0.59-0.288zm-2.35-1.326zm2.35-0.067zm-21.82-4.495zm2.54-3.073zm1.46,11.779c2.71-0.829,6.9-1.752,1.5-2.043-2.64-1.777-6.75,0.069-3.54,2.587l0.88-0.136,1.16-0.408zm12.42-3.575zm-4.25-1.043zm1.44-0.38zm-7.53-2.966zm23.58-8.213zm-3.35-0.608zm13.27-0.814zm-14.5,0.24zm3.51-0.661zm-5.63-0.286zm17.5-0.735c0.47-1.524,2.41-3.786,0.99-3.743,3.69-0.781,0.85,1.257,0.42,3.543,2.48-0.456,3.82-10.563,2.56-8.535-0.93,7.587-0.43-5.934-2.76-5.131,0.73,1.541-6.22,1.882-4.48-0.009-0.1-2.711-2.98-7.476-6.23-9.95,3.28,0.879,6.37,6.586,7.96,9.959,1.43-3.843-6.33-9.943-6-10.534,2.4,1.448,8.09,7.021,3.53,1.408-0.99-1.744-6.27-3.938-1.3-2.14,1.78,1.666,7.31,7.629,3.18,2.181-0.76-3.718-10.23-3.685-4.75-6.829,0.79-3.15,4.5-10.265,3.82-11.216-3.19,1.477,3.02-3.677-0.71-2.201-2.69-0.577-3.57,0.48-0.41,0.223,1.29,2.785-3.91,3.588-3.26,0.011-7.35-0.081-7.05,8.541-6.94,13.745-3.06,5.006-12.88,2.877-15.63,7.765-0.74,5.201,2.88,11.909,7.87,5.813,3.28-2.178,5.77-6.327,8.65-7.843,2.82,0.052,1.67,2.693,5.8,3.752,2.35,1.154,5.09,6.088,1.84,4.569,1.25,3.463,3.76,5.648,3.5,9.54,1.92-0.653,1.44,4.986-0.14,0.882-0.15,0.962,1.93,5.404,2.49,4.74zm-0.4-2.199zm0.09-2.407zm3.52,0.211zm-4.74-6.134zm3.07-1.638zm-11.43-8.999zm-1.24-3.489zm3.52-6.398zm-1.31-0.042zm3.14-4.502zm0-2.13zm0.6-0.778zm-0.56-0.608zm-4.8-2.244zm2.33-0.722zm-10.55,41.427c2.09-1.901,0.15-2.928,0.22-2.567,0.64-6.943-1.89,5.81-1.95-0.172,1.21-4.798-2.06-2.684-1.73-0.78-2.96-2.157,3.58,5.713,3.46,3.519zm-0.34-2.263zm-2.3-0.507zm14.09,0.507zm-16.12-2.7c-0.85-2.691-0.73-2.76,0.47-1.711,2.69-2.567-2.17-0.216,0.26-3.117,3.54-0.062,1.92,5.57,2.86,0.256,0.92-2.793,2.11-8.138-2.22-4.227-3.65,0.708-3.43,7.869-1.37,8.799zm-0.86-4.525zm17.1,4.041c2.74-4.011-1.05-4.045-1.59-2.691-0.67-2.235,7.12-3.356,0.7-3.966-2.01,2.365-0.83,4.029,0.12,6.678-0.92,0.797,0.76,1.116,0.77-0.021zm-1.13-5.232zm-3.97,4.848zm8.03,0.526zm-14-0.989zm12.64-0.148c1.19-2.489-0.87-6.203-0.25-2.128-0.76,0.289-0.82,3.848,0.25,2.128zm1.66-0.725zm-5.32-3.935c-0.96-1.302,0.43-5.475-1.57-1.869-0.52-0.44-2.06,1.709-1.05-1.931,0.69-1.855-3.43-5.943-1.56-1.744,1.45,2.221,0.13,7.732,2.36,5.677-1.19,3.591,2.13-1.639,0.66,2.126,0.81-0.296,0.87-1.579,1.16-2.259zm-7.88,1.202zm2.71-0.272zm18.23-1.574c-1.48-3.111,0.31-6.392-1.22-7.493-2.92-4.395-3.05,7.292-1.16,3.818-3.38-3.834,2.33-4.719,0.47-2.533-1.29-0.263-0.38,2.221,0.37,1.184-0.56,1.063,1.2,7.036,1.54,5.024zm-21.6,0.389zm2.3-0.673c-1.49-0.005,0.77-2.184-1.52-0.271-0.09,0.798,1.25,0.778,1.52,0.271zm1.99,0.054zm-25.3-1.694zm3.67,0.118c1.97-1.146-1.26-0.601,1-1.995-2.4-0.193-5.7,2.944-1,1.995zm4.3-0.69c-0.36-4.705-1.62-2.487-0.67,0.618,0.37,0.338,0.64-0.415,0.67-0.618zm13.82,0.42zm1.66-0.283zm-16.87-0.941zm-9.75-0.678zm25.43,0.153zm6.53,0.058zm-5.02-0.134zm9.38-0.143zm-30.98-0.846c3.73-2.006-1.83-2.412-1.18-1.445,0.23-0.087,0.05,4.156,1.18,1.445zm-13.54,0.313c2.25-1.034,4.71-2.709,0.05-1.695-3.06,0.012-4.51,2.543-0.05,1.695zm0.03-0.972zm10.55,0.43zm-6.32,0.305zm3.64-0.598zm9.75,0.453zm22.36-0.159c1.92,0.16-2.12-0.711-0.33,0.111l0.33-0.111zm2.5,0.397zm12.45-2.298c3.09-4.364,4.75-7.99,5.1-11.035,1.17-4.263-2.99-10.455-6.81-9.774,3.3,0.379,2.31,2.315,4.51,3.56,1.02,2.691-0.36,3.899,0.74,4.96,1.38,2.316,1.07,0.837-0.89,1.794-0.29,1.194-1.26-2.244-1.94,1.289-3.41-0.177,0.5-1.44,0.82-3.37,2.04,3.276,0.09-6.077-1.56-4.654,1.22-1.671-1.84-0.558-1.27-2.408-1.78,4.003,0.22-2.847-1.52,1.172-1.75,3.046-3.33,8.045-0.12,5.31,2.17-4.923,1.31-0.357,0,2.297-1.37-1.04-0.95-1.401-2.86,0.168-0.89,1.737-2.11,5.343,0.12,2.097-0.31,2.071,1.47,1.882,1.68,1.724,0.19-2.098,4.08-0.797,2.25,1.286-2.97-2.22-0.05,4.435-3.38,0.764-1.59-1.025,0.06,2.243,2.14,2.332,3.26-0.032,0.46,7.457,2.99,2.488zm-1.81-3.27zm-1.43-0.305zm2.48-1.096zm2.69-0.577c1.8-1.717-1.96,0.146-0.61-2.129,0.45-4.219,0.95,0.951,0.81,0.238,0.3-2.891,2.38,1.392,0.76,0.687,0.65,0.297-0.75,2.651-0.96,1.204zm-2.13-1.368zm-0.31-1.199zm-5.17-1.977zm5.06-1.844zm4.99-1.798zm-5.03,0.43zm-2.58-2.89zm2.43,0.152zm-58.96,17.131zm15.96-1.215zm-17.08,0.814zm13.07-0.859zm1.69,0.555zm-4.04-0.211zm11.39,0.003zm22.08-0.882zm-22.56-0.957zm-0.49-0.082zm22.82-0.295zm13.26-0.535zm-0.87-0.597zm-2.15-2.358zm-26.21-0.474zm26.77-0.631zm-25.72-0.269zm2.78-1.626zm-2.46-1.834zm2.19-1.475zm-0.67,0.664zm-2.32-0.741zm2.93-2.32zm-17.65-0.893zm16.57-1.416zm10.4-1.094zm-11.45-0.246zm1.15-0.347zm-24.58-0.396zm34.58-1.45zm20.86,0.792zm-31.25-0.715zm-30.07-4.336zm18.36-0.258zm53.04-5.988c1.5-5.207,1.19-14.231-2.24-16.276,2.87,4.949,1.25,10.413-0.66,15.397,0.23,3.498,3.01,6.894,2.9,0.879zm-53.04,2.678zm22.51-1.369zm-8.22-1.463zm9.13-8.879zm0.76-0.761zm-0.91-1.217zm15.66-3.346c-1.89-2.162-3.08-4.936-2.39-8.0387-2.37-1.9045-9.4-2.0434-5.68,1.8477,1.33-0.6548,5.12,7.193,8.07,6.191zm12.41-5.339zm-3.78-0.146zm1.82-1.6493c7.47,1.0245-3.66-2.2752-2.46,0.2065,0.79-0.2777,1.64-0.224,2.46-0.2065zm4.05-1.5215c-2.38-2.4059-8.62-2.5656-2.25-0.6056,0.39-0.0295,2.86,2.1469,2.25,0.6056zm-5.99-0.9077zm6.7-0.9039c-1.05-2.6216-8.7-2.745-2.67-0.784,0.73-0.2943,3.07,2.6033,2.67,0.784zm-67.31,27.014zm1.2-0.019zm6.96-0.642c0.52-2.798,6.75-0.164,1.37-0.022l-1.37,0.022zm1.41-0.58zm-7.35,0.208zm-2.13-0.566zm4.41-0.034c-4.06,0.368-3.98-2.948-3.61-5.322-0.85,0.793,2.04-5.422-1.31-4.523,1.11-3.037-2.37,0.117-2.36-2.769-0.59,2.782-0.07-2.511-2.72-0.406-1.67-1.905-0.59-10.205,0.7-6.456,1.16-2.5712,5.04-2.3132,7.74-1.6191,2.21,0.7971,8.55-1.6254,5.13,0.6121,0.22,0.938,8.73-1.0241,3.08,0.118-2.39,0.173-3.86,2.191-1.78,2.615-2.54,1.935-4.26-2.363-5.05,2.057-3.02,1.626,0.38,4.854,0.22,7.825-2-5.451-0.16,3.9,1.2,5.085,2.83,2.483,2.28,3.402-1.24,2.783zm-2.28-2.442zm-2.66-15.818c2.58,0.263,0.01-2.7269-0.62-1.673,1.62,1.225-2.51,2.832,0.62,1.673zm2.29-0.988zm4.94-0.176zm-8.53-0.339zm3.4-1.4421zm11.43,21.286zm-16.84-1.875zm33.72,0.459zm-13.25-0.118c-2.46-4.069,6-4.041,2.61-2.268-0.86,4.798-1.15-2.368-1.39,2.355l-0.46,0.141-0.76-0.228zm4.86-0.888zm-16.01-1.447zm19.62,0.448c0.96-3.378,6.35,0.725,1.39-0.722-0.45,0.148-0.81,1.123-1.39,0.722zm-2.39-0.894zm-23.86-0.083zm37.26-0.454zm-42.3-1.524zm28.01-1.391c-4.11-4.092,4.65,1.826,1.58,1.572-0.6-0.441-1.07-1.029-1.58-1.572zm-23.76-0.079c-2.02-2.201,4.74-0.051-0.01,0.329l0.01-0.329zm-3.64-0.659zm35.84-1.014zm-33-0.743zm18.8-2.331c-2.55-3.038,5.47-3.996,0.22-1.59-0.1,3.906,1.42-3.759,4.17-0.092,2.93,0.373-5.29-0.049-2.4,0.649,5.71-1.122,0.15,4.002-1.99,1.033zm4.79,0.669zm-17.05-0.333zm18.4-0.622c-3.22-3.203,0.91-1.51,0.31,0.318l-0.22-0.093-0.09-0.225zm1.6-1.1c-0.61-1.418,5.35,0.922,0.62,0.105l-0.62-0.105zm-1.22-3.651zm-3.27-0.851c-6.2-1.265,0.19-0.852,2.26,0.24-0.76,0.014-1.51-0.137-2.26-0.24zm-5.02-1.667zm1.91,0.103zm-21.37-1.3375zm18.16,0.1188c-4.61-0.2578-1.89-2.3707,0.26-0.4972-0.29-1.5971,3.16-0.1293-0.26,0.4972zm-11.09-0.9111zm4.96-0.5004c1.4-2.6223,0.52,2.3152,0-0.0001v0.0001zm-6.78,0.1962zm3.95-1.0253zm-9.59-1.2487zm1.98-0.2695c-2.04,0.7421-4.42-3.3555-1.4-2.3097-1.65,1.8686,6.08,0.1224,1.32,1.5497,0.79-0.0983,0.72,2.0665,0.08,0.76zm2.14-1.1066zm3.01-1.033z" transform="translate(10, 1306.698535) "/>
- <rect id="d0e151" display="none" height="1000px" width="288" y="1450.2" x="10"/>
+ <text id="tracing-f06-ja.svgtext2885" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1338.2099225) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="128.33766" x="81.327339" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f06-ja.svgtspan2886" y="128.33766" x="81.327339" role="line">オリジナル画像</tspan></text>
+ <text id="tracing-f06-ja.svgtext2888" style="writing-mode:lr-tb;text-anchor:middle;" font-weight="bold" display="block" sodipodi:linespacing="100.00000%" transform="translate(10, 1338.2099225) " font-style="normal" font-stretch="normal" xml:space="preserve" line-height="100.00000%" font-size="6.0000000" font-variant="normal" y="124.67367" x="227.35374" font-family="Bitstream Vera Sans" sodipodi:insensitive="true" fill="#000000"><tspan id="tracing-f06-ja.svgtspan2889" y="124.67367" x="227.35374" role="line">トレースイメージ / 出力パス - 簡略化</tspan><tspan id="tracing-f06-ja.svgtspan2891" y="130.67367" x="227.35374" role="line">(384 ノード)</tspan></text>
+ <image id="tracing-f06-ja.svgimage1855" sodipodi:absref="/oldguitar.jpg" xlink:href="oldguitar.jpg" transform="translate(10, 1338.2099225) " height="115.89" width="83.347" y="0.058779" x="39.654"/>
+ <path id="tracing-f06-ja.svgpath1856" d="M185.36,89.642v-26.312c2.75,0.214-1.46-0.484-0.01-2.745,0.01-9.174,0.03-18.348,0.04-27.522,3.14-0.382,3.52-0.813,5.15-0.14-0.1-0.543,6.61,1.062,4.27-1.007,2.32,0.05,5.04-0.393,1.89,1.17,3.75-0.672,7.61-2.582,11.13-0.349,5.33,0.097,3.03,0.037,1.6-1.05,3.17-0.429-6.19-0.139-1.76-0.086,2.08-2.801,9.63,3.884,6.92-3.22,1.56-0.493,1.39,6.127,2.89,0.699,2.56-3.733,2.4,3.493,6.37,1.604,1.07-3.701-4.17-6.684-7.12-8.166,2.81,1.684,5.26,0.793,2.17-2.023-0.34-3.194,5.23,3.836,8,3.024,4.33,1.742-7.33,2.644-0.51,2.855,1.09,1.705,4.84,6.01,3.95,0.683-0.04-1.819-0.23-10.127-1.49-4.793-3.46-0.879-5.06-4.836-7.71-4.155-0.62-1.477,1.16-1.504,1.74-2.567-0.82,2.324,6.49,3.348,5.91,0.852-1.43-2.129-5.79,1.75-4.95-1.772,4.54,0.377,2.67-2.664,0.35-2.344-1.5,1.835-9.89,3.443-8.62,2.425,1.63-1.707,7.28-1.237,9.99-4.7142,4.79-2.7554,9.75-5.3947,15.44-3.8839,1.82-1.8037-1.44-7.1732,2.88-5.9164,5.09,0.1172,10.31-0.5425,15.28,0.3304,3.71-0.4323,11.96-2.1157,9.38,4.9761,0.07,36.819,0.1,73.64-0.14,110.46h-83.04v-26.308zm6.98,25.118zm2.36-1.64zm1.18-0.13zm-2.31-0.51zm-1.8,0.2c1.25-4.6,5.42-9.67,10.05-9.89,1.46-2.07-0.48-5.022-0.08-7.207-4.92-4.349-3.53,8.547-7.62,10.687-2.95,0.78-3.96,5.99-2.35,6.41zm55.06-3.05zm-1.72-0.17zm-1.33-2zm2.27-1.53zm-2.59-1.19zm2.43-0.36zm-7.49-2.42zm6.03-0.21zm-8.58-0.59c-3.11-1.194-2.11-3.874-3.74-4.116,2.63,0.914,2.1,2.124,4.87,1.989,3.48,2.777,6.6,0.793,10.04,1.597-2.31-2.311-8.5,0.46-11.59-3.244-7.35-3.872-13.34-10.542-21.9-11.762-3.12-1.3-9.61-4.182-9.7-6.483,3.78-4.319-6.22-0.693-7.05,1.356-4.07,3.426,2.15,9.561,3.33,8.707,1.3-2.198,1.89,0.297,0.24,0.76,0.88-0.786,6.31,2.681,2.61-1.175-2.48-1.531-3.67-1.488-2.15-2.992,2.87-0.736,4.68,6.909,4.42,2.247,1.83,1.796,5.58,4.532,5.56,0.741,0.52,0.625,4.94,3.58,8.1,4.86,1.02-2.932,3.16,2.699-0.02,0.955,3.2,2.982,9.7,2.899,13.91,5.44,1.06-0.077,2.23,1.74,3.07,1.12zm-5.78-3.458zm-1.21-0.608c-2.07,0.726-4.67-3.14-3.17-1.996-1.02,0.642,5.87,2.494,3.17,1.996zm-4.95-1.242c-2.89-0.68-0.27-2.401,0.59,0.288l-0.59-0.288zm-2.35-1.326zm2.35-0.067zm-21.82-4.495zm2.54-3.073zm1.46,11.779c2.71-0.829,6.9-1.752,1.5-2.043-2.64-1.777-6.75,0.069-3.54,2.587l0.88-0.136,1.16-0.408zm12.42-3.575zm-4.25-1.043zm1.44-0.38zm-7.53-2.966zm23.58-8.213zm-3.35-0.608zm13.27-0.814zm-14.5,0.24zm3.51-0.661zm-5.63-0.286zm17.5-0.735c0.47-1.524,2.41-3.786,0.99-3.743,3.69-0.781,0.85,1.257,0.42,3.543,2.48-0.456,3.82-10.563,2.56-8.535-0.93,7.587-0.43-5.934-2.76-5.131,0.73,1.541-6.22,1.882-4.48-0.009-0.1-2.711-2.98-7.476-6.23-9.95,3.28,0.879,6.37,6.586,7.96,9.959,1.43-3.843-6.33-9.943-6-10.534,2.4,1.448,8.09,7.021,3.53,1.408-0.99-1.744-6.27-3.938-1.3-2.14,1.78,1.666,7.31,7.629,3.18,2.181-0.76-3.718-10.23-3.685-4.75-6.829,0.79-3.15,4.5-10.265,3.82-11.216-3.19,1.477,3.02-3.677-0.71-2.201-2.69-0.577-3.57,0.48-0.41,0.223,1.29,2.785-3.91,3.588-3.26,0.011-7.35-0.081-7.05,8.541-6.94,13.745-3.06,5.006-12.88,2.877-15.63,7.765-0.74,5.201,2.88,11.909,7.87,5.813,3.28-2.178,5.77-6.327,8.65-7.843,2.82,0.052,1.67,2.693,5.8,3.752,2.35,1.154,5.09,6.088,1.84,4.569,1.25,3.463,3.76,5.648,3.5,9.54,1.92-0.653,1.44,4.986-0.14,0.882-0.15,0.962,1.93,5.404,2.49,4.74zm-0.4-2.199zm0.09-2.407zm3.52,0.211zm-4.74-6.134zm3.07-1.638zm-11.43-8.999zm-1.24-3.489zm3.52-6.398zm-1.31-0.042zm3.14-4.502zm0-2.13zm0.6-0.778zm-0.56-0.608zm-4.8-2.244zm2.33-0.722zm-10.55,41.427c2.09-1.901,0.15-2.928,0.22-2.567,0.64-6.943-1.89,5.81-1.95-0.172,1.21-4.798-2.06-2.684-1.73-0.78-2.96-2.157,3.58,5.713,3.46,3.519zm-0.34-2.263zm-2.3-0.507zm14.09,0.507zm-16.12-2.7c-0.85-2.691-0.73-2.76,0.47-1.711,2.69-2.567-2.17-0.216,0.26-3.117,3.54-0.062,1.92,5.57,2.86,0.256,0.92-2.793,2.11-8.138-2.22-4.227-3.65,0.708-3.43,7.869-1.37,8.799zm-0.86-4.525zm17.1,4.041c2.74-4.011-1.05-4.045-1.59-2.691-0.67-2.235,7.12-3.356,0.7-3.966-2.01,2.365-0.83,4.029,0.12,6.678-0.92,0.797,0.76,1.116,0.77-0.021zm-1.13-5.232zm-3.97,4.848zm8.03,0.526zm-14-0.989zm12.64-0.148c1.19-2.489-0.87-6.203-0.25-2.128-0.76,0.289-0.82,3.848,0.25,2.128zm1.66-0.725zm-5.32-3.935c-0.96-1.302,0.43-5.475-1.57-1.869-0.52-0.44-2.06,1.709-1.05-1.931,0.69-1.855-3.43-5.943-1.56-1.744,1.45,2.221,0.13,7.732,2.36,5.677-1.19,3.591,2.13-1.639,0.66,2.126,0.81-0.296,0.87-1.579,1.16-2.259zm-7.88,1.202zm2.71-0.272zm18.23-1.574c-1.48-3.111,0.31-6.392-1.22-7.493-2.92-4.395-3.05,7.292-1.16,3.818-3.38-3.834,2.33-4.719,0.47-2.533-1.29-0.263-0.38,2.221,0.37,1.184-0.56,1.063,1.2,7.036,1.54,5.024zm-21.6,0.389zm2.3-0.673c-1.49-0.005,0.77-2.184-1.52-0.271-0.09,0.798,1.25,0.778,1.52,0.271zm1.99,0.054zm-25.3-1.694zm3.67,0.118c1.97-1.146-1.26-0.601,1-1.995-2.4-0.193-5.7,2.944-1,1.995zm4.3-0.69c-0.36-4.705-1.62-2.487-0.67,0.618,0.37,0.338,0.64-0.415,0.67-0.618zm13.82,0.42zm1.66-0.283zm-16.87-0.941zm-9.75-0.678zm25.43,0.153zm6.53,0.058zm-5.02-0.134zm9.38-0.143zm-30.98-0.846c3.73-2.006-1.83-2.412-1.18-1.445,0.23-0.087,0.05,4.156,1.18,1.445zm-13.54,0.313c2.25-1.034,4.71-2.709,0.05-1.695-3.06,0.012-4.51,2.543-0.05,1.695zm0.03-0.972zm10.55,0.43zm-6.32,0.305zm3.64-0.598zm9.75,0.453zm22.36-0.159c1.92,0.16-2.12-0.711-0.33,0.111l0.33-0.111zm2.5,0.397zm12.45-2.298c3.09-4.364,4.75-7.99,5.1-11.035,1.17-4.263-2.99-10.455-6.81-9.774,3.3,0.379,2.31,2.315,4.51,3.56,1.02,2.691-0.36,3.899,0.74,4.96,1.38,2.316,1.07,0.837-0.89,1.794-0.29,1.194-1.26-2.244-1.94,1.289-3.41-0.177,0.5-1.44,0.82-3.37,2.04,3.276,0.09-6.077-1.56-4.654,1.22-1.671-1.84-0.558-1.27-2.408-1.78,4.003,0.22-2.847-1.52,1.172-1.75,3.046-3.33,8.045-0.12,5.31,2.17-4.923,1.31-0.357,0,2.297-1.37-1.04-0.95-1.401-2.86,0.168-0.89,1.737-2.11,5.343,0.12,2.097-0.31,2.071,1.47,1.882,1.68,1.724,0.19-2.098,4.08-0.797,2.25,1.286-2.97-2.22-0.05,4.435-3.38,0.764-1.59-1.025,0.06,2.243,2.14,2.332,3.26-0.032,0.46,7.457,2.99,2.488zm-1.81-3.27zm-1.43-0.305zm2.48-1.096zm2.69-0.577c1.8-1.717-1.96,0.146-0.61-2.129,0.45-4.219,0.95,0.951,0.81,0.238,0.3-2.891,2.38,1.392,0.76,0.687,0.65,0.297-0.75,2.651-0.96,1.204zm-2.13-1.368zm-0.31-1.199zm-5.17-1.977zm5.06-1.844zm4.99-1.798zm-5.03,0.43zm-2.58-2.89zm2.43,0.152zm-58.96,17.131zm15.96-1.215zm-17.08,0.814zm13.07-0.859zm1.69,0.555zm-4.04-0.211zm11.39,0.003zm22.08-0.882zm-22.56-0.957zm-0.49-0.082zm22.82-0.295zm13.26-0.535zm-0.87-0.597zm-2.15-2.358zm-26.21-0.474zm26.77-0.631zm-25.72-0.269zm2.78-1.626zm-2.46-1.834zm2.19-1.475zm-0.67,0.664zm-2.32-0.741zm2.93-2.32zm-17.65-0.893zm16.57-1.416zm10.4-1.094zm-11.45-0.246zm1.15-0.347zm-24.58-0.396zm34.58-1.45zm20.86,0.792zm-31.25-0.715zm-30.07-4.336zm18.36-0.258zm53.04-5.988c1.5-5.207,1.19-14.231-2.24-16.276,2.87,4.949,1.25,10.413-0.66,15.397,0.23,3.498,3.01,6.894,2.9,0.879zm-53.04,2.678zm22.51-1.369zm-8.22-1.463zm9.13-8.879zm0.76-0.761zm-0.91-1.217zm15.66-3.346c-1.89-2.162-3.08-4.936-2.39-8.0387-2.37-1.9045-9.4-2.0434-5.68,1.8477,1.33-0.6548,5.12,7.193,8.07,6.191zm12.41-5.339zm-3.78-0.146zm1.82-1.6493c7.47,1.0245-3.66-2.2752-2.46,0.2065,0.79-0.2777,1.64-0.224,2.46-0.2065zm4.05-1.5215c-2.38-2.4059-8.62-2.5656-2.25-0.6056,0.39-0.0295,2.86,2.1469,2.25,0.6056zm-5.99-0.9077zm6.7-0.9039c-1.05-2.6216-8.7-2.745-2.67-0.784,0.73-0.2943,3.07,2.6033,2.67,0.784zm-67.31,27.014zm1.2-0.019zm6.96-0.642c0.52-2.798,6.75-0.164,1.37-0.022l-1.37,0.022zm1.41-0.58zm-7.35,0.208zm-2.13-0.566zm4.41-0.034c-4.06,0.368-3.98-2.948-3.61-5.322-0.85,0.793,2.04-5.422-1.31-4.523,1.11-3.037-2.37,0.117-2.36-2.769-0.59,2.782-0.07-2.511-2.72-0.406-1.67-1.905-0.59-10.205,0.7-6.456,1.16-2.5712,5.04-2.3132,7.74-1.6191,2.21,0.7971,8.55-1.6254,5.13,0.6121,0.22,0.938,8.73-1.0241,3.08,0.118-2.39,0.173-3.86,2.191-1.78,2.615-2.54,1.935-4.26-2.363-5.05,2.057-3.02,1.626,0.38,4.854,0.22,7.825-2-5.451-0.16,3.9,1.2,5.085,2.83,2.483,2.28,3.402-1.24,2.783zm-2.28-2.442zm-2.66-15.818c2.58,0.263,0.01-2.7269-0.62-1.673,1.62,1.225-2.51,2.832,0.62,1.673zm2.29-0.988zm4.94-0.176zm-8.53-0.339zm3.4-1.4421zm11.43,21.286zm-16.84-1.875zm33.72,0.459zm-13.25-0.118c-2.46-4.069,6-4.041,2.61-2.268-0.86,4.798-1.15-2.368-1.39,2.355l-0.46,0.141-0.76-0.228zm4.86-0.888zm-16.01-1.447zm19.62,0.448c0.96-3.378,6.35,0.725,1.39-0.722-0.45,0.148-0.81,1.123-1.39,0.722zm-2.39-0.894zm-23.86-0.083zm37.26-0.454zm-42.3-1.524zm28.01-1.391c-4.11-4.092,4.65,1.826,1.58,1.572-0.6-0.441-1.07-1.029-1.58-1.572zm-23.76-0.079c-2.02-2.201,4.74-0.051-0.01,0.329l0.01-0.329zm-3.64-0.659zm35.84-1.014zm-33-0.743zm18.8-2.331c-2.55-3.038,5.47-3.996,0.22-1.59-0.1,3.906,1.42-3.759,4.17-0.092,2.93,0.373-5.29-0.049-2.4,0.649,5.71-1.122,0.15,4.002-1.99,1.033zm4.79,0.669zm-17.05-0.333zm18.4-0.622c-3.22-3.203,0.91-1.51,0.31,0.318l-0.22-0.093-0.09-0.225zm1.6-1.1c-0.61-1.418,5.35,0.922,0.62,0.105l-0.62-0.105zm-1.22-3.651zm-3.27-0.851c-6.2-1.265,0.19-0.852,2.26,0.24-0.76,0.014-1.51-0.137-2.26-0.24zm-5.02-1.667zm1.91,0.103zm-21.37-1.3375zm18.16,0.1188c-4.61-0.2578-1.89-2.3707,0.26-0.4972-0.29-1.5971,3.16-0.1293-0.26,0.4972zm-11.09-0.9111zm4.96-0.5004c1.4-2.6223,0.52,2.3152,0-0.0001v0.0001zm-6.78,0.1962zm3.95-1.0253zm-9.59-1.2487zm1.98-0.2695c-2.04,0.7421-4.42-3.3555-1.4-2.3097-1.65,1.8686,6.08,0.1224,1.32,1.5497,0.79-0.0983,0.72,2.0665,0.08,0.76zm2.14-1.1066zm3.01-1.033z" transform="translate(10, 1338.2099225) "/>
+ <rect id="d0e151" display="none" height="1000px" width="288" y="1481.7" x="10"/>
<flowRoot style="writing-mode:lr-tb;text-anchor:start;text-align:start;" font-weight="normal" font-size="8" font-style="normal" font-stretch="normal" font-variant="normal" font-family="Serif" line-height="133.00000%" fill="#000000">
<flowRegion>
<use y="0" x="0" xlink:href="#d0e151"/>
</flowRegion>
<flowDiv xml:space="preserve">描写はすこしだけ似ていてラフですが、描画はよりシンプルになり、編集しやすくなっています。トレースは画像を忠実に描写するのではなく、あなたが作品を描画する中で使用する一連の曲線を作成するものであることを忘れないでください。</flowDiv>
</flowRoot>
- <g transform="translate(0, 1500.161442)">
+ <g transform="translate(0, 1535.5378655)">
<defs id="defs3" xmlns:cc="http://creativecommons.org/ns#">
<linearGradient id="linearGradient2465" y2="-7528.7" xlink:href="#linearGradient841" gradientUnits="userSpaceOnUse" x2="76.847" gradientTransform="matrix(2.149642,0.000000,0.000000,0.465194,-0.130153,3495.428)" y1="-7656.4" x1="76.847" inkscape:collect="always"/>
<filter id="filter56" height="1.2" width="1.2" color-interpolation-filters="sRGB" y="-0.1" x="-0.1" inkscape:label="Drop shadow, custom">