Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • lamp/cs206
  • bwermeil/cs206-2020
  • zabifade/cs206-2020
  • cauderan/cs206-2020
  • malonga/cs206-2020
  • dumoncel/cs206
  • bounekhe/cs206
  • bergerault/cs206
  • flealsan/cs206
  • hsu/cs206
  • mouchel/cs206
  • vebraun/cs206
  • vcanard/cs206
  • ybelghmi/cs206
  • belghmi/cs206
  • bousbina/cs206
  • waked/cs206
  • gtagemou/cs206
  • arahmoun/cs206
  • elhachem/cs206
  • benrahha/cs206
  • benslima/cs206
22 results
Show changes
Showing
with 0 additions and 5217 deletions
labs/lab3-k-means/step3.png

8.36 KiB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
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="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\kmeans\step3.png"
inkscape:export-xdpi="44.18"
inkscape:export-ydpi="44.18"
sodipodi:docname="step3.svg">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4153"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker10709"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path10711" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker9251"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path9253" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4165"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker8251"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path8253"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
inkscape:collect="always"
id="linearGradient8215">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop8217" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop8219" />
</linearGradient>
<linearGradient
id="linearGradient7502"
osb:paint="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop7504" />
</linearGradient>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4494"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:collect="always">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4496" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4147"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8215"
id="linearGradient8221"
x1="119.05175"
y1="385.33261"
x2="145.39577"
y2="385.33261"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.67277217"
inkscape:cx="372.04724"
inkscape:cy="526.1811"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.07530761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
d="m 41.428567,463.79078 646.353683,0"
id="path4138"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4492"
d="m 338.83255,778.33762 0,-646.35368"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.07530761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4494)" />
<circle
style="fill:none;fill-opacity:0.29677418;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke:#000000;stroke-opacity:1"
id="path5826"
cx="475.71429"
cy="179.50507"
r="10" />
<circle
r="10"
cy="245.21935"
cx="505.71429"
id="circle5828"
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5830"
cx="548.57141"
cy="189.50507"
r="10" />
<circle
r="10"
cy="240.93364"
cx="581.42853"
id="circle5832"
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5834"
cx="585.71423"
cy="110.93364"
r="10" />
<circle
r="10"
cy="316.64792"
cx="98.571434"
id="circle5838"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5840"
cx="302.31769"
cy="302.56015"
r="10" />
<circle
r="10"
cy="340.79007"
cx="239.10878"
id="circle5842"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5844"
cx="188.12323"
cy="373.02576"
r="10" />
<circle
r="10"
cy="262.21863"
cx="227.76428"
id="circle5846"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle7532"
cx="70.008804"
cy="691.26898"
r="10"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
r="10"
cy="737.31219"
cx="36.781143"
id="circle7534"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle7536"
cx="181.05341"
cy="695.65546"
r="10"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
r="10"
cy="766.3324"
cx="123.32337"
id="circle7538"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle7540"
cx="137.71626"
cy="630.1972"
r="10"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.5, 7.5;stroke-dashoffset:0;stroke-opacity:1"
d="M 189.82425,65.224411 387.89857,389.70213"
id="path7612"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.5, 7.5;stroke-dashoffset:0;stroke-opacity:1"
d="m 386.88842,387.68183 -171.08084,349.6"
id="path7614"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.5, 7.5;stroke-dashoffset:0;stroke-opacity:1"
d="M 386.88843,389.70213 736.70578,221.52721"
id="path7616"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
transform="scale(1.1239557,0.88971479)"
sodipodi:linespacing="125%"
id="text8211"
y="385.78098"
x="145.59712"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
xml:space="preserve"><tspan
y="385.78098"
x="145.59712"
id="tspan8213"
sodipodi:role="line"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;">X</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="363.9928"
y="221.1528"
id="text8235"
sodipodi:linespacing="125%"
transform="scale(1.1239557,0.88971479)"><tspan
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;"
sodipodi:role="line"
id="tspan8237"
x="363.9928"
y="221.1528">X</tspan></text>
<text
transform="scale(1.1239557,0.88971479)"
sodipodi:linespacing="125%"
id="text8239"
y="556.086"
x="465.5513"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
xml:space="preserve"><tspan
y="556.086"
x="465.5513"
id="tspan8241"
sodipodi:role="line"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;">X</tspan></text>
</g>
</svg>
labs/lab3-k-means/step4.png

9.84 KiB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
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="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\kmeans\step4.png"
inkscape:export-xdpi="44.18"
inkscape:export-ydpi="44.18"
sodipodi:docname="step4.svg">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker12915"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path12917"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker12465"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path12467" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker11619"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path11621"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4153"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker10709"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path10711" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker9251"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path9253" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4165"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker8251"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path8253"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
inkscape:collect="always"
id="linearGradient8215">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop8217" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop8219" />
</linearGradient>
<linearGradient
id="linearGradient7502"
osb:paint="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop7504" />
</linearGradient>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4494"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:collect="always">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4496" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4147"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient8215"
id="linearGradient8221"
x1="119.05175"
y1="385.33261"
x2="145.39577"
y2="385.33261"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.67277217"
inkscape:cx="372.04724"
inkscape:cy="526.1811"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.07530761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
d="m 41.428567,463.79078 646.353683,0"
id="path4138"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4492"
d="m 338.83255,778.33762 0,-646.35368"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.07530761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4494)" />
<circle
style="fill:none;fill-opacity:0.29677418;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke:#000000;stroke-opacity:1"
id="path5826"
cx="475.71429"
cy="179.50507"
r="10" />
<circle
r="10"
cy="245.21935"
cx="505.71429"
id="circle5828"
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5830"
cx="548.57141"
cy="189.50507"
r="10" />
<circle
r="10"
cy="240.93364"
cx="581.42853"
id="circle5832"
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:0.29677418;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5834"
cx="585.71423"
cy="110.93364"
r="10" />
<circle
r="10"
cy="316.64792"
cx="98.571434"
id="circle5838"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5840"
cx="302.31769"
cy="302.56015"
r="10" />
<circle
r="10"
cy="340.79007"
cx="239.10878"
id="circle5842"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle5844"
cx="188.12323"
cy="373.02576"
r="10" />
<circle
r="10"
cy="262.21863"
cx="227.76428"
id="circle5846"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle7532"
cx="70.008804"
cy="691.26898"
r="10"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
r="10"
cy="737.31219"
cx="36.781143"
id="circle7534"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle7536"
cx="181.05341"
cy="695.65546"
r="10"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
r="10"
cy="766.3324"
cx="123.32337"
id="circle7538"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<circle
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle7540"
cx="137.71626"
cy="630.1972"
r="10"
transform="matrix(0.77979134,-0.62603951,0.62603951,0.77979134,0,0)" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.5, 7.5;stroke-dashoffset:0;stroke-opacity:1"
d="M 189.82425,65.224411 387.89857,389.70213"
id="path7612"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.5, 7.5;stroke-dashoffset:0;stroke-opacity:1"
d="m 386.88842,387.68183 -171.08084,349.6"
id="path7614"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.5, 7.5;stroke-dashoffset:0;stroke-opacity:1"
d="M 386.88843,389.70213 736.70578,221.52721"
id="path7616"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
transform="scale(1.1239557,0.88971479)"
sodipodi:linespacing="125%"
id="text8211"
y="385.78098"
x="145.59712"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
xml:space="preserve"><tspan
y="385.78098"
x="145.59712"
id="tspan8213"
sodipodi:role="line"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;">X</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="363.9928"
y="221.1528"
id="text8235"
sodipodi:linespacing="125%"
transform="scale(1.1239557,0.88971479)"><tspan
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;"
sodipodi:role="line"
id="tspan8237"
x="363.9928"
y="221.1528">X</tspan></text>
<text
transform="scale(1.1239557,0.88971479)"
sodipodi:linespacing="125%"
id="text8239"
y="556.086"
x="465.5513"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
xml:space="preserve"><tspan
y="556.086"
x="465.5513"
id="tspan8241"
sodipodi:role="line"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;">X</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="182.62602"
y="355.70956"
id="text11603"
sodipodi:linespacing="125%"
transform="scale(1.1239557,0.88971479)"><tspan
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-opacity:1;"
sodipodi:role="line"
id="tspan11605"
x="182.62602"
y="355.70956">X</tspan></text>
<text
transform="scale(1.1239557,0.88971479)"
sodipodi:linespacing="125%"
id="text11607"
y="240.43587"
x="449.76309"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:35.58874893px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="240.43587"
x="449.76309"
id="tspan11609"
sodipodi:role="line"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-opacity:1">X</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9, 9;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker11619)"
d="M 164.98899,315.1141 C 138.7091,262.04866 179.31776,214.18838 206.60783,282.41357"
id="path11617"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path12463"
d="m 434.02509,162.0162 c 16.82534,-48.60627 60.40678,-45.92938 87.69685,22.2958"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9, 9;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker12465)" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9, 9;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker12915)"
d="m 558.88163,474.15753 c 52.49863,-20.36492 73.78426,46.22663 -1.48639,19.32302"
id="path12913"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
</g>
</svg>
labs/lab3-k-means/uniform-random-30steps.png

