Hull and Minkowski operations using OpenSCAD

This commit is contained in:
Keith Sloan
2013-10-30 10:04:34 +01:00
committed by Sebastian Hoogen
parent 7336a31e44
commit bcb7d02c05
12 changed files with 11930 additions and 9374 deletions

View File

@@ -1,11 +1,14 @@
<RCC>
<qresource>
<qresource>
<file>icons/preferences-openscad.svg</file>
<file>icons/OpenSCAD_AddOpenSCADElement.svg</file>
<file>icons/OpenSCAD_ColorCodeShape.svg</file>
<file>icons/OpenSCAD_RefineShapeFeature.svg</file>
<file>icons/OpenSCAD_ReplaceObject.svg</file>
<file>icons/OpenSCAD_RemoveSubtree.svg</file>
<file>icons/OpenSCAD_MeshBooleans.svg</file>
<file>icons/OpenSCAD_Hull.svg</file>
<file>icons/OpenSCAD_Minkowski.svg</file>
<file>ui/openscadprefs-base.ui</file>
<file>translations/OpenSCAD_tr.qm</file>
<file>translations/OpenSCAD_sv-SE.qm</file>
@@ -31,4 +34,4 @@
<file>translations/OpenSCAD_it.qm</file>
<file>translations/OpenSCAD_pt-PT.qm</file>
</qresource>
</RCC>
</RCC>

View File