576 KiB

# Barnes-Hut Simulation
Use the following commands to make a fresh clone of your repository:
```sh
git clone -b barneshut git@gitlab.epfl.ch:lamp/student-repositories-s21/cs206-GASPAR.git cs206-barneshut
```
## Useful links
* [The API documentation of the Scala standard library](https://www.scala-lang.org/files/archive/api/2.13.4)
* [The API documentation of the Java standard library](https://docs.oracle.com/en/java/javase/15/docs/api/index.html)
**If you have issues with the IDE, try [reimporting the
build](https://gitlab.epfl.ch/lamp/cs206/-/blob/master/labs/example-lab.md#ide-features-like-type-on-hover-or-go-to-definition-do-not-work),
if you still have problems, use `compile` in sbt instead.**
## Introduction
In this assignment, you will implement the parallel Barnes-Hut algorithm for *N-body simulation*.
N-body simulation is a simulation of a system of *N* particles that interact with physical
forces, such as gravity or electrostatic force.
Given initial positions and velocities of all the *particles* (or *bodies*), the N-body simulation
computes the new positions and velocities of the particles as the time progresses.
It does so by dividing time into discrete short intervals, and computing the
positions of the particles after each interval.
<!--
Let us recall some basics of classical mechanics.
What makes a particle, such as an atom, a comet or a star, move through space?
First, the particle moves through space as a consequence of having some initial velocity
compared to other particles.
Second, the particle changes its velocity as a result of external forces.
These forces are in direct correlation with the proximity of other particles.
For example, Earth moves through space with some initial velocity,
which is constantly being changed due to the gravitational force between the Earth and the Sun.
-->
Before we study the Barnes-Hut algorithm for the N-body simulation problem,
we will focus on a simpler algorithm -- the *direct sum N-body algorithm*.
The direct sum algorithm consists of multiple iterations, each of which performs
the following steps for each particle:
1. The particle position is updated according to its current velocity (`delta` is a short time period).
x' = x + v_x * delta
y' = y + v_y * delta
2. The net force on the particle is computed by adding the individual forces from all the other particles.
F_x = F_1x + F_2x + F_3x + ... + F_Nx
F_y = F_1y + F_2y + F_3y + ... + F_Ny
3. The particle velocity is updated according to the net force on that particle.
v_x' = v_x + F_x / mass * delta
v_y' = v_y + F_y / mass * delta
In this exercise, we will assume that the force between particles is the *gravitational force*
from classical mechanics. Let's recall the formula for the gravitational force between two stellar bodies:
F = G * (m1 * m2) / distance^2
Above, `F` is the absolute value of the gravitational force, `m1` and `m2` are the masses of the two bodies,
and `r` is the distance between them. `G` is the gravitational constant.
<!--
The gravitational force vector always points towards the other body.
The `F_x` and `F_y` components of the gravitational force on the body `m1`
can be computed by observing the following triangle similarity:
```scala
distance = math.sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)
F_x / F = (x2 - x1) / distance
F_y / F = (y2 - y1) / distance
```
This is shown in the following figure:
![force-components](force-components.png)
-->
For each particle, the net force is computed by summing the components of individual forces from all other particles,
as shown in the following figure:
![net-force](net-force.png)
The direct sum N-body algorithm is very simple, but also inefficient.
Since we need to update `N` particles, and compute `N - 1` force contributions for each of those particles,
the overall complexity of an iteration step of this algorithm is `O(N^2)`.
As the number of particles grows larger, the direct sum N-body algorithm becomes prohibitively expensive.
The Barnes-Hut algorithm is an optimization of the direct sum N-body algorithm,
and is based on the following observation:
> If a cluster of bodies is sufficiently distant from a body *A*, the net force on *A*
> from that cluster can be approximated with one big body with the mass of all the
> bodies in the cluster, positioned at the center of mass of the cluster.
This is illustrated in the following figure:
![observation](observation.png)
To take advantage of this observation, the Barnes-Hut algorithm relies on
a *quadtree* -- a data structure that divides the space into cells, and answers queries
such as 'What is the total mass and the center of mass of all the particles in this cell?'.
The following figure shows an example of a quadtree for 6 bodies:
![quadtree](quadtree.png)
Above, the total force from the bodies *B*, *C*, *D* and *E* on the body *A* can be approximated
by a single body with *mass* equal to the sum of masses *B*, *C*, *D* and *E*,
positioned at the center of mass of bodies *B*, *C*, *D* and *E*.
The center of mass `(massX, massY)` is computed as follows:
```scala
mass = m_B + m_C + m_D + m_E
massX = (m_B * x_B + m_C * x_C + m_D * x_D + m_E * x_E) / mass
massY = (m_B * y_B + m_C * y_C + m_D * y_D + m_E * y_E) / mass
```
An iteration of the Barnes-Hut algorithm is composed of the following steps:
1. Construct the quadtree for the current arrangement of the bodies.
1. Determine the *boundaries*, i.e. the square into which all bodies fit.
2. Construct a quadtree that covers the boundaries and contains all the bodies.
2. Update the bodies -- for each body:
1. Update the body position according to its current velocity.
2. Using the quadtree, compute the net force on the body by adding the individual forces from all the other bodies.
3. Update the velocity according to the net force on that body.
It turns out that, for most spatial distribution of bodies,
the expected number of cells that contribute to the net force on a body is `log n`,
so the overall complexity of the Barnes-Hut algorithm is `O(n log n)`.
Now that we covered all the necessary theory, let's finally dig into the implementation!
You will implement:
- a quadtree and its combiner data structure
- an operation that computes the total force on a body using the quadtree
- a simulation step of the Barnes-Hut algorithm
Since this assignment consists of multiple components,
we will follow the principles of *test-driven development* and test each component separately,
before moving on to the next component.
That way, if anything goes wrong, we will more precisely know where the error is.
It is always better to detect errors sooner, rather than later.
## Data Structures
We will start by implementing the necessary data structures: the quadtree,
the body data-type and the sector matrix.
You will find the stubs in the `package.scala` file of the `barneshut` package.
### Quadtree Data Structure
In this part of the assignment, we implement the quadtree data structure,
denoted with the abstract data-type `Quad`.
Every `Quad` represents a square cell of space, and can be one of the following node types:
- an `Empty` node, which represents an empty quadtree
- a `Leaf` node, which represents one or more bodies
- a `Fork` node, which divides a spatial cell into four quadrants
The definition of `Quad` is as follows:
```scala
sealed abstract class Quad {
def massX: Float
def massY: Float
def mass: Float
def centerX: Float
def centerY: Float
def size: Float
def total: Int
def insert(b: Body): Quad
}
```
Here, `massX` and `massY` represent the center of mass of the bodies in the respective cell,
`mass` is the total mass of bodies in that cell, `centerX` and `centerY` are the coordinates
of the center of the cell, `size` is the length of the side of the cell,
and `total` is the total number of bodies in the cell.
Note that we consider the top left corner to be at coordinate (0, 0). We also consider the x axis to grow to the right and the y axis to the bottom.
![cell](cell.png)
The method `insert` creates a new quadtree which additionally contains the body `b`,
and covers the same area in space as the original quadtree.
Quadtree is an *immutable* data structure -- `insert` does not modify the existing `Quad` object.
Note that `Body` has the following signature:
```scala
class Body(val mass: Float, val x: Float, val y: Float, val xspeed: Float, val yspeed: Float)
```
In this part of the exercise, you only need to know about body's position `x` and `y`.
Let's start by implementing the simplest `Quad` type -- the empty quadtree:
```scala
case class Empty(centerX: Float, centerY: Float, size: Float) extends Quad
```
The center and the size of the `Empty` quadtree are specified in its constructor.
The `Empty` tree does not contain any bodies, so we specify that its center of mass is equal to its center.
Next, let's implement the `Fork` quadtree:
```scala
case class Fork(nw: Quad, ne: Quad, sw: Quad, se: Quad) extends Quad
```
This node is specified by four child quadtrees `nw`, `ne`, `sw` and `se`,
in the northwest, northeast, southwest and southeast quadrant, respectively.
The northwest is located on the top left, northeast on the top right, southwest on the bottom left and southeast on the bottom right.
The constructor assumes that the children nodes that represent four adjacent cells of the
same size and adjacent to each other, as in the earlier figure.
The center of the `Fork` quadtree is then specified by, say, the
lower right corner of the quadtree `nw`. If the `Fork` quadtree is empty, the
center of mass coincides with the center.
Inserting into a `Fork` is recursive -- it updates the respective child and creates a new `Fork`.
Finally, the `Leaf` quadtree represents one or more bodies:
```scala
case class Leaf(centerX: Float, centerY: Float, size: Float, bodies: Seq[Body])
extends Quad
```
If the `size` of a `Leaf` is greater than a predefined constant `minimumSize`,
inserting an additonal body into that `Leaf` quadtree creates a `Fork` quadtree
with empty children, and adds all the bodies into that `Fork` (including the new body).
Otherwise, inserting creates another `Leaf` with all the existing bodies and the new one.
### The Body Data-Type
Next, we can implement the `Body` data-type:
```scala
class Body(val mass: Float, val x: Float, val y: Float, val xspeed: Float, val yspeed: Float) {
def updated(quad: Quad): Body = ???
}
```
Here, `xspeed` and `yspeed` represent the velocity of the body, `mass` is its mass,
and `x` and `y` are the coordinates of the body.
The most interesting method on the `Body` is `updated` -- it takes a quadtree and
returns the updated version of the `Body`:
```scala
def updated(quad: Quad): Body
```
This method is already half-completed for you -- you only need to implement
its nested method `traverse`, which goes through the quadtree and proceeds casewise:
- empty quadtree does not affect the net force
- each body in a leaf quadtree adds some net force
- a fork quadtree that is sufficiently far away acts as a single point of mass
- a fork quadtree that is not sufficiently far away must be recursively traversed
When are we allowed to approximate a cluster of bodies with a single point?
The heuristic that is used is that the size of the cell divided by the distance
`dist` between the center of mass and the particle is less than some constant `theta`:
```scala
quad.size / dist < theta
```
Hint: make sure you use the `distance` to compute distance between points,
the `theta` value for the condition, and `addForce` to add force contributions!
Before proceeding, make sure to run tests against your `Quad` and `Body` implementations.
### The Sector Matrix
The last data structure that we will implement is the *sector matrix*.
In this data structure, we will use the auxiliary class `Boundaries`, which
contains the `minX`, `maxX`, `minY` and `maxY` fields for the boundaries of the scene:
```scala
class Boundaries {
var minX: Float
var minY: Float
var maxX: Float
var maxY: Float
def size = math.max(maxX - minX, maxY - minY)
}
```
We will also rely on the `ConcBuffer` data structure, mentioned in the lecture:
```scala
class ConcBuffer[T]
```
The `ConcBuffer` class comes with efficient `+=`, `combine` and `foreach` operations,
which add elements into the buffer, combine two buffers and traverse the buffer, respectively.
The sector matrix additionally has the `toQuad` method, which returns a quadtree that contains all
the elements previously added with the `+=` method.
Recall from the lectures that this combination of methods make the `ConcBuffer` a *combiner*.
The `SectorMatrix` is just a square matrix that covers a square region of space
specified by the boundaries:
```scala
class SectorMatrix(val boundaries: Boundaries, val sectorPrecision: Int) {
val sectorSize = boundaries.size / sectorPrecision
val matrix = new Array[ConcBuffer[Body]](sectorPrecision * sectorPrecision)
for (i <- 0 until matrix.length) matrix(i) = new ConcBuffer
def apply(x: Int, y: Int) = matrix(y * sectorPrecision + x)
}
```
The `sectorPrecision` argument denotes the width and height of the matrix, and
each entry contains a `ConcBuffer[Body]` object. Effectively, the `SectorMatrix` is a *combiner* --
it partitions the square region of space into `sectorPrecision` times `sectorPrecision` buckets, called *sectors*.
![sectormatrix](sectormatrix.png)
Combiners such as the `SectorMatrix` are used in parallel programming to partition the results into
some intermediate form that is more amenable to parallelization.
Recall from the lecture that one of the ways to implement a *combiner* is by using
a bucket data structure -- we will do exactly that in this part of the exercise!
We will add three methods on the `SectorMatrix` that will make it a combiner.
We start with the `+=` method:
```scala
def +=(b: Body): SectorMatrix = {
???
this
}
```
This method should use the body position, `boundaries` and `sectorPrecision`
to determine the sector into which the body should go into,
and add the body into the corresponding `ConcBuffer` object.
Importantly, if the `Body` lies outside of the `Boundaries`, it should be considered
to be located at the closest point within the `Boundaries` for the purpose of finding which `ConcBuffer` should hold the body.
Next, we implement the `combine` method, which takes another `SectorMatrix`,
and creates a `SectorMatrix` which contains the elements of both input
`SectorMatrix` data structures:
```scala
def combine(that: SectorMatrix): SectorMatrix
```
This method calls `combine` on the pair of `ConcBuffer`s in `this` and `that`
matrices to produce the `ConcBuffer` for the resulting matrix.
You can safely assume that combine will only be called on matrices of same dimensions, boundaries and sector precision.
![combine](combine.png)
The nice thing about the sector matrix is that a quadtree can be constructed
in parallel for each sector. Those little quadtrees can then be linked together.
The `toQuad` method on the `SectorMatrix` does this:
```scala
def toQuad(parallelism: Int): Quad
```
This method is already implemented -- you can examine
it if you would like to know how it works.
<!--
Finally, we will implement the `toQuad` method, which uses the `SectorMatrix`
to create a `Quad` tree in parallel:
```scala
def toQuad(parallelism: Int): Quad = {
def BALANCING_FACTOR = 4
def quad(x: Int, y: Int, span: Int, achievedParallelism: Int): Quad = {
if (span == 1) {
???
} else {
???
}
}
quad(0, 0, sectorPrecision, 1)
}
```
The `toQuad` method takes the desired degree of `parallelism` as an argument,
and then calls the recursive `quad` method.
The `quad` method operates on a subsquare of the matrix starting at `x`, `y` coordinates,
with the length `span`.
The fourth parameter, `achievedParallelism`, describes how many tasks have been
created at a given call depth.
Implement the `quad` method so that:
1. If `span` is 1, the method sequentially converts the bodies in that sector to a quadtree.
Use `foldLeft` and the `insert` method on the bodies in each sector to get the quadtree.
2. Otherwise, if `parallelism > 1 && achievedParallelism < parallelism * BALANCING_FACTOR`,
the method recursively, and in parallel, creates quadtrees for the `4` subsquares
and links them together into a bigger quadtree.
3. Otherwise, if the `parallelism == 1 || achievedParallelism >= parallelism * BALANCING_FACTOR`,
the method does the same as in case 2, but without parallelism.
Don't forget to multiply `achievedParallelism` by `4` at each step.
-->
Congratulations, you just implemented your first combiner!
Before proceeding, make sure to run those unit tests.
## Implementing Barnes-Hut
Now that we have all the right data structures ready and polished,
implementing Barnes-Hut becomes a piece of cake.
Take a look at the file `Simulator.scala`, which contains the implementation
of the Barnes-Hut simulator, and in particular the `step` method.
The `step` method represents one step in the simulation:
```scala
def step(bodies: Seq[Body]): (Seq[Body], Quad) = {
// 1. compute boundaries
val boundaries = computeBoundaries(bodies)
// 2. compute sector matrix
val sectorMatrix = computeSectorMatrix(bodies, boundaries)
// 3. compute quadtree
val quad = computeQuad(sectorMatrix)
// 4. eliminate outliers
val filteredBodies = eliminateOutliers(bodies, sectorMatrix, quad)
// 5. update body velocities and positions
val newBodies = updateBodies(filteredBodies, quad)
(newBodies, quad)
}
```
The pre-existing code in `step` nicely summarizes what this method does.
### Computing the Scene Boundaries
First, we must compute the boundaries of all the bodies in the scene.
Since bodies move and the boundaries dynamically change,
we must do this in every iteration of the algorithm.
The `computeBoundaries` method is already implemented -- it uses the `aggregate`
combinator on the sequence of bodies to compute the boundaries:
```scala
def computeBoundaries(bodies: Seq[Body]): Boundaries = {
val parBodies = bodies.par
parBodies.tasksupport = taskSupport
parBodies.aggregate(new Boundaries)(updateBoundaries, mergeBoundaries)
}
```
How does this work? The `aggregate` method divides the input sequence into a
number of chunks. For each of the chunks, it uses the `new Boundaries` expression
to create the accumulation value, and then folds the values in that chunk
calling `updateBoundaries` on each body, in the same way a `foldLeft` operation would.
Finally, `aggregate` combines the results of different chunks using a reduction tree and `mergeBoundaries`.
So, we need the `updateBoundaries` method:
```scala
def updateBoundaries(boundaries: Boundaries, body: Body): Boundaries
```
Given an existing `boundaries` object and a body, the `updateBoundaries` updates
the `minX`, `minY`, `maxX` and `maxY` values so that the boundaries include the body.
Next, the `mergeBoundaries` method creates a new `Boundaries` object, which represents
the smallest rectangle that contains both the input boundaries:
```scala
def mergeBoundaries(a: Boundaries, b: Boundaries): Boundaries
```
Question: Is `mergeBoundaries` associative? Is it commutative? Does it need to be commutative?
Implement these two methods, and test that they work correctly!
### Building the Quadtree
Next, we need to build a `Quad` tree from the sequence of bodies.
We will first implement the `computeSectorMatrix` method to get the `SectorMatrix`:
```scala
def computeSectorMatrix(bodies: Seq[Body], boundaries: Boundaries): SectorMatrix
```
Hint: aggregate the `SectorMatrix` from the sequence of bodies, the same way it was used for boundaries.
Use the SECTOR_PRECISION constant when creating a new `SectorMatrix`.
<!--
Next, implement `computeQuad`, which converts `SectorMatrix` to a `Quad`:
def computeQuad(sectorMatrix: SectorMatrix): Quad
Hint: use `taskSupport.parallelismLevel` to determine the desired parallelism.
-->
Test that these methods work correctly before proceeding!
### Eliminating Outliers
During the execution of the Barnes-Hut algorithm, some of the bodies tend to
move far away from most of the other bodies. There are many ways to deal with such *outliers*,
but to keep things simple, we will eliminate bodies that move too fast and too far away.
We will not go into details of how this works, but if you'd like to know more,
you can try to understand how the `eliminateOutliers` method works.
### Updating Bodies
The `updateBodies` method uses the quadtree to map each body from the
previous iteration of the algorithm to a new iteration:
```scala
def updateBodies(bodies: Seq[Body], quad: Quad): Seq[Body]
```
Recall that we already implemented the `updated` method which updates a single body.
## Running Barnes-Hut
At last, the parallel Barnes-Hut algorithm is implemented.
Note that, despite all the work, we kept our Barnes-Hut algorithm implementation simple
and avoided the details that a more realistic implementation must address. In particular:
- we represented each body as a single point in space
- we restricted the simulation to two-dimensional space
- we ignored close encounter effects, such as body collision or tearing
- we ignored any relativistic effects, and assume classical mechanics
- we ignored errors induced by floating point computations
You can now run it as follows:
> runMain barneshut.BarnesHut
To visualize the quadtree, press the *Show quad* button, and then hit the *Start/Pause* button.
Play with the parallelism level and the number of bodies, and observe the average speedups in the lower right corner.
Then sit back, and enjoy the show!
labs/lab4-barnes-hut-simulation/cell.png

9.68 KiB

<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="cell.svg"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\barneshut\cell.png"
inkscape:export-xdpi="32.65155"
inkscape:export-ydpi="32.65155">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker15906"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path15908"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker15306"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path15308" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker15086"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path15088"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker15028"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path15030"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker11876"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path11878"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker10168"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path10170"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker7470"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path7472" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4228"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4231"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="970.66221"
inkscape:cy="85.954979"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:snap-text-baseline="false" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
r="13.141105"
cy="721.93744"
cx="1136.2686"
id="circle4144"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4152"
y="748.34113"
x="1165.1003"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="748.34113"
x="1165.1003"
id="tspan4154"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4158">E</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1152.1206"
y="688.21014"
id="text7888"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7890"
x="1152.1206"
y="688.21014">(x<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14976">E</tspan>,y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14974">E</tspan>)</tspan></text>
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle8064"
cx="1028.7399"
cy="1061.7242"
r="13.141105" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1055.5515"
y="1070.8625"
id="text8066"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8068"
x="1055.5515"
y="1070.8625">m<tspan
id="tspan8070"
style="font-size:64.99999762%;baseline-shift:sub">C</tspan></tspan></text>
<circle
r="13.141105"
cy="653.45074"
cx="741.34894"
id="circle10468"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text10470"
y="682.58905"
x="766.01764"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="682.58905"
x="766.01764"
id="tspan10472"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan10474">D</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="743.56964"
y="1123.7406"
id="text10476"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan10478"
x="743.56964"
y="1123.7406">m<tspan
id="tspan10480"
style="font-size:64.99999762%;baseline-shift:sub">B</tspan></tspan></text>
<circle
r="13.141105"
cy="1088.6008"
cx="727.80518"
id="circle10482"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="952.23749"
y="908.33813"
id="text13406"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan13408"
x="952.23749"
y="908.33813">mass</tspan></text>
<circle
r="24.149361"
cy="893.79889"
cx="923.70862"
id="circle13404"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:10, 5;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="558.17084"
x="604.85461"
height="531.79376"
width="531.79376"
id="rect14954"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="-822.98016"
x="-869.66394"
height="264.46457"
width="264.46457"
id="rect14958"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="scale(-1,-1)" />
<rect
transform="scale(-1,-1)"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5.03303289;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect14960"
width="267.3674"
height="266.65311"
x="-1136.4081"
y="-1089.01" />
<text
sodipodi:linespacing="125%"
id="text14978"
y="619.51978"
x="717.755"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="619.51978"
x="717.755"
id="tspan14980"
sodipodi:role="line">(x<tspan
id="tspan14982"
style="font-size:64.99999762%;baseline-shift:sub">D</tspan>,y<tspan
id="tspan14984"
style="font-size:64.99999762%;baseline-shift:sub">D</tspan>)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="646.05164"
y="1057.5076"
id="text14986"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan14988"
x="646.05164"
y="1057.5076">(x<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14990">B</tspan>,y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14992">B</tspan>)</tspan></text>
<text
sodipodi:linespacing="125%"
id="text14994"
y="1044.3879"
x="882.93494"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1044.3879"
x="882.93494"
id="tspan14996"
sodipodi:role="line">(x<tspan
id="tspan14998"
style="font-size:64.99999762%;baseline-shift:sub">C</tspan>,y<tspan
id="tspan15000"
style="font-size:64.99999762%;baseline-shift:sub">C</tspan>)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:100%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="895.39038"
y="954.85413"
id="text15002"
sodipodi:linespacing="100%"
inkscape:export-xdpi="34.630001"
inkscape:export-ydpi="34.630001"><tspan
sodipodi:role="line"
id="tspan15004"
x="895.39038"
y="954.85413"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">(mass<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan15020">X</tspan>,mass<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan15016">Y</tspan>)</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.89491892;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker15028);marker-end:url(#marker15086)"
d="m 611.75315,1157.4181 516.98645,0"
id="path15026"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="825.29462"
y="1220.0476"
id="text15252"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan15254"
x="825.29462"
y="1220.0476">size<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan15256" /></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1248.5714"
y="899.50507"
id="text4276"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4278"
x="1248.5714"
y="899.50507">total=4</tspan></text>
<text
inkscape:export-ydpi="34.630001"
inkscape:export-xdpi="34.630001"
sodipodi:linespacing="100%"
id="text4280"
y="793.42554"
x="875.39038"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:100%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start"
y="793.42554"
x="875.39038"
id="tspan4282"
sodipodi:role="line">(center<tspan
id="tspan4284"
style="font-size:64.99999762%;baseline-shift:sub">X</tspan>,center<tspan
id="tspan4286"
style="font-size:64.99999762%;baseline-shift:sub">Y</tspan>)</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:11.70279694;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 854.21813,808.4712 31.66682,31.66682"
id="path4288"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:11.70279694;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 855.14272,840.36917 32.36025,-32.36026"
id="path4290"
inkscape:connector-curvature="0" />
</g>
</svg>
labs/lab4-barnes-hut-simulation/combine.png

8.85 KiB

<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="combine.svg"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\barneshut\sectormatrix.png"
inkscape:export-xdpi="32.6516"
inkscape:export-ydpi="32.6516">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4830"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4832"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Sstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Sstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4202"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.2) translate(6,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="370.35135"
inkscape:cy="411.90881"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4138"
width="157.25688"
height="157.25688"
x="746.3056"
y="293.24829" />
<rect
y="293.24829"
x="903.69269"
height="157.25688"
width="157.25688"
id="rect4140"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="293.24829"
x="1060.2903"
height="157.25688"
width="157.25688"
id="rect4142"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4144"
width="157.25688"
height="157.25688"
x="1217.6774"
y="293.24829" />
<rect
y="450.89859"
x="746.3056"
height="157.25688"
width="157.25688"
id="rect4146"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4148"
width="157.25688"
height="157.25688"
x="903.69269"
y="450.89859" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4150"
width="157.25688"
height="157.25688"
x="1060.2903"
y="450.89859" />
<rect
y="450.89859"
x="1217.6774"
height="157.25688"
width="157.25688"
id="rect4152"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="608.02252"
x="746.3056"
height="157.25688"
width="157.25688"
id="rect4154"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4156"
width="157.25688"
height="157.25688"
x="903.69269"
y="608.02252" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4158"
width="157.25688"
height="157.25688"
x="1060.2903"
y="608.02252" />
<rect
y="608.02252"
x="1217.6774"
height="157.25688"
width="157.25688"
id="rect4160"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4162"
width="157.25688"
height="157.25688"
x="746.3056"
y="765.67279" />
<rect
y="765.67279"
x="903.69269"
height="157.25688"
width="157.25688"
id="rect4164"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="765.67279"
x="1060.2903"
height="157.25688"
width="157.25688"
id="rect4166"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4168"
width="157.25688"
height="157.25688"
x="1217.6774"
y="765.67279" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4170"
cx="1020.8884"
cy="491.64792"
r="13.571428" />
<circle
r="13.571428"
cy="854.50507"
cx="1285.1742"
id="circle4172"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4174"
cx="1355.1742"
cy="824.50507"
r="13.571428" />
<circle
r="13.571428"
cy="894.50507"
cx="1376.6028"
id="circle4176"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4178"
cx="1312.3171"
cy="295.93362"
r="13.571428" />
<circle
r="13.571428"
cy="805.93365"
cx="853.74573"
id="circle4180"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4182"
cx="1141.0917"
cy="717.37964"
r="13.571428" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="757.61438"
y="345.25543"
id="text5218"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5220"
x="757.61438"
y="345.25543">0,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5222"
y="345.25543"
x="927.32001"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="927.32001"
id="tspan5224"
sodipodi:role="line">1,0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1080.8633"
y="345.25543"
id="text5226"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5228"
x="1080.8633"
y="345.25543">2,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5230"
y="345.25543"
x="1236.4268"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="1236.4268"
id="tspan5232"
sodipodi:role="line">3,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5234"
y="504.85953"
x="757.61438"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="757.61438"
id="tspan5236"
sodipodi:role="line">0,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="927.32001"
y="504.85953"
id="text5238"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5240"
x="927.32001"
y="504.85953">1,1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5242"
y="504.85953"
x="1080.8633"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="1080.8633"
id="tspan5244"
sodipodi:role="line">2,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1236.4268"
y="504.85953"
id="text5246"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5248"
x="1236.4268"
y="504.85953">3,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="757.61438"
y="656.38239"
id="text5250"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5252"
x="757.61438"
y="656.38239">0,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5254"
y="656.38239"
x="927.32001"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="927.32001"
id="tspan5256"
sodipodi:role="line">1,2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1080.8633"
y="656.38239"
id="text5258"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5260"
x="1080.8633"
y="656.38239">2,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5262"
y="656.38239"
x="1236.4268"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="1236.4268"
id="tspan5264"
sodipodi:role="line">3,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5266"
y="813.96619"
x="757.61438"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="757.61438"
id="tspan5268"
sodipodi:role="line">0,3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="927.32001"
y="813.96619"
id="text5270"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5272"
x="927.32001"
y="813.96619">1,3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5274"
y="813.96619"
x="1080.8633"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="1080.8633"
id="tspan5276"
sodipodi:role="line">2,3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1236.4268"
y="813.96619"
id="text5278"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5280"
x="1236.4268"
y="813.96619">3,3</tspan></text>
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4209"
cx="1180.1184"
cy="684.79944"
r="13.571428" />
<circle
r="13.571428"
cy="884.80963"
cx="800.30096"
id="circle4211"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="293.24829"
x="-243.64386"
height="157.25688"
width="157.25688"
id="rect4213"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4215"
width="157.25688"
height="157.25688"
x="-86.256775"
y="293.24829" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4217"
width="157.25688"
height="157.25688"
x="70.340759"
y="293.24829" />
<rect
y="293.24829"
x="227.72791"
height="157.25688"
width="157.25688"
id="rect4219"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4221"
width="157.25688"
height="157.25688"
x="-243.64386"
y="450.89859" />
<rect
y="450.89859"
x="-86.256775"
height="157.25688"
width="157.25688"
id="rect4223"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="450.89859"
x="70.340759"
height="157.25688"
width="157.25688"
id="rect4225"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4227"
width="157.25688"
height="157.25688"
x="227.72791"
y="450.89859" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4229"
width="157.25688"
height="157.25688"
x="-243.64386"
y="608.02252" />
<rect
y="608.02252"
x="-86.256775"
height="157.25688"
width="157.25688"
id="rect4231"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="608.02252"
x="70.340759"
height="157.25688"
width="157.25688"
id="rect4233"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4235"
width="157.25688"
height="157.25688"
x="227.72791"
y="608.02252" />
<rect
y="765.67279"
x="-243.64386"
height="157.25688"
width="157.25688"
id="rect4237"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4239"
width="157.25688"
height="157.25688"
x="-86.256775"
y="765.67279" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4241"
width="157.25688"
height="157.25688"
x="70.340759"
y="765.67279" />
<rect
y="765.67279"
x="227.72791"
height="157.25688"
width="157.25688"
id="rect4243"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="13.571428"
cy="824.50507"
cx="365.22473"
id="circle4249"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="13.571428"
cy="295.93362"
cx="322.36768"
id="circle4253"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4255"
cx="-136.20374"
cy="805.93365"
r="13.571428" />
<text
sodipodi:linespacing="125%"
id="text4259"
y="345.25543"
x="-232.33508"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="-232.33508"
id="tspan4261"
sodipodi:role="line">0,0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-62.629456"
y="345.25543"
id="text4263"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4265"
x="-62.629456"
y="345.25543">1,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4267"
y="345.25543"
x="90.913757"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="90.913757"
id="tspan4269"
sodipodi:role="line">2,0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="246.47729"
y="345.25543"
id="text4271"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4273"
x="246.47729"
y="345.25543">3,0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-232.33508"
y="504.85953"
id="text4275"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4277"
x="-232.33508"
y="504.85953">0,1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4279"
y="504.85953"
x="-62.629456"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="-62.629456"
id="tspan4281"
sodipodi:role="line">1,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="90.913757"
y="504.85953"
id="text4283"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4285"
x="90.913757"
y="504.85953">2,1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4287"
y="504.85953"
x="246.47729"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="246.47729"
id="tspan4289"
sodipodi:role="line">3,1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4291"
y="656.38239"
x="-232.33508"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="-232.33508"
id="tspan4293"
sodipodi:role="line">0,2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-62.629456"
y="656.38239"
id="text4295"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4297"
x="-62.629456"
y="656.38239">1,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4299"
y="656.38239"
x="90.913757"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="90.913757"
id="tspan4301"
sodipodi:role="line">2,2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="246.47729"
y="656.38239"
id="text4303"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4305"
x="246.47729"
y="656.38239">3,2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-232.33508"
y="813.96619"
id="text4307"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4309"
x="-232.33508"
y="813.96619">0,3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4311"
y="813.96619"
x="-62.629456"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="-62.629456"
id="tspan4313"
sodipodi:role="line">1,3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="90.913757"
y="813.96619"
id="text4315"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4317"
x="90.913757"
y="813.96619">2,3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4319"
y="813.96619"
x="246.47729"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="246.47729"
id="tspan4321"
sodipodi:role="line">3,3</tspan></text>
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4327"
width="157.25688"
height="157.25688"
x="-1231.5731"
y="293.24829" />
<rect
y="293.24829"
x="-1074.1859"
height="157.25688"
width="157.25688"
id="rect4329"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="293.24829"
x="-917.58844"
height="157.25688"
width="157.25688"
id="rect4331"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4333"
width="157.25688"
height="157.25688"
x="-760.20129"
y="293.24829" />
<rect
y="450.89859"
x="-1231.5731"
height="157.25688"
width="157.25688"
id="rect4335"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4337"
width="157.25688"
height="157.25688"
x="-1074.1859"
y="450.89859" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4339"
width="157.25688"
height="157.25688"
x="-917.58844"
y="450.89859" />
<rect
y="450.89859"
x="-760.20129"
height="157.25688"
width="157.25688"
id="rect4341"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="608.02252"
x="-1231.5731"
height="157.25688"
width="157.25688"
id="rect4343"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4345"
width="157.25688"
height="157.25688"
x="-1074.1859"
y="608.02252" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4347"
width="157.25688"
height="157.25688"
x="-917.58844"
y="608.02252" />
<rect
y="608.02252"
x="-760.20129"
height="157.25688"
width="157.25688"
id="rect4349"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4351"
width="157.25688"
height="157.25688"
x="-1231.5731"
y="765.67279" />
<rect
y="765.67279"
x="-1074.1859"
height="157.25688"
width="157.25688"
id="rect4353"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="765.67279"
x="-917.58844"
height="157.25688"
width="157.25688"
id="rect4355"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4357"
width="157.25688"
height="157.25688"
x="-760.20129"
y="765.67279" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4359"
cx="-956.99023"
cy="491.64792"
r="13.571428" />
<circle
r="13.571428"
cy="854.50507"
cx="-692.70447"
id="circle4361"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="13.571428"
cy="894.50507"
cx="-601.27588"
id="circle4365"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4371"
cx="-836.78705"
cy="717.37964"
r="13.571428" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-1220.2643"
y="345.25543"
id="text4373"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4375"
x="-1220.2643"
y="345.25543">0,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4377"
y="345.25543"
x="-1050.5586"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="-1050.5586"
id="tspan4379"
sodipodi:role="line">1,0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-897.01544"
y="345.25543"
id="text4381"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4383"
x="-897.01544"
y="345.25543">2,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4385"
y="345.25543"
x="-741.4519"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="-741.4519"
id="tspan4387"
sodipodi:role="line">3,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4389"
y="504.85953"
x="-1220.2643"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="-1220.2643"
id="tspan4391"
sodipodi:role="line">0,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-1050.5586"
y="504.85953"
id="text4393"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4395"
x="-1050.5586"
y="504.85953">1,1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4397"
y="504.85953"
x="-897.01544"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="-897.01544"
id="tspan4399"
sodipodi:role="line">2,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-741.4519"
y="504.85953"
id="text4401"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4403"
x="-741.4519"
y="504.85953">3,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-1220.2643"
y="656.38239"
id="text4405"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4407"
x="-1220.2643"
y="656.38239">0,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4409"
y="656.38239"
x="-1050.5586"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="-1050.5586"
id="tspan4411"
sodipodi:role="line">1,2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-897.01544"
y="656.38239"
id="text4413"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4415"
x="-897.01544"
y="656.38239">2,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4417"
y="656.38239"
x="-741.4519"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="-741.4519"
id="tspan4419"
sodipodi:role="line">3,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4421"
y="813.96619"
x="-1220.2643"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="-1220.2643"
id="tspan4423"
sodipodi:role="line">0,3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-1050.5586"
y="813.96619"
id="text4425"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4427"
x="-1050.5586"
y="813.96619">1,3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4429"
y="813.96619"
x="-897.01544"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="-897.01544"
id="tspan4431"
sodipodi:role="line">2,3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-741.4519"
y="813.96619"
id="text4433"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4435"
x="-741.4519"
y="813.96619">3,3</tspan></text>
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4437"
cx="-797.76031"
cy="684.79944"
r="13.571428" />
<circle
r="13.571428"
cy="884.80963"
cx="-1177.5776"
id="circle4439"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:61.06264496px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-556.66376"
y="625.3916"
id="text4441"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4443"
x="-556.66376"
y="625.3916">combine</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4445"
y="668.05292"
x="504.32611"
style="font-style:normal;font-weight:normal;font-size:151.51826477px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="668.05292"
x="504.32611"
id="tspan4447"
sodipodi:role="line">=</tspan></text>
</g>
</svg>
labs/lab4-barnes-hut-simulation/force-components.png

9.55 KiB

<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="force_components.svg"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\barneshut\force-components.png"
inkscape:export-xdpi="43.470001"
inkscape:export-ydpi="43.470001">
<defs
id="defs4">
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker7470"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path7472" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker6528"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path6530"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker5832"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path5834" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4718"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4720" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4622"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4624"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4228"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4231"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="596.83099"
inkscape:cy="659.30507"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4142"
cx="269.28571"
cy="190.21935"
r="13.141105" />
<circle
r="13.141105"
cy="470.63928"
cx="802.48016"
id="circle4144"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="267.72015"
y="150.9595"
id="text4146"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4148"
x="267.72015"
y="150.9595">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4150">1</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4152"
y="460.49185"
x="837.86316"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="460.49185"
x="837.86316"
id="tspan4154"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4158">2</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4160"
y="178.65207"
x="113.20886"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="178.65207"
x="113.20886"
id="tspan4162"
sodipodi:role="line">(x<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4180">1</tspan>,y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4178">1</tspan>)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="817.0473"
y="529.71088"
id="text4182"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4184"
x="817.0473"
y="529.71088">(x<tspan
id="tspan4186"
style="font-size:64.99999762%;baseline-shift:sub">2</tspan>,y<tspan
id="tspan4188"
style="font-size:64.99999762%;baseline-shift:sub">2</tspan>)</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4622)"
d="m 269.71073,191.71224 0,272.93917"
id="path4190"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.90697932;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart)"
d="m 782.93078,471.122 -512.2099,0"
id="path4192"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="452.44324"
y="517.38312"
id="text4182-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4184-5"
x="452.44324"
y="517.38312">x<tspan
id="tspan4186-4"
style="font-size:64.99999762%;baseline-shift:sub">2</tspan>-x<tspan
id="tspan4188-5"
style="font-size:64.99999762%;baseline-shift:sub">1</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4614"
y="380.34897"
x="152.27205"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="380.34897"
x="152.27205"
id="tspan4616"
sodipodi:role="line">y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4618">2</tspan>-y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4620">1</tspan></tspan></text>
<path
inkscape:connector-curvature="0"
id="path4716"
d="M 269.71073,191.71224 791.91605,462.45778"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4718)"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="611.58893"
y="349.7601"
id="text5130"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5132"
x="611.58893"
y="349.7601">distance</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5830"
d="m 258.28216,197.42653 0,113.16557"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker5832)" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6528)"
d="m 258.28216,311.71224 228.57143,-2.54872"
id="path6526"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path7468"
d="M 280.42502,182.42653 496.85359,297.02067"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9, 3;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker7470)" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="400"
y="223.07649"
id="text7888"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7890"
x="400"
y="223.07649">F</tspan></text>
<text
sodipodi:linespacing="125%"
id="text7892"
y="266.64792"
x="202.85715"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="266.64792"
x="202.85715"
id="tspan7894"
sodipodi:role="line">F<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan7896">y</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="356.42859"
y="354.50507"
id="text7898"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7900"
x="356.42859"
y="354.50507">F<tspan
id="tspan7902"
style="font-size:64.99999762%;baseline-shift:sub">x</tspan></tspan></text>
</g>
</svg>
labs/lab4-barnes-hut-simulation/net-force.png

7.49 KiB

<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="net-force.svg"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\barneshut\net-force.png"
inkscape:export-xdpi="44.869999"
inkscape:export-ydpi="44.869999">
<defs
id="defs4">
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4222"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:0.50289019;fill:#000000;fill-opacity:0.50289019"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4224" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4214"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4216" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4208"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4210" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker12608"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path12610"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker11876"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path11878"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker10168"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path10170"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker7470"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path7472" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4622"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4624"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4228"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4231"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="742.82023"
inkscape:cy="615.35072"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path10486"
d="M 281.85359,190.99796 1066.8536,329.87782"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,24;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4142"
cx="269.28571"
cy="190.21935"
r="13.141105" />
<circle
r="13.141105"
cy="332.01859"
cx="1071.6188"
id="circle4144"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="267.72015"
y="162.38808"
id="text4146"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4148"
x="267.72015"
y="162.38808">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4150">1</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4152"
y="360.44257"
x="1098.4303"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="360.44257"
x="1098.4303"
id="tspan4154"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4158">2</tspan></tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4622)"
d="m 259.71073,187.42653 257.14285,45.7963"
id="path4190"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5830"
d="M 273.99645,200.28367 659.71073,696.30638"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,24;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="724.85712"
y="443.07648"
id="text7888"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7890"
x="724.85712"
y="443.07648">F<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan10448">net</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text7892"
y="192.36221"
x="402.85715"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="192.36221"
x="402.85715"
id="tspan7894"
sodipodi:role="line">F<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan7896">21</tspan></tspan></text>
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.83889103, 3.91944551;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker10168)"
d="M 271.13929,191.71224 699.0589,476.74351"
id="path10166"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="678.91986"
y="739.88269"
id="text10476"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan10478"
x="678.91986"
y="739.88269">m<tspan
id="tspan10480"
style="font-size:64.99999762%;baseline-shift:sub">3</tspan></tspan></text>
<circle
r="13.141105"
cy="704.74292"
cx="663.1554"
id="circle10482"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker11876)"
d="M 268.28215,190.28367 449.0589,429.60064"
id="path11874"
inkscape:connector-curvature="0" />
<text
sodipodi:linespacing="125%"
id="text13116"
y="268.07651"
x="245.71429"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="268.07651"
x="245.71429"
id="tspan13118"
sodipodi:role="line">F<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan13120">31</tspan></tspan></text>
</g>
</svg>
labs/lab4-barnes-hut-simulation/observation.png