@@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2568"
sodipodi:version="0.32"
inkscape:version="0.48.2 r9819"
sodipodi:docname="Hull.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2570">
<linearGradient
id="linearGradient3768">
<stop
style="stop-color:#71b2f8;stop-opacity:1;"
offset="0"
id="stop3770" />
<stop
style="stop-color:#002795;stop-opacity:1;"
offset="1"
id="stop3772" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3768"
id="radialGradient3552"
gradientUnits="userSpaceOnUse"
cx="48.645836"
cy="25.149042"
fx="48.645836"
fy="25.149042"
r="19.571428" />
<linearGradient
id="linearGradient3593">
<stop
style="stop-color:#c8e0f9;stop-opacity:1;"
offset="0"
id="stop3595" />
<stop
style="stop-color:#637dca;stop-opacity:1;"
offset="1"
id="stop3597" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3599"
gradientUnits="userSpaceOnUse"
cx="51.637894"
cy="24.962704"
fx="51.637894"
fy="24.962704"
r="19.571428" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2576" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3768"
id="linearGradient3780"
x1="8.272727"
y1="15.363636"
x2="32"
y2="15.363636"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3768"
id="linearGradient3790"
x1="38.454544"
y1="44"
x2="57.090908"
y2="44"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11"
inkscape:cx="17.948847"
inkscape:cy="28.410725"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="947"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata2573">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3560"
transform="translate(8.7385455e-2,-0.7238878)">
<path
transform="matrix(0.9153551,0,0,0.3021994,-4.6085053,28.76682)"
d="m 71.785715,34.571426 c 0,10.256717 -8.314712,18.571429 -18.571428,18.571429 -10.256717,0 -18.571428,-8.314712 -18.571428,-18.571429 0,-10.256716 8.314711,-18.571428 18.571428,-18.571428 10.256716,0 18.571428,8.314712 18.571428,18.571428 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path3558"
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.0092422,0,0,1.0092422,-12.598958,-12.283801)"
d="m 71.785715,34.571426 c 0,10.256717 -8.314712,18.571429 -18.571428,18.571429 -10.256717,0 -18.571428,-8.314712 -18.571428,-18.571429 0,-10.256716 8.314711,-18.571428 18.571428,-18.571428 10.256716,0 18.571428,8.314712 18.571428,18.571428 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path2768"
style="opacity:1;fill:url(#radialGradient3599);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.17985344000000003;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.1483533,0,0,0.3791225,-28.823086,42.536051)"
d="m 71.785715,34.571426 c 0,10.256717 -8.314712,18.571429 -18.571428,18.571429 -10.256717,0 -18.571428,-8.314712 -18.571428,-18.571429 0,-10.256716 8.314711,-18.571428 18.571428,-18.571428 10.256716,0 18.571428,8.314712 18.571428,18.571428 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path3554"
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.12939,0,0,1.12939,-36.028256,1.4553754)"
d="m 71.785715,34.571426 c 0,10.256717 -8.314712,18.571429 -18.571428,18.571429 -10.256717,0 -18.571428,-8.314712 -18.571428,-18.571429 0,-10.256716 8.314711,-18.571428 18.571428,-18.571428 10.256716,0 18.571428,8.314712 18.571428,18.571428 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path3550"
style="opacity:1;fill:url(#radialGradient3552);fill-opacity:1.0;fill-rule:evenodd;stroke:#000137;stroke-width:1.94795417999999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
</g>
<path
style="fill:url(#linearGradient3780);fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 9.2727273,24.818182 C 18.121559,15.994395 19.315866,14.909228 28.454545,7.9090909 26.939394,9.6060606 27.969697,7.7575757 26.727273,10.545454 c -1.606061,1.878788 -3.030304,5.666668 -2.545455,8.09091 -2.818182,0.30303 -4.636363,0.696969 -7,1.454545 -2.636363,1.030303 -5.363636,2.878788 -7.7272725,4.818182"
id="path2998"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:url(#linearGradient3790);fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 39.454545,54.545455 56.090909,33.454545 C 52.80998,36.606291 49.452023,39.475597 45.454546,40 43.924449,51.42576 41.260682,49.912373 39.454545,54.545455 z"
id="path3782"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<text
xml:space="preserve"
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-opacity:1;font-family:Century Schoolbook L;-inkscape-font-specification:Century Schoolbook L Medium"
x="14.372282"
y="47.264793"
id="text3792"
sodipodi:linespacing="125%"
transform="scale(0.93174328,1.073257)"><tspan
sodipodi:role="line"
id="tspan3794"
x="14.372282"
y="47.264793"
style="stroke-width:1;stroke:none">H</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2568"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
sodipodi:docname="OpenSCAD_MeshBooleans.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2570">
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71f873;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#009520;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3552"
gradientUnits="userSpaceOnUse"
cx="48.645836"
cy="25.149042"
fx="48.645836"
fy="25.149042"
r="19.571428" />
<linearGradient
id="linearGradient3593">
<stop
style="stop-color:#c8f9d7;stop-opacity:1;"
offset="0"
id="stop3595" />
<stop
style="stop-color:#63ca72;stop-opacity:1;"
offset="1"
id="stop3597" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3599"
gradientUnits="userSpaceOnUse"
cx="51.63789367675781"
cy="24.96270370483398"
fx="51.63789367675781"
fy="24.96270370483398"
r="19.5714282989502" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2576" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="28.11631962809919"
inkscape:cy="29.81818181818181"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="966"
inkscape:window-height="684"
inkscape:window-x="286"
inkscape:window-y="142"
inkscape:window-maximized="0" />
<metadata
id="metadata2573">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3780">
<path
transform="matrix(0.9153551,0,0,0.3021994,-4.521119845000002,28.0429322)"
d="m 71.78571510314941,34.57142639160156 a 18.57142829895019,18.57142829895019 0 1 1 -37.14285659790039,0 18.57142829895019,18.57142829895019 0 1 1 37.14285659790039,0 z"
sodipodi:ry="18.5714282989502"
sodipodi:rx="18.5714282989502"
sodipodi:cy="34.57142639160156"
sodipodi:cx="53.21428680419922"
id="path3558"
style="opacity:0.6652360505;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.1483533,0,0,0.3791225,-28.735700545,41.8121632)"
d="m 71.78571510314941,34.57142639160156 a 18.57142829895019,18.57142829895019 0 1 1 -37.14285659790039,0 18.57142829895019,18.57142829895019 0 1 1 37.14285659790039,0 z"
sodipodi:ry="18.5714282989502"
sodipodi:rx="18.5714282989502"
sodipodi:cy="34.57142639160156"
sodipodi:cx="53.21428680419922"
id="path3554"
style="opacity:0.6652360505;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="path3772"
d="M 59.67865278080046,26.6852017615018 52.71578497472754,39.06910016108945 38.70426737424912,44.75049625896224 23.10904762434138,37.80185807558856 17.54806378587958,26.6852017615018 20.119273174984,14.04461978738622 27.4622884574563,6.138965495725559 38.70426737424912,2.801725445859524 53.93362423880439,9.576246488586459 z"
style="fill:#67ff67;fill-opacity:1;fill-rule:evenodd;stroke:#47a151;stroke-width:2.20000004770000010;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;stroke:#32a032;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 27.45454545454545,7.272727272727268 26.1818181818182,4.000000000000003 -33.0909090909091,4 38.90909090909092,12.36363636363638 -41.45454545454547,0 34.36363636363637,11.63636363636362 -29.0909090909091,-1.27272727272727"
id="path3774"
inkscape:connector-curvature="0" />
<path
style="fill:#00af00;fill-opacity:1;fill-rule:evenodd;stroke:#003706;stroke-width:2.2000000477;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 45.13319823534591,42.6852017615018 38.17033042927297,55.06910016108946 24.15881282879458,60.75049625896225 8.563593078886837,53.80185807558857 3.002609240425043,42.6852017615018 5.573818629529458,30.04461978738622 l 7.343015282472313,-7.90565429166066 11.2419789167928,-3.33724004986603 15.22935686455528,6.77452104272693 z"
id="path3768"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
inkscape:connector-curvature="0"
id="path3770"
d="m 12.90909090909091,22.36363636363636 26.18181818181819,4 -33.0909090909091,4 38.90909090909092,12.36363636363638 -41.454545454545467,0 L 37.81818181818182,54.36363636363636 8.727272727272726,53.0909090909091"
style="fill:none;stroke:#002f00;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -0,0 +1,207 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2568"
sodipodi:version="0.32"
inkscape:version="0.48.2 r9819"
sodipodi:docname="Minkowski.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2570">
<linearGradient
id="linearGradient3768">
<stop
style="stop-color:#71b2f8;stop-opacity:1;"
offset="0"
id="stop3770" />
<stop
style="stop-color:#002795;stop-opacity:1;"
offset="1"
id="stop3772" />
</linearGradient>
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3768"
id="radialGradient3552"
gradientUnits="userSpaceOnUse"
cx="48.645836"
cy="25.149042"
fx="48.645836"
fy="25.149042"
r="19.571428" />
<linearGradient
id="linearGradient3593">
<stop
style="stop-color:#c8e0f9;stop-opacity:1;"
offset="0"
id="stop3595" />
<stop
style="stop-color:#637dca;stop-opacity:1;"
offset="1"
id="stop3597" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3593"
id="radialGradient3599"
gradientUnits="userSpaceOnUse"
cx="51.637894"
cy="24.962704"
fx="51.637894"
fy="24.962704"
r="19.571428" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2576" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3768"
id="linearGradient3780"
x1="8.272727"
y1="15.363636"
x2="32"
y2="15.363636"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3768"
id="linearGradient3790"
x1="38.454544"
y1="44"
x2="57.090908"
y2="44"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11"
inkscape:cx="34.312483"
inkscape:cy="28.410725"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="947"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata2573">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3560"
transform="translate(8.7385455e-2,-0.7238878)">
<path
transform="matrix(0.9153551,0,0,0.3021994,-4.6085053,28.76682)"
d="M 71.785715,34.571426 A 18.571428,18.571428 0 1 1 34.642859,34.571426 A 18.571428,18.571428 0 1 1 71.785715,34.571426 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path3558"
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.0092422,0,0,1.0092422,-12.598958,-12.283801)"
d="M 71.785715,34.571426 A 18.571428,18.571428 0 1 1 34.642859,34.571426 A 18.571428,18.571428 0 1 1 71.785715,34.571426 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path2768"
style="opacity:1;fill:url(#radialGradient3599);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.17985344000000003;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.1483533,0,0,0.3791225,-28.823086,42.536051)"
d="M 71.785715,34.571426 A 18.571428,18.571428 0 1 1 34.642859,34.571426 A 18.571428,18.571428 0 1 1 71.785715,34.571426 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path3554"
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
transform="matrix(1.12939,0,0,1.12939,-36.028256,1.4553754)"
d="M 71.785715,34.571426 A 18.571428,18.571428 0 1 1 34.642859,34.571426 A 18.571428,18.571428 0 1 1 71.785715,34.571426 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path3550"
style="opacity:1;fill:url(#radialGradient3552);fill-opacity:1.0;fill-rule:evenodd;stroke:#000137;stroke-width:1.94795417999999998;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
</g>
<path
style="fill:url(#linearGradient3780);fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 9.2727273,24.818182 C 18.121559,15.994395 22.821858,13.415923 29.363637,7.4545454 c -1.561209,1.6278839 -2.144572,2.4498097 -3,3.8181816 -1.606061,3.395973 -1.757577,5.030304 -2.181819,7.363637 -2.818182,0.30303 -4.636363,0.696969 -7,1.454545 -2.636363,1.030303 -5.363636,2.878788 -7.7272725,4.818182"
id="path2998"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:url(#linearGradient3790);fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 39.454545,54.545455 56.090909,33.454545 C 52.80998,36.606291 49.452023,39.475597 45.454546,40 43.924449,51.42576 41.260682,49.912373 39.454545,54.545455 z"
id="path3782"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<text
xml:space="preserve"
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-opacity:1;font-family:Century Schoolbook L;-inkscape-font-specification:Century Schoolbook L Medium"
x="12.616044"
y="47.518906"
id="text3792"
sodipodi:linespacing="125%"
transform="scale(0.93174328,1.073257)"><tspan
sodipodi:role="line"
id="tspan3794"
x="12.616044"
y="47.518906"
style="font-size:28px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;stroke-width:1;font-family:Century Schoolbook L;-inkscape-font-specification:Century Schoolbook L Medium;stroke:none">M</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.0 KiB