11.2 KiB

<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="observation.svg"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\barneshut\observation.png"
inkscape:export-xdpi="44.869999"
inkscape:export-ydpi="44.869999">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker12608"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path12610"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker11876"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path11878"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker10168"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path10170"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker7470"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path7472" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4718"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4720" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4622"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4624"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4228"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4231"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="557.69109"
inkscape:cy="615.35072"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4142"
cx="269.28571"
cy="190.21935"
r="13.141105" />
<circle
r="13.141105"
cy="332.01859"
cx="1071.6188"
id="circle4144"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="267.72015"
y="162.38808"
id="text4146"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4148"
x="267.72015"
y="162.38808">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4150">1</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4152"
y="360.44257"
x="1098.4303"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="360.44257"
x="1098.4303"
id="tspan4154"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4158">2</tspan></tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4622)"
d="m 259.71073,187.42653 152.85714,25.7963"
id="path4190"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
id="path4716"
d="M 262.56786,184.56938 390.48747,293.88635"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4718)"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5830"
d="M 273.99645,200.28367 659.71073,696.30638"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,24;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path7468"
d="M 277.56788,196.71225 898.28217,742.73496"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,24;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="677.71429"
y="470.21933"
id="text7888"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7890"
x="677.71429"
y="470.21933">F<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan10448">net</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text7892"
y="192.36221"
x="402.85715"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="192.36221"
x="402.85715"
id="tspan7894"
sodipodi:role="line">F<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan7896">21</tspan></tspan></text>
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle8064"
cx="898.1554"
cy="741.17151"
r="13.141105" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="914.96698"
y="778.88129"
id="text8066"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8068"
x="914.96698"
y="778.88129">m<tspan
id="tspan8070"
style="font-size:64.99999762%;baseline-shift:sub">3</tspan></tspan></text>
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.83889103, 3.91944551;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker10168)"
d="M 271.13929,191.71224 661.91604,423.88636"
id="path10166"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="335.71429"
y="329.50507"
id="text10450"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan10452"
x="335.71429"
y="329.50507">F<tspan
id="tspan10454"
style="font-size:64.99999762%;baseline-shift:sub">31</tspan></tspan></text>
<circle
r="13.141105"
cy="497.88727"
cx="1058.5369"
id="circle10468"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text10470"
y="527.02557"
x="1083.2056"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="527.02557"
x="1083.2056"
id="tspan10472"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan10474">4</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="678.91986"
y="739.88269"
id="text10476"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan10478"
x="678.91986"
y="739.88269">m<tspan
id="tspan10480"
style="font-size:64.99999762%;baseline-shift:sub">5</tspan></tspan></text>
<circle
r="13.141105"
cy="704.74292"
cx="663.1554"
id="circle10482"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,24;stroke-dashoffset:0;stroke-opacity:1"
d="M 281.85359,190.99796 1056.8536,497.02068"
id="path10484"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path10486"
d="M 281.85359,190.99796 1066.8536,329.87782"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,24;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker11876)"
d="m 268.28215,190.28367 59.34818,80.74554"
id="path11874"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.91944551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12608)"
d="M 266.85357,188.85509 493.34462,276.7435"
id="path12606"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="498.57144"
y="269.50507"
id="text13110"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan13112"
x="498.57144"
y="269.50507">F<tspan
id="tspan13114"
style="font-size:64.99999762%;baseline-shift:sub">41</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text13116"
y="268.07651"
x="245.71429"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="268.07651"
x="245.71429"
id="tspan13118"
sodipodi:role="line">F<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan13120">51</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="991.77698"
y="642.73987"
id="text13406"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan13408"
x="991.77698"
y="642.73987">M<tspan
id="tspan13410"
style="font-size:64.99999762%;baseline-shift:sub" /></tspan></text>
<circle
r="24.149361"
cy="598.31439"
cx="961.01251"
id="circle13404"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:10, 5;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</svg>
labs/lab4-barnes-hut-simulation/quadtree.png

33.4 KiB

<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="quadtree.svg"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\barneshut\quadtree.png"
inkscape:export-xdpi="32.65155"
inkscape:export-ydpi="32.65155">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker15906"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path15908"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker15660"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path15662" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker15306"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path15308" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker15086"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path15088"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker15028"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path15030"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker12608"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path12610"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker11876"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path11878"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="marker10168"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path10170"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker7470"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path7472" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4228"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path4231"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.175"
inkscape:cx="1095.4717"
inkscape:cy="135.41975"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:snap-text-baseline="false" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4142"
cx="83.397331"
cy="151.83354"
r="13.141105" />
<circle
r="13.141105"
cy="721.93744"
cx="1136.2686"
id="circle4144"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-17.160173"
y="189.79347"
id="text4146"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4148"
x="-17.160173"
y="189.79347">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4150">A</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4152"
y="748.34113"
x="1165.1003"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="748.34113"
x="1165.1003"
id="tspan4154"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan4158">E</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1152.1206"
y="688.21014"
id="text7888"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7890"
x="1152.1206"
y="688.21014">(x<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14976">E</tspan>,y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14974">E</tspan>)</tspan></text>
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle8064"
cx="1028.7399"
cy="1033.1528"
r="13.141105" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1045.5515"
y="1070.8625"
id="text8066"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan8068"
x="1045.5515"
y="1070.8625">m<tspan
id="tspan8070"
style="font-size:64.99999762%;baseline-shift:sub">C</tspan></tspan></text>
<circle
r="13.141105"
cy="653.45074"
cx="741.34894"
id="circle10468"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text10470"
y="682.58905"
x="766.01764"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="682.58905"
x="766.01764"
id="tspan10472"
sodipodi:role="line">m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan10474">D</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="743.56964"
y="1123.7406"
id="text10476"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan10478"
x="743.56964"
y="1123.7406">m<tspan
id="tspan10480"
style="font-size:64.99999762%;baseline-shift:sub">B</tspan></tspan></text>
<circle
r="13.141105"
cy="1088.6008"
cx="727.80518"
id="circle10482"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="966.52319"
y="915.48102"
id="text13406"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan13408"
x="966.52319"
y="915.48102">mass</tspan></text>
<circle
r="24.149361"
cy="902.3703"
cx="916.56573"
id="circle13404"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:10, 5;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.00350261;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle14942"
cx="1019.0909"
cy="35.033726"
r="13.141105" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1029.74"
y="8.9094801"
id="text14944"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan14946"
x="1029.74"
y="8.9094801">m<tspan
id="tspan14948"
style="font-size:64.99999762%;baseline-shift:sub">F</tspan></tspan></text>
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect14952"
width="1052.579"
height="1052.579"
x="82.832512"
y="36.148746" />
<rect
y="558.17084"
x="604.85461"
height="531.79376"
width="531.79376"
id="rect14954"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect14956"
width="521.14429"
height="521.14429"
x="84.185783"
y="37.502014" />
<rect
y="-822.98016"
x="-869.66394"
height="264.46457"
width="264.46457"
id="rect14958"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="scale(-1,-1)" />
<rect
transform="scale(-1,-1)"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect14960"
width="265.25757"
height="265.25757"
x="-1134.2817"
y="-1087.5979" />
<text
sodipodi:linespacing="125%"
id="text14978"
y="619.51978"
x="717.755"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="619.51978"
x="717.755"
id="tspan14980"
sodipodi:role="line">(x<tspan
id="tspan14982"
style="font-size:64.99999762%;baseline-shift:sub">D</tspan>,y<tspan
id="tspan14984"
style="font-size:64.99999762%;baseline-shift:sub">D</tspan>)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="704.62305"
y="1058.9362"
id="text14986"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan14988"
x="704.62305"
y="1058.9362">(x<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14990">B</tspan>,y<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan14992">B</tspan>)</tspan></text>
<text
sodipodi:linespacing="125%"
id="text14994"
y="1004.3879"
x="991.50635"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1004.3879"
x="991.50635"
id="tspan14996"
sodipodi:role="line">(x<tspan
id="tspan14998"
style="font-size:64.99999762%;baseline-shift:sub">C</tspan>,y<tspan
id="tspan15000"
style="font-size:64.99999762%;baseline-shift:sub">C</tspan>)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:100%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="888.2475"
y="861.99701"
id="text15002"
sodipodi:linespacing="100%"
inkscape:export-xdpi="34.630001"
inkscape:export-ydpi="34.630001"><tspan
sodipodi:role="line"
id="tspan15004"
x="888.2475"
y="861.99701"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">(mass<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan15020">X</tspan>,mass<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan15016">Y</tspan>)</tspan></text>
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path15022"
cx="-218.31874"
cy="1531.9603"
r="74.751289" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4.89491892;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker15028);marker-end:url(#marker15086)"
d="m 611.75315,1157.4181 516.98645,0"
id="path15026"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="825.29462"
y="1220.0476"
id="text15252"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan15254"
x="825.29462"
y="1220.0476">size<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan15256">SE</tspan></tspan></text>
<circle
r="74.751289"
cy="1300.5319"
cx="301.68127"
id="circle15266"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="74.751289"
cy="1531.9603"
cx="130.25279"
id="circle15268"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
r="74.751289"
cy="1531.9603"
cx="495.96689"
id="circle15270"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle15272"
cx="861.68121"
cy="1531.9603"
r="74.751289" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="253.18787"
y="1313.6995"
id="text15274"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan15276"
x="253.18787"
y="1313.6995">Fork</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12608)"
d="m 229.18777,1310.8423 -392.8572,165.7143"
id="path15278"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
id="path15304"
d="m 256.33057,1357.9852 -85.7143,108.5714"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15306)"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path15658"
d="m 350.61637,1359.4137 104.2857,108.5715"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15660)" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15906)"
d="m 376.33067,1312.2709 425.7143,164.2857"
id="path15904"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="20.037586"
y="1358.3875"
id="text16312"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16314"
x="20.037586"
y="1358.3875">nw</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="143.27599"
y="1409.9053"
id="text16316"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16318"
x="143.27599"
y="1409.9053">ne</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="412.98669"
y="1405.8646"
id="text16320"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16322"
x="412.98669"
y="1405.8646">sw</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="537.23566"
y="1364.4484"
id="text16324"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16326"
x="537.23566"
y="1364.4484">se</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16328"
y="1544.2709"
x="430.90222"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1544.2709"
x="430.90222"
id="tspan16330"
sodipodi:role="line">Empty</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:111.40943146px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="97.928688"
y="1576.5566"
id="text16332"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16334"
x="97.928688"
y="1576.5566">F</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16342"
y="1574.5566"
x="-253.49989"
style="font-style:normal;font-weight:normal;font-size:111.40943146px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1574.5566"
x="-253.49989"
id="tspan16344"
sodipodi:role="line">A</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16916"
y="1542.2709"
x="813.18781"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1542.2709"
x="813.18781"
id="tspan16918"
sodipodi:role="line">Fork</tspan></text>
<circle
r="74.751289"
cy="1766.2461"
cx="338.8241"
id="circle16920"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle16922"
cx="687.39557"
cy="1766.2461"
r="74.751289" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle16924"
cx="1053.1097"
cy="1766.2461"
r="74.751289" />
<circle
r="74.751289"
cy="1766.2461"
cx="1418.8241"
id="circle16926"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path16928"
d="m 786.33067,1545.128 -392.8572,165.7143"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12608)" />
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15306)"
d="m 813.47347,1592.2709 -85.7143,108.5714"
id="path16930"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15660)"
d="m 907.75927,1593.6994 104.28563,108.5715"
id="path16932"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path16934"
d="m 933.47357,1546.5566 425.71423,164.2857"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker15906)" />
<text
sodipodi:linespacing="125%"
id="text16936"
y="1584.1017"
x="605.75201"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1584.1017"
x="605.75201"
id="tspan16938"
sodipodi:role="line">nw</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16940"
y="1644.1909"
x="700.41876"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1644.1909"
x="700.41876"
id="tspan16942"
sodipodi:role="line">ne</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16944"
y="1640.1503"
x="970.12946"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1640.1503"
x="970.12946"
id="tspan16946"
sodipodi:role="line">sw</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16948"
y="1598.7341"
x="1094.3785"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1598.7341"
x="1094.3785"
id="tspan16950"
sodipodi:role="line">se</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16956"
y="1810.8424"
x="655.07159"
style="font-style:normal;font-weight:normal;font-size:111.40943146px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1810.8424"
x="655.07159"
id="tspan16958"
sodipodi:role="line">E</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:111.40943146px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="303.64294"
y="1808.8424"
id="text16960"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16962"
x="303.64294"
y="1808.8424">D</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:111.40943146px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1383.6429"
y="1807.9852"
id="text16968"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16970"
x="1383.6429"
y="1807.9852">C</tspan></text>
<text
sodipodi:linespacing="125%"
id="text16972"
y="1808.8424"
x="1017.9285"
style="font-style:normal;font-weight:normal;font-size:111.40943146px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="1808.8424"
x="1017.9285"
id="tspan16974"
sodipodi:role="line">B</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="918.23126"
y="1466.4738"
id="text16976"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan16978"
x="918.23126"
y="1466.4738">mass = m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan16980">D</tspan> + m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan16982">E</tspan> + m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan16984">B</tspan> + m<tspan
style="font-size:64.99999762%;baseline-shift:sub"
id="tspan16986">C</tspan></tspan></text>
</g>
</svg>
labs/lab4-barnes-hut-simulation/sectormatrix.png

12.3 KiB

<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="sectormatrix.svg"
inkscape:export-filename="C:\cygwin\home\axel22\workspaces\scala\parprog\statements\barneshut\sectormatrix.png"
inkscape:export-xdpi="32.6516"
inkscape:export-ydpi="32.6516">
<defs
id="defs4">
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker4830"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4832"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4542"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mstart"
inkscape:collect="always">
<path
transform="scale(0.4) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path4544" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4196"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Sstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Sstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4202"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.2) translate(6,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="692.30131"
inkscape:cy="448.67197"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<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
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4138"
width="157.25688"
height="157.25688"
x="160.41716"
y="293.24829" />
<rect
y="293.24829"
x="317.80426"
height="157.25688"
width="157.25688"
id="rect4140"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="293.24829"
x="474.40179"
height="157.25688"
width="157.25688"
id="rect4142"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4144"
width="157.25688"
height="157.25688"
x="631.78894"
y="293.24829" />
<rect
y="450.89859"
x="160.41716"
height="157.25688"
width="157.25688"
id="rect4146"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4148"
width="157.25688"
height="157.25688"
x="317.80426"
y="450.89859" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4150"
width="157.25688"
height="157.25688"
x="474.40179"
y="450.89859" />
<rect
y="450.89859"
x="631.78894"
height="157.25688"
width="157.25688"
id="rect4152"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="608.02252"
x="160.41716"
height="157.25688"
width="157.25688"
id="rect4154"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4156"
width="157.25688"
height="157.25688"
x="317.80426"
y="608.02252" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4158"
width="157.25688"
height="157.25688"
x="474.40179"
y="608.02252" />
<rect
y="608.02252"
x="631.78894"
height="157.25688"
width="157.25688"
id="rect4160"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4162"
width="157.25688"
height="157.25688"
x="160.41716"
y="765.67279" />
<rect
y="765.67279"
x="317.80426"
height="157.25688"
width="157.25688"
id="rect4164"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="765.67279"
x="474.40179"
height="157.25688"
width="157.25688"
id="rect4166"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:4.60580969;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4168"
width="157.25688"
height="157.25688"
x="631.78894"
y="765.67279" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4170"
cx="435"
cy="491.64792"
r="13.571428" />
<circle
r="13.571428"
cy="854.50507"
cx="699.28577"
id="circle4172"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4174"
cx="769.28577"
cy="824.50507"
r="13.571428" />
<circle
r="13.571428"
cy="894.50507"
cx="790.71436"
id="circle4176"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4178"
cx="726.42865"
cy="295.93362"
r="13.571428" />
<circle
r="13.571428"
cy="805.93365"
cx="267.85727"
id="circle4180"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle4182"
cx="555.20319"
cy="717.37964"
r="13.571428" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:15, 5;stroke-dashoffset:0;marker-start:url(#Arrow1Mstart)"
d="m 721.42857,569.50506 c 250,-70 350.00003,-5.71428 350.00003,-5.71428"
id="path4184"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1090"
y="582.36218"
id="text4530"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4532"
x="1090"
y="582.36218"
style="-inkscape-font-specification:'Andale Mono';font-family:'Andale Mono';font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">ConcBuffer[Body]</tspan></text>
<path
inkscape:connector-curvature="0"
id="path4540"
d="m 738.57143,392.3622 c 250,-70 395.71437,142.85715 395.71437,142.85715"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:15, 5;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker4542)"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:15, 5;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker4830)"
d="m 725.71429,699.50506 c 280.00001,38.57143 402.85731,-92.85714 402.85731,-92.85714"
id="path4828"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="171.72594"
y="345.25543"
id="text5218"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5220"
x="171.72594"
y="345.25543">0,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5222"
y="345.25543"
x="341.43158"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="341.43158"
id="tspan5224"
sodipodi:role="line">1,0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="494.97476"
y="345.25543"
id="text5226"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5228"
x="494.97476"
y="345.25543">2,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5230"
y="345.25543"
x="650.53827"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="345.25543"
x="650.53827"
id="tspan5232"
sodipodi:role="line">3,0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5234"
y="504.85953"
x="171.72594"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="171.72594"
id="tspan5236"
sodipodi:role="line">0,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="341.43158"
y="504.85953"
id="text5238"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5240"
x="341.43158"
y="504.85953">1,1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5242"
y="504.85953"
x="494.97476"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="504.85953"
x="494.97476"
id="tspan5244"
sodipodi:role="line">2,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="650.53827"
y="504.85953"
id="text5246"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5248"
x="650.53827"
y="504.85953">3,1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="171.72594"
y="656.38239"
id="text5250"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5252"
x="171.72594"
y="656.38239">0,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5254"
y="656.38239"
x="341.43158"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="341.43158"
id="tspan5256"
sodipodi:role="line">1,2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="494.97476"
y="656.38239"
id="text5258"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5260"
x="494.97476"
y="656.38239">2,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5262"
y="656.38239"
x="650.53827"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="656.38239"
x="650.53827"
id="tspan5264"
sodipodi:role="line">3,2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5266"
y="813.96619"
x="171.72594"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="171.72594"
id="tspan5268"
sodipodi:role="line">0,3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="341.43158"
y="813.96619"
id="text5270"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5272"
x="341.43158"
y="813.96619">1,3</tspan></text>
<text
sodipodi:linespacing="125%"
id="text5274"
y="813.96619"
x="494.97476"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="813.96619"
x="494.97476"
id="tspan5276"
sodipodi:role="line">2,3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="650.53827"
y="813.96619"
id="text5278"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5280"
x="650.53827"
y="813.96619">3,3</tspan></text>
</g>
</svg>