summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgit@eclectronics.org <git@eclectronics.org@eclectronics.org>2012-02-16 16:46:43 +0000
committergit@eclectronics.org <git@eclectronics.org@eclectronics.org>2012-02-16 16:46:43 +0000
commit5a68500983aba528b0add0d2bc22abfc092c508a (patch)
tree3cfd8d2dd1a382ccb672be6cefb02d03eaa643a2
parent6cc27b0a312caf61c5f6ef84cf3f089236d7fadf (diff)
drawing 3d calpaths
-rw-r--r--bezierstroke.pde166
-rw-r--r--data/countries_named_mercator.svg10
-rw-r--r--parsecalldata.pde7
-rw-r--r--vodaviz.pde109
4 files changed, 260 insertions, 32 deletions
diff --git a/bezierstroke.pde b/bezierstroke.pde
index 2cb85de..5070f9b 100644
--- a/bezierstroke.pde
+++ b/bezierstroke.pde
@@ -26,3 +26,169 @@ class bezierstroke {
endShape();
}
}
+RPoint perpoint(RPoint p1,RPoint p2,float d) {
+ //returns a point left distance d of perpendicular line between points
+ float h=atan2(p2.y-p1.y,p2.x-p1.x);
+ return new RPoint(p2.x+(cos(h+HALF_PI)*d),p2.y+(sin(h+HALF_PI)*d));
+}
+
+class gradientstroke {
+ float startsize,endsize,mpfract,raisefract,bezierfract;
+ float[] transpos;
+ float[] transamt;
+ color col;
+ gradientstroke(float _s,float _e,float[] _p, float[] _a,color _c){
+ startsize=_s;
+ endsize=_e;
+ transpos=_p;
+ transamt=_a;
+ col=_c;
+ }
+ void drawstroke(RPoint Sp,RPoint Ep) {
+ drawstroke(Sp,Ep,col);
+ }
+ void drawstroke(RPoint Sp,RPoint Ep,color _col) {
+ noStroke();
+ fill(red(_col),green(_col),blue(_col),255);
+
+ //put ellipses in a seperate layer
+ //ellipse(Sp.x,Sp.y,startsize,startsize);
+ //ellipse(Ep.x,Ep.y,endsize,endsize);
+
+ //construct quads along path
+ //path is straight, curve comes from 3D/ raise
+ //how to deal with badly formatted control arrays? bother?
+ //3d stage in between
+ noFill();
+
+ float spos=0.0;
+ float step=.001; //optimise
+
+ //quad corner points
+ //these are perpedicular on the screen as we are making a gradient line system
+ RPoint L0,L1,p0,p1,p2,p3;
+ p0=new RPoint(0,0);
+ p1=p0;
+ L0=Sp;
+ boolean notfirst=false;
+ for (int i=0;i<transpos.length-1;i++) {
+ float transeg=transpos[i+1]-transpos[i];
+ for (float u=0;u<transeg-step;u+=step) {
+ float gradamt=u/transeg;
+ float b=255.0*((transamt[i]*(1-gradamt))+(transamt[i+1]*gradamt));
+
+ //find new point on line
+ L1=new RPoint(lerp(Sp.x,Ep.x,transpos[i]+u),lerp(Sp.y,Ep.y,transpos[i]+u));
+ float lw=lerp(startsize,endsize,transpos[i]+u)/2;
+ p2=perpoint(L0,L1,lw);
+ p3=perpoint(L0,L1,-lw);
+ if (notfirst) {
+ fill(red(_col),green(_col),blue(_col),b);
+ beginShape();
+ vertex(p0.x,p0.y);
+ vertex(p2.x,p2.y);
+ vertex(p3.x,p3.y);
+ vertex(p1.x,p1.y);
+ endShape();
+ }
+ notfirst=true;
+ p0=p2;
+ p1=p3;
+ L0=L1;
+
+ /*
+ //temporarily draw line in 2D
+ strokeWeight(((1-(transpos[i]+u))*startsize)+((transpos[i]+u)*endsize));
+ stroke(red(col),green(col),blue(col),b);
+ line(lerp(Sp.x,Ep.x,transpos[i]+u),lerp(Sp.y,Ep.y,transpos[i]+u),;
+ */
+
+
+ }
+ }
+ }
+
+}
+
+class gradientstroke3D {
+ float startsize,endsize,mpfract,raisefract,bezierfract;
+ float[] transpos;
+ float[] transamt;
+ color col;
+ sphereMap smap;
+ float hw,hh;
+ gradientstroke3D(float _s,float _e,float[] _p, float[] _a,color _c,sphereMap _sp){
+ startsize=_s;
+ endsize=_e;
+ transpos=_p;
+ transamt=_a;
+ col=_c;
+ smap=_sp;
+ hw=(getWidth()/2);
+ hh=(getHeight()/2);
+ }
+ void drawstroke(RPoint Sp,RPoint Ep) {
+ drawstroke(Sp,Ep,col);
+ }
+ void drawstroke(RPoint Sp,RPoint Ep,color _col) {
+ noStroke();
+ fill(red(_col),green(_col),blue(_col),255);
+
+ //put ellipses in a seperate layer
+ //ellipse(Sp.x,Sp.y,startsize,startsize);
+ //ellipse(Ep.x,Ep.y,endsize,endsize);
+
+ //construct quads along path
+ //path is straight, curve comes from 3D/ raise
+ //how to deal with badly formatted control arrays? bother?
+ //3d stage in between
+ noFill();
+
+ float spos=0.0;
+ float step=.001; //optimise
+
+ //quad corner points
+ //these are perpedicular on the screen as we are making a gradient line system
+ RPoint L0,L1,p0,p1,p2,p3;
+ p0=new RPoint(0,0);
+ p1=p0;
+ L0=Sp;
+ boolean notfirst=false;
+ for (int i=0;i<transpos.length-1;i++) {
+ float transeg=transpos[i+1]-transpos[i];
+ for (float u=0;u<transeg-step;u+=step) {
+ float gradamt=u/transeg;
+ float b=255.0*((transamt[i]*(1-gradamt))+(transamt[i+1]*gradamt));
+
+ //find new point on line
+ L1=smap.per(new RPoint(lerp(Sp.x,Ep.x,transpos[i]+u),lerp(Sp.y,Ep.y,transpos[i]+u)),4+(sin((transpos[i]+u)*PI)*0.1));
+ float lw=lerp(startsize,endsize,transpos[i]+u)/2;
+ p2=perpoint(L0,L1,lw);
+ p3=perpoint(L0,L1,-lw);
+ if (notfirst) {
+ fill(red(_col),green(_col),blue(_col),b);
+ beginShape();
+ vertex(p0.x+hw,p0.y+hh);
+ vertex(p2.x+hw,p2.y+hh);
+ vertex(p3.x+hw,p3.y+hh);
+ vertex(p1.x+hw,p1.y+hh);
+ endShape();
+ }
+ notfirst=true;
+ p0=p2;
+ p1=p3;
+ L0=L1;
+
+ /*
+ //temporarily draw line in 2D
+ strokeWeight(((1-(transpos[i]+u))*startsize)+((transpos[i]+u)*endsize));
+ stroke(red(col),green(col),blue(col),b);
+ line(lerp(Sp.x,Ep.x,transpos[i]+u),lerp(Sp.y,Ep.y,transpos[i]+u),;
+ */
+
+
+ }
+ }
+ }
+
+}
diff --git a/data/countries_named_mercator.svg b/data/countries_named_mercator.svg
index 34c5019..4ec965a 100644
--- a/data/countries_named_mercator.svg
+++ b/data/countries_named_mercator.svg
@@ -31,10 +31,10 @@
id="namedview3653"
showgrid="false"
inkscape:zoom="2.9881389"
- inkscape:cx="161.85424"
+ inkscape:cx="346.38381"
inkscape:cy="365.52618"
- inkscape:window-x="-8"
- inkscape:window-y="-8"
+ inkscape:window-x="1016"
+ inkscape:window-y="4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" /><metadata
id="metadata1348"><rdf:RDF><cc:Work
@@ -3807,11 +3807,9 @@
id="BOTSWANA"
style="fill:none;stroke:#6e7072;stroke-width:0.23999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:3.8499999"
inkscape:label="#polyline130" /><path
- inkscape:connector-curvature="0"
id="BRAZIL"
style="fill:none;stroke:#6e7072;stroke-width:0.23999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:3.8499999"
- d="m 239.779,314.45 -0.24,-0.24 0,-0.24 -0.48,-0.24 -0.24,-0.719 -0.24,-0.241 0.24,-0.24 -0.24,0 -0.24,-0.24 -0.24,-0.24 0,-0.239 0,-0.242 0.24,0 0.24,0 0,-0.479 0,-0.48 0.72,-0.48 0.24,-0.24 0.24,0 0,-0.241 0,-0.48 0,-0.239 0.48,-0.961 0,-0.48 0,-0.239 0,-0.24 0.48,-0.24 0.24,0 0.24,-0.241 0.24,0 0,-0.24 0.24,0 0.96,-0.48 0.24,-0.24 0,0.24 0.48,-0.24 0.24,0 0,-0.24 0.24,0 0,0.24 0,-0.24 0.24,0.24 0.24,-0.24 0.24,0 0,-0.24 0.24,-0.24 0.24,0.24 0,-0.24 0,0.24 0.24,-0.24 0,0.24 0.24,-0.24 0.24,0 0.24,0.48 0.24,-0.24 0,0.24 0.24,0 0,-0.24 0.24,-1.44 0.24,-1.441 0.24,-1.199 0.24,-1.441 0,-0.24 0.24,-0.24 0,-0.24 -0.24,-0.48 -0.24,-0.24 0,-0.24 0,-0.24 0,-0.24 -0.72,-0.48 -0.24,-0.24 0,-1.44 0,-0.24 0.24,0.24 0.48,-0.24 0.24,0 0.24,-0.24 0.24,0.24 0.24,0 0.24,0 0,-0.24 0,-0.24 -0.24,0 0,-0.24 -0.48,0 0,-0.24 -0.48,0 -0.24,0 0,-1.2 0.24,0 0.48,-0.241 0.24,0.241 2.4,0 -0.24,-0.241 0.24,-0.48 0.24,0.241 0.24,0.239 0,0.241 0.48,-0.241 0.48,-0.72 0.24,0 0.48,0.72 0.24,0.48 0,0.721 0.24,0 1.2,0.96 0.48,0 0.24,0 0.24,-0.24 0.48,-0.24 0.24,0 0,0.24 0,0.24 0,0.24 0.24,0 0,-0.48 0.24,0 0.24,0 0,-0.24 0,-0.24 0.24,0 0.24,0 0.24,-0.24 0.24,0 0.48,-0.48 0.24,0 0,0.24 0.24,-0.24 0.48,-0.48 0,-0.48 0.24,0 0.24,-0.241 0.24,0 0.72,-0.24 0,-0.24 0,-0.24 -0.24,0 -1.2,-0.24 0,-0.24 0,-0.48 -0.48,-0.48 0,-0.72 0.24,-0.24 0,-0.24 -0.72,-0.48 -0.48,-0.48 -0.24,-0.24 0.24,0 0.24,0 0,0.24 0.72,0 0.24,0 0.24,0.48 0.48,-0.24 0.48,0.24 0.24,0 0,-0.24 0.24,0 0,0.24 0.72,0.48 0.24,0.24 0.24,-0.24 0,-0.24 0,-0.24 0,-0.24 0.48,0 0,-0.24 0.24,-0.24 0.24,0.24 0.48,0 0.48,0 0.24,-0.24 0.24,0 0.24,-0.24 0,-0.24 0.24,0 0.24,0 0.48,0 0.24,-0.24 0,-0.24 0.24,0 0.24,-0.24 0.239,-0.24 -0.239,-0.481 m 0,0 0.48,0 0.48,-0.239 0.24,0 0,0.239 0.24,0.241 0,0.72 -0.24,0.24 0,0.24 0.72,0 0.24,0.24 -0.24,0 0,0.24 0,0.24 0.24,0 0,0.24 0.24,0 -0.48,0.72 -0.24,0.24 0,0.24 0,0.24 -0.24,0.72 0,0.72 0.24,0.48 0.24,0.24 0,0.721 0.24,0.239 0,0.241 0.24,0 0.48,0.72 0.48,0 0.24,0 0.24,0.24 0.24,0 0,-0.24 0.48,0.24 0,-0.24 0,-0.24 0.24,-0.241 0.24,0 0.48,0.241 0,-0.241 0,-0.239 0.48,0 0.48,0 0.48,-0.48 0,-0.241 0.239,0.241 0.241,-0.241 0,0.241 0.24,0 0.72,0 0.24,0 1.2,0.239 0,-0.239 0,-0.241 -0.48,-0.48 0.24,-0.24 0.24,-0.24 0.48,0.24 0.72,0 0,-0.24 0.24,0 0.24,-0.24 0,0.24 0.239,-0.24 0,0.24 0.241,0.24 0.239,0 0,-0.24 0.241,0 0,0.24 0,0.24 0.239,0 0.241,0 0.48,0.24 0.24,0 0.24,0 0,-0.24 0.24,0 0,-0.24 0.24,0 0.24,0.24 0.24,0 0.24,-0.24 0.24,0.24 0,0.24 0.24,-0.24 0.48,0.24 0.72,-0.72 0.24,-0.72 0.24,-0.48 0,-0.24 0.479,-0.48 0.48,-0.96 0.48,-0.24 0.241,-0.48 0,-0.24 0.48,0.24 0.239,0.48 0,0.48 0,-0.24 0.241,0 0,1.2 0.239,0.72 0,0.24 0.241,0.241 0,0.239 0,0.24 0.24,0.24 0,0.48 -0.24,0 0.24,0.24 0,-0.24 0.24,0 0,0.24 0.24,0.48 0.96,0 0.24,0.241 0,0.239 0,0.481 -0.48,0.24 0.48,0 0,0.24 -0.48,0.24 -0.24,0.24 -0.24,0.24 -0.48,0.96 -0.48,0.24 -0.241,0 -0.239,0.48 -0.241,0 -0.239,0.24 -0.241,0.48 -0.239,0.24 -0.48,0.48 0,0.48 -0.241,0.24 0,0.24 0,0.24 -0.239,0.24 -0.241,0 -0.239,-0.24 -0.96,0.48 0.96,0 0,0.241 0.239,0 0.241,0 0.719,-0.481 0.48,-0.24 0,-0.24 0.241,0 0.719,-0.48 0,-0.24 0.241,0.24 0,0.48 0,0.24 0,0.24 0.24,0.481 0.24,0.239 -0.24,0 0,0.241 -0.24,0 -0.241,-0.241 -0.48,0 0.241,0 -0.241,0 -0.239,0 0,-0.239 -0.241,0.239 -0.239,0 0.239,0 -0.239,0.48 0.239,0.481 0,0.24 0,-0.24 0,-0.481 0.241,-0.48 0.239,0.241 0.48,0.239 0,0.241 -0.239,0.24 0.239,0.48 0.241,0 -0.241,-0.24 -0.239,-0.24 0.239,-0.481 0.241,0 0,0.241 0,-0.241 0.24,-0.239 0,0.239 0,-0.239 0,-0.241 0.24,0 0.48,0.241 -0.24,0 0.24,0 0.24,0 0.24,0 0.24,-0.241 0.24,0.241 0.24,0.239 -0.24,0.241 0.24,0 0,-0.48 0.48,0 0.24,-0.241 0.24,-0.239 0,0.239 0,0.48 -0.24,0 0,0.241 0,0.24 0,0.48 -0.24,0.24 0.24,-0.24 0.24,-0.72 0.239,-0.48 0.48,-0.241 0.48,-0.72 0.241,0.24 0,-0.24 0.239,0.24 0.241,0.241 -0.241,-0.241 0.241,0 0.48,-0.24 -0.241,0 -0.48,0 0,-0.24 0.241,0 0.239,0 0,-0.48 0,-0.24 0.241,-0.24 0,-0.24 0.239,0 0.241,0 0.239,-0.24 0.241,0 0,0.24 0.239,-0.24 0.241,0 0,0.24 0.24,0 -0.24,0 0,-0.24 0.24,0 0,0.24 0,-0.24 0.24,0 0,0.24 0.24,0 -0.24,0 0.24,0 0,-0.24 0.24,0.24 0,0.24 0.24,-0.24 0,0.24 0.24,-0.24 0,0.24 0.24,0 0.24,0.24 -0.24,0 0.24,0 0,0.24 0.479,-0.24 0,0.24 0,-0.24 0,0.24 0.241,-0.24 0,0.48 0.239,-0.24 0,0.24 0.241,-0.24 0,0.24 0.239,0 0,0.24 0.241,-0.48 0,0.24 0.239,0.24 0.241,0 0,0.24 0,-0.24 0.239,0 -0.239,0.24 0,0.24 0.239,-0.24 0,-0.24 0.241,0 0,0.24 -0.241,0 0,0.24 0.241,0 -0.241,0.241 0.241,0.239 0.239,-0.239 -0.239,0 0,-0.241 0.239,-0.24 0,0.24 0.241,-0.24 0.239,0.24 0.241,-0.24 -0.241,0.481 0,-0.241 0.241,0.241 0,-0.241 0,0.241 0.239,0.239 -0.239,0 0.239,0 0,-0.239 0.241,0.239 -0.241,0.241 0.241,0 0.24,0 0,0.239 -0.24,0 0.24,0 -0.24,0.241 -0.241,0.24 0,0.24 0.241,-0.24 0.24,-0.24 0.24,0.48 -0.24,0 0,0.24 -0.481,0.24 0.241,0 0,0.24 0,0.239 -0.241,0.241 0,0.24 0.241,0 -0.48,0.24 0,0.24 0.239,0 -0.239,-0.24 0.48,0 0,-0.24 0.24,-0.24 0.24,-0.72 0,-0.24 0.48,-0.24 0.24,0 0,0.24 -0.24,0 0.24,0 -0.24,0.48 -0.241,0 -0.239,0.239 0.239,0 0,-0.239 0,0.239 0.241,-0.239 0.24,0 0,-0.24 0.24,0 0.24,-0.24 0.24,0.24 0,-0.24 0.24,0 0.239,0.24 0,-0.24 0,-0.24 0.241,0 0.96,0.24 0.719,0.48 0.241,0 0.239,0 0,0.239 0.241,0 0.48,0 -0.241,-0.239 0.48,0 0.48,0.48 0.241,0 0.239,0 0.241,0.24 0,-0.24 -0.241,0 0.481,-0.241 0.479,0 0,0.241 0.72,-0.241 1.201,0 0.239,0.241 0.241,0.24 0.48,0.24 0.239,0 0.721,0.48 0.48,0.48 0.48,0.24 0.719,0.48 0.721,0.72 0.24,0.24 0,0.24 0.48,0.24 0.48,0.24 0.239,0.24 0.48,0 0.241,0.241 0.48,0.24 0.239,0 0.721,0 0.239,-0.24 0.96,0.24 0.241,0 0.48,0.719 0,0.72 0.239,0.24 0,0.48 0.241,0.241 0.239,1.2 0,0.24 0.24,0.719 -0.24,0.481 0.24,0.24 -0.24,0 0,0.24 0,0.24 0,0.241 -0.239,0 0.239,0.239 -0.239,0.48 -0.241,1.201 -0.48,0.479 -0.239,0.24 -0.48,0.721 -0.241,0 0,-0.24 0,0.24 -0.239,0.239 0,-0.239 0,0.239 -0.241,0.481 -0.48,0.479 -0.239,0.481 -0.241,0 -0.719,0.48 -0.48,0.48 0,-0.24 0,-0.24 -0.241,0.24 0.241,0 0,0.24 -0.241,0.24 -0.239,0 0.239,0 0,0.239 0,0.241 -0.239,0.24 -0.241,0 0.241,-0.24 0,-0.241 -0.241,0.481 0,0.24 -0.239,0.479 -0.241,0.721 -0.72,0.72 -0.48,0.961 -0.48,0.239 -0.239,0 0.239,-0.239 -0.239,-0.24 -0.241,-0.241 -0.239,0.481 0,-0.24 -0.241,-0.241 0,0.241 0.241,0.24 0.239,0 -0.239,0.239 -0.241,0 0,0.24 0.241,0 -0.241,0.241 0,0.24 -0.239,0 0,0.479 0,-0.24 0,0.721 0,-0.241 -0.241,0 0.241,0.241 0,0.24 0,-0.24 0,0.24 0,0.24 0,0.239 0.239,-0.239 -0.239,-0.24 0.239,0 0,0.24 -0.239,0.96 0,1.2 0.239,0.959 0,0.482 0,0.479 -0.239,1.2 -0.241,0.96 0,0.96 0,0.241 0,0.24 -0.719,0.479 -0.241,0.481 -0.239,0.96 0,0.96 0,0.48 -0.241,0.481 -0.239,0.239 -0.241,0.48 -0.239,0 0,0.24 0,0.48 -0.241,-0.239 -0.239,0 0,0.239 0.239,0 0,0.24 -0.719,0.96 0,-0.239 -0.24,0.239 -0.241,0.48 -0.239,0.24 0,0.24 -0.24,0.241 0,0.24 0.24,0 0,0.96 -0.48,0.24 -0.96,0.24 -0.721,0.72 0,0.24 0.241,0 -0.241,0.24 0,0.24 -0.719,0 -1.44,0 0.239,-0.48 -0.239,-0.24 -0.48,0.24 0.239,0.24 0,0.24 -0.959,0.24 -0.72,0 0.48,0 0.24,-0.24 -0.48,-0.24 -0.24,0.24 -0.24,0 -0.241,0.24 0,-0.24 -0.239,0 -0.24,0 -0.481,0.24 0,0.24 0.241,0 0,0.239 0.24,0 -0.481,0 -0.239,0.242 -0.241,-0.242 0,0.242 -0.239,0 -0.241,0.239 -0.239,0 -0.241,0.24 0,0.24 -0.239,0.24 0,-0.24 -0.48,0 -0.721,0 0,0.24 -0.48,0.241 0,-0.241 -0.239,0 0.239,0.241 -0.239,0 -0.72,0.479 -0.48,0.24 -0.48,0.481 -0.48,0.239 -0.721,0.24 -0.239,0.48 -0.241,0 0.241,0 0,0.241 -0.241,0 -0.239,0.48 0,0.24 -0.241,-0.24 0.241,-0.241 -0.241,0 0,0.241 0,-0.241 -0.239,0 -0.241,0 0.241,0.241 -0.241,0.24 -0.239,-0.24 -0.241,0 0.241,0.24 -0.241,0 0.241,0 0.239,0 0.241,0 0,0.239 -0.48,0.481 -0.241,0 0.48,0 -0.239,0.719 -0.241,0 0,0.241 0.241,0.24 0,0.24 0,0.24 0,0.24 0.239,0 -0.239,0.24 0.239,0.24 -0.239,0.24 0.239,0 0,0.24 0,-0.24 -0.239,0.24 0.239,0.24 -0.239,0.24 0.239,0.24 -0.239,0.239 0.239,0.242 -0.239,0.239 0,0.24 -0.241,0.721 0,0.24 0,-0.24 -0.239,-0.241 0,0.481 0.239,0 -0.719,0.48 -0.72,0.48 -0.72,0.72 -0.48,0.72 -0.48,0.96 -0.24,0.959 -0.72,0.721 -0.72,0.96 -0.721,0.481 -0.96,0.719 -0.48,0.481 0,-0.24 0.241,-0.241 0,-0.24 -0.241,0 0,-0.239 0.241,0.239 0.239,0 0.241,0 -0.241,-0.239 0.48,0 0.48,-0.481 0.241,0 0.239,-0.24 0,-0.48 0,-0.24 0.48,0 0,0.24 0,-0.24 0,-0.24 0,-0.24 0.481,0 0,-0.239 0,-0.242 0,-0.479 0.24,0.24 0.24,-0.24 -0.24,-0.24 0,-0.24 -0.24,0.24 0.24,0 -0.24,0 -0.24,0.24 0,-0.24 -0.241,0.24 0,0.24 -0.239,-0.24 0.239,-0.24 -0.239,0 -0.241,-0.24 -0.239,-0.241 0,0.481 0.239,0.24 0.241,0 -0.241,0 -0.239,0.24 0,0.239 0,0.242 0,0.239 0,-0.239 0,-0.242 -0.241,0 0,0.242 0,0.239 -0.239,0.24 0,0.24 0.239,0 -0.239,0 -0.241,0.24 0,0.24 -0.48,0 -0.239,0.24 0,0.481 0,-0.241 -0.241,0 0,0.241 0.241,0 -0.241,0 -0.239,0.24 0,0.239 0.239,0 0,0.24 -0.239,0 0,0.241 0.239,-0.241 0,0.241 0,0.24 -0.479,0.239 -0.24,0.961 -0.48,0.72 -0.48,0.48 -0.96,0.72 -0.24,0 0,-0.24 0,-0.48 0,-0.48 0,-0.241 0.72,-0.72 0.24,0 -0.24,0 -0.24,-0.24 -0.24,0 -0.48,-0.48 -0.24,-0.479 -0.24,-0.241 -0.24,0 -0.24,-0.24 -0.72,-0.479 0,-0.241 -0.241,-0.24 -0.719,0 -0.241,-0.24 -0.239,0 -0.24,0 -0.48,-0.72 -0.24,-0.24 0,0.24 -0.24,0 -0.24,0.24 -0.48,0 0,-0.24 0.24,-0.24 -0.24,0 -0.24,-0.481 -0.24,-0.239 -0.72,-0.48 -0.24,-0.24 -0.48,0 -0.24,0 -0.241,0.24 -0.719,0 -0.241,-0.24 0.241,0 0.48,-0.241 0,-0.479 0.239,0 0.241,0 0,-0.24 0.72,-0.72 0.24,-0.24 0,-0.241 0.48,0 0,-0.239 0.24,-0.241 0,-0.239 0.48,-0.241 0,-0.239 0.24,-0.24 0.24,0 0.24,0 0,-0.241 -0.24,0 0.24,-0.24 0.48,-0.24 0.24,-0.24 0.24,-0.239 0.24,0 0.239,0 -0.239,0 0.239,0 0.241,-0.242 0.239,-0.479 0,0.24 0.48,-0.24 0.241,0 0,-0.24 0.239,0.24 0,-0.24 0,0.24 0.241,-0.24 0,-0.24 0.24,0 0.48,-0.24 0.24,-0.48 0,-0.24 0,-0.24 0,-0.72 0.24,-0.241 -0.48,-0.479 0,-0.24 0,-0.481 -0.24,0 -0.24,-0.239 0,0.239 0,-0.239 -0.24,0 0,0.239 -0.241,-0.239 -0.239,0.239 -0.241,0 -0.239,-0.479 0.48,-0.48 0,-0.241 0,-0.48 0.239,-0.479 0,-0.241 0,-0.24 0.241,0 -0.241,-0.24 0,-0.24 0.241,-0.239 -0.48,-0.241 -0.48,-0.24 -0.48,0.481 -0.72,0 -0.24,0 -0.24,-0.241 0,-0.48 0,-0.24 0,-0.239 -0.24,-0.242 0,-0.239 0,-0.48 0,-0.48 -0.24,-0.48 0,-0.241 -0.24,-0.239 -0.24,0 -0.48,0 -0.48,-0.24 0,-0.24 -0.24,0 -0.24,0.48 -0.24,0 -0.24,0 -0.24,0 -0.481,0 -0.239,-0.24 -0.48,0 -0.241,0 -0.48,0 -0.239,-0.24 0.239,-0.241 0,-0.24 0,-0.239 0,-0.48 0,-0.241 0,-0.24 0.241,0 0,-0.479 -0.241,-0.241 0,-0.239 0,-0.241 -0.239,0.241 0,-0.241 0,-0.48 -0.24,0 0,-0.24 0,-0.239 0.479,-0.481 -0.479,-0.48 0.72,-1.44 0.239,0 0,-0.24 -0.239,0 0.48,-1.44 0.24,0 -0.24,0 0,-0.24 -0.48,-0.96 -0.241,-0.241 0,-0.24 -0.719,0 -0.24,-0.239 -0.24,-0.721 0,-0.72 0.24,-0.24 0,-0.48 -0.24,0.24 -0.48,0 -1.44,-0.24 -1.68,0 0,-1.68 -0.721,-0.72 0.481,0 -0.24,-0.48 0.24,-0.48 0,-0.24 -0.24,-0.48 0,-0.241 0.24,-0.479 -0.24,-0.24 -0.72,-0.241 -0.48,-0.48 -0.24,0 -0.48,0 -0.24,0.24 -0.24,-0.24 -0.24,0 -0.24,0.24 0,-0.24 -0.48,-0.239 0,-0.481 -0.72,0 -0.24,-0.24 -0.24,0 -0.24,0 -0.48,-0.479 -0.24,-0.241 -0.24,0 -0.96,-0.48 -0.24,0 -0.24,0.24 -0.96,-0.24 -0.24,-0.24 0,-0.24 -0.48,0 0,-0.24 0,0.24 -0.24,-0.48 -0.24,0 0,-0.239 -0.24,-0.242 -0.24,0 0,-0.239 0,-0.24 -0.24,0 0,-0.24 0,-0.24 -0.24,0 0,-0.241 0.24,-0.479 0,-0.24 -0.24,0 0,-0.72 0,-0.24 0.24,0 0,-0.241 0,-0.479 0,-0.24 -0.24,-0.48 -0.24,0.48 -0.24,0 0,-0.241 -0.24,0 -0.48,0 -1.2,0.241 -0.48,0.24 -0.72,0.72 -0.24,0 -0.72,0.479 -0.24,0.241 -0.24,0 -0.24,0 -0.24,0 -0.48,0.48 -0.48,0.479 -0.48,0 0,-0.239 -0.24,0 -0.24,-0.24 -1.2,0 -0.72,0 -0.24,0 -0.48,0.24 -0.24,0 -0.24,-0.24 -0.24,0.24 0,-1.2 0,-1.2 0.24,-0.241 0,-0.239 -0.24,0 0.24,-0.24 0,-0.24 -0.24,0 -0.24,0.24 -0.24,0.479 -0.96,0.481 -0.48,0 -1.2,0 0,-0.24 0,-0.241 -0.24,0 0,-0.479 -0.48,0 -0.24,-0.24 -1.2,0 0.48,-0.481 0,-0.24 0,-0.239 -0.48,-0.481 m 47.04,-14.402 -0.24,0 0,-0.239 -0.48,-0.481 0,-0.72 0.24,0 0.24,0.24 0,-0.24 0.24,0 0,-0.24 -0.24,0.24 -0.24,0 -0.24,-0.24 0.24,-0.24 -0.24,-0.24 0.24,-0.48 0.24,0.24 0.24,0 -0.24,0 -0.24,-0.24 0.24,-0.48 0,-0.24 0.24,0 0.72,0 1.2,0.24 0.24,0 0.479,-0.24 0.48,0 1.201,0.24 0,0.24 0,0.24 -0.241,0.48 0,0.24 -0.239,0.24 0,0.24 -0.241,0.24 -0.239,0.48 -0.241,0.24 -0.48,0.241 -0.479,0 -0.24,-0.241 0,0.241 -0.24,0.239 -0.24,-0.239 0,0.239 -0.48,-0.239 -0.24,0.239 -0.48,0 0.24,0 -0.48,0 m 1.68,-3.36 -0.24,-0.24 0.48,-0.24 0.24,0 0.24,0.24 -0.24,0.24 -0.48,0 m -1.2,-0.96 -0.24,-0.24 0.24,-0.24 0.48,-0.24 0,0.24 -0.48,0.48 m -3.361,3.6 -0.239,0 0.239,-0.24 0,-0.24 0.48,-0.24 0,-0.48 0.241,-0.48 0.239,-0.24 0.48,0 0,0.24 -0.239,0.72 -0.721,0.72 -0.239,0.24 -0.241,0 m 0.96,-1.92 0,-0.24 0.241,0 0,-0.24 0.48,-0.24 0,0.24 -0.48,0.48 -0.241,0 m 1.201,-0.48 -0.241,0 -0.239,-0.24 0.239,-0.24 0.721,0 -0.48,0.48 m 1.68,-0.48 -0.72,-0.24 0,-0.24 1.44,-0.24 0,0.24 -0.24,0.24 -0.24,0.24 -0.24,0 m -0.96,-0.48 0.24,-0.48 -0.24,-0.24 0.24,-0.24 0,0.72 -0.24,0.24 m 4.079,58.088 0,-0.721 0.241,-0.24 0,0.24 -0.241,0.721 m -5.52,-55.688 0,-0.24 0.241,-0.24 0.48,-0.24 0,0.24 -0.241,0 -0.239,0.48 -0.241,0"
- inkscape:label="#polyline154" /><polyline
+ d="m 239.779,314.45 -0.24,-0.24 0,-0.24 -0.48,-0.24 -0.24,-0.719 -0.24,-0.241 0.24,-0.24 -0.24,0 -0.24,-0.24 -0.24,-0.24 0,-0.239 0,-0.242 0.24,0 0.24,0 0,-0.479 0,-0.48 0.72,-0.48 0.24,-0.24 0.24,0 0,-0.241 0,-0.48 0,-0.239 0.48,-0.961 0,-0.48 0,-0.239 0,-0.24 0.48,-0.24 0.24,0 0.24,-0.241 0.24,0 0,-0.24 0.24,0 0.96,-0.48 0.24,-0.24 0,0.24 0.48,-0.24 0.24,0 0,-0.24 0.24,0 0,0.24 0,-0.24 0.24,0.24 0.24,-0.24 0.24,0 0,-0.24 0.24,-0.24 0.24,0.24 0,-0.24 0,0.24 0.24,-0.24 0,0.24 0.24,-0.24 0.24,0 0.24,0.48 0.24,-0.24 0,0.24 0.24,0 0,-0.24 0.24,-1.44 0.24,-1.441 0.24,-1.199 0.24,-1.441 0,-0.24 0.24,-0.24 0,-0.24 -0.24,-0.48 -0.24,-0.24 0,-0.24 0,-0.24 0,-0.24 -0.72,-0.48 -0.24,-0.24 0,-1.44 0,-0.24 0.24,0.24 0.48,-0.24 0.24,0 0.24,-0.24 0.24,0.24 0.24,0 0.24,0 0,-0.24 0,-0.24 -0.24,0 0,-0.24 -0.48,0 0,-0.24 -0.48,0 -0.24,0 0,-1.2 0.24,0 0.48,-0.241 0.24,0.241 2.4,0 -0.24,-0.241 0.24,-0.48 0.24,0.241 0.24,0.239 0,0.241 0.48,-0.241 0.48,-0.72 0.24,0 0.48,0.72 0.24,0.48 0,0.721 0.24,0 1.2,0.96 0.48,0 0.24,0 0.24,-0.24 0.48,-0.24 0.24,0 0,0.24 0,0.24 0,0.24 0.24,0 0,-0.48 0.24,0 0.24,0 0,-0.24 0,-0.24 0.24,0 0.24,0 0.24,-0.24 0.24,0 0.48,-0.48 0.24,0 0,0.24 0.24,-0.24 0.48,-0.48 0,-0.48 0.24,0 0.24,-0.241 0.24,0 0.72,-0.24 0,-0.24 0,-0.24 -0.24,0 -1.2,-0.24 0,-0.24 0,-0.48 -0.48,-0.48 0,-0.72 0.24,-0.24 0,-0.24 -0.72,-0.48 -0.48,-0.48 -0.24,-0.24 0.24,0 0.24,0 0,0.24 0.72,0 0.24,0 0.24,0.48 0.48,-0.24 0.48,0.24 0.24,0 0,-0.24 0.24,0 0,0.24 0.72,0.48 0.24,0.24 0.24,-0.24 0,-0.24 0,-0.24 0,-0.24 0.48,0 0,-0.24 0.24,-0.24 0.24,0.24 0.48,0 0.48,0 0.24,-0.24 0.24,0 0.24,-0.24 0,-0.24 0.24,0 0.24,0 0.48,0 0.24,-0.24 0,-0.24 0.24,0 0.24,-0.24 0.239,-0.24 -0.239,-0.481 m 0,0 0.48,0 0.48,-0.239 0.24,0 0,0.239 0.24,0.241 0,0.72 -0.24,0.24 0,0.24 0.72,0 0.24,0.24 -0.24,0 0,0.24 0,0.24 0.24,0 0,0.24 0.24,0 -0.48,0.72 -0.24,0.24 0,0.24 0,0.24 -0.24,0.72 0,0.72 0.24,0.48 0.24,0.24 0,0.721 0.24,0.239 0,0.241 0.24,0 0.48,0.72 0.48,0 0.24,0 0.24,0.24 0.24,0 0,-0.24 0.48,0.24 0,-0.24 0,-0.24 0.24,-0.241 0.24,0 0.48,0.241 0,-0.241 0,-0.239 0.48,0 0.48,0 0.48,-0.48 0,-0.241 0.239,0.241 0.241,-0.241 0,0.241 0.24,0 0.72,0 0.24,0 1.2,0.239 0,-0.239 0,-0.241 -0.48,-0.48 0.24,-0.24 0.24,-0.24 0.48,0.24 0.72,0 0,-0.24 0.24,0 0.24,-0.24 0,0.24 0.239,-0.24 0,0.24 0.241,0.24 0.239,0 0,-0.24 0.241,0 0,0.24 0,0.24 0.239,0 0.241,0 0.48,0.24 0.24,0 0.24,0 0,-0.24 0.24,0 0,-0.24 0.24,0 0.24,0.24 0.24,0 0.24,-0.24 0.24,0.24 0,0.24 0.24,-0.24 0.48,0.24 0.72,-0.72 0.24,-0.72 0.24,-0.48 0,-0.24 0.479,-0.48 0.48,-0.96 0.48,-0.24 0.241,-0.48 0,-0.24 0.48,0.24 0.239,0.48 0,0.48 0,-0.24 0.241,0 0,1.2 0.239,0.72 0,0.24 0.241,0.241 0,0.239 0,0.24 0.24,0.24 0,0.48 -0.24,0 0.24,0.24 0,-0.24 0.24,0 0,0.24 0.24,0.48 0.96,0 0.24,0.241 0,0.239 0,0.481 -0.48,0.24 0.48,0 0,0.24 -0.48,0.24 -0.24,0.24 -0.24,0.24 -0.48,0.96 -0.48,0.24 -0.241,0 -0.239,0.48 -0.241,0 -0.239,0.24 -0.241,0.48 -0.239,0.24 -0.48,0.48 0,0.48 -0.241,0.24 0,0.24 0,0.24 -0.239,0.24 -0.241,0 -0.239,-0.24 -0.96,0.48 0.96,0 0,0.241 0.239,0 0.241,0 0.719,-0.481 0.48,-0.24 0,-0.24 0.241,0 0.719,-0.48 0,-0.24 0.241,0.24 0,0.48 0,0.24 0,0.24 0.24,0.481 0.24,0.239 -0.24,0 0,0.241 -0.24,0 -0.241,-0.241 -0.48,0 0.241,0 -0.241,0 -0.239,0 0,-0.239 -0.241,0.239 -0.239,0 0.239,0 -0.239,0.48 0.239,0.481 0,0.24 0,-0.24 0,-0.481 0.241,-0.48 0.239,0.241 0.48,0.239 0,0.241 -0.239,0.24 0.239,0.48 0.241,0 -0.241,-0.24 -0.239,-0.24 0.239,-0.481 0.241,0 0,0.241 0,-0.241 0.24,-0.239 0,0.239 0,-0.239 0,-0.241 0.24,0 0.48,0.241 -0.24,0 0.24,0 0.24,0 0.24,0 0.24,-0.241 0.24,0.241 0.24,0.239 -0.24,0.241 0.24,0 0,-0.48 0.48,0 0.24,-0.241 0.24,-0.239 0,0.239 0,0.48 -0.24,0 0,0.241 0,0.24 0,0.48 -0.24,0.24 0.24,-0.24 0.24,-0.72 0.239,-0.48 0.48,-0.241 0.48,-0.72 0.241,0.24 0,-0.24 0.239,0.24 0.241,0.241 -0.241,-0.241 0.241,0 0.48,-0.24 -0.241,0 -0.48,0 0,-0.24 0.241,0 0.239,0 0,-0.48 0,-0.24 0.241,-0.24 0,-0.24 0.239,0 0.241,0 0.239,-0.24 0.241,0 0,0.24 0.239,-0.24 0.241,0 0,0.24 0.24,0 -0.24,0 0,-0.24 0.24,0 0,0.24 0,-0.24 0.24,0 0,0.24 0.24,0 -0.24,0 0.24,0 0,-0.24 0.24,0.24 0,0.24 0.24,-0.24 0,0.24 0.24,-0.24 0,0.24 0.24,0 0.24,0.24 -0.24,0 0.24,0 0,0.24 0.479,-0.24 0,0.24 0,-0.24 0,0.24 0.241,-0.24 0,0.48 0.239,-0.24 0,0.24 0.241,-0.24 0,0.24 0.239,0 0,0.24 0.241,-0.48 0,0.24 0.239,0.24 0.241,0 0,0.24 0,-0.24 0.239,0 -0.239,0.24 0,0.24 0.239,-0.24 0,-0.24 0.241,0 0,0.24 -0.241,0 0,0.24 0.241,0 -0.241,0.241 0.241,0.239 0.239,-0.239 -0.239,0 0,-0.241 0.239,-0.24 0,0.24 0.241,-0.24 0.239,0.24 0.241,-0.24 -0.241,0.481 0,-0.241 0.241,0.241 0,-0.241 0,0.241 0.239,0.239 -0.239,0 0.239,0 0,-0.239 0.241,0.239 -0.241,0.241 0.241,0 0.24,0 0,0.239 -0.24,0 0.24,0 -0.24,0.241 -0.241,0.24 0,0.24 0.241,-0.24 0.24,-0.24 0.24,0.48 -0.24,0 0,0.24 -0.481,0.24 0.241,0 0,0.24 0,0.239 -0.241,0.241 0,0.24 0.241,0 -0.48,0.24 0,0.24 0.239,0 -0.239,-0.24 0.48,0 0,-0.24 0.24,-0.24 0.24,-0.72 0,-0.24 0.48,-0.24 0.24,0 0,0.24 -0.24,0 0.24,0 -0.24,0.48 -0.241,0 -0.239,0.239 0.239,0 0,-0.239 0,0.239 0.241,-0.239 0.24,0 0,-0.24 0.24,0 0.24,-0.24 0.24,0.24 0,-0.24 0.24,0 0.239,0.24 0,-0.24 0,-0.24 0.241,0 0.96,0.24 0.719,0.48 0.241,0 0.239,0 0,0.239 0.241,0 0.48,0 -0.241,-0.239 0.48,0 0.48,0.48 0.241,0 0.239,0 0.241,0.24 0,-0.24 -0.241,0 0.481,-0.241 0.479,0 0,0.241 0.72,-0.241 1.201,0 0.239,0.241 0.241,0.24 0.48,0.24 0.239,0 0.721,0.48 0.48,0.48 0.48,0.24 0.719,0.48 0.721,0.72 0.24,0.24 0,0.24 0.48,0.24 0.48,0.24 0.239,0.24 0.48,0 0.241,0.241 0.48,0.24 0.239,0 0.721,0 0.239,-0.24 0.96,0.24 0.241,0 0.48,0.719 0,0.72 0.239,0.24 0,0.48 0.241,0.241 0.239,1.2 0,0.24 0.24,0.719 -0.24,0.481 0.24,0.24 -0.24,0 0,0.24 0,0.24 0,0.241 -0.239,0 0.239,0.239 -0.239,0.48 -0.241,1.201 -0.48,0.479 -0.239,0.24 -0.48,0.721 -0.241,0 0,-0.24 0,0.24 -0.239,0.239 0,-0.239 0,0.239 -0.241,0.481 -0.48,0.479 -0.239,0.481 -0.241,0 -0.719,0.48 -0.48,0.48 0,-0.24 0,-0.24 -0.241,0.24 0.241,0 0,0.24 -0.241,0.24 -0.239,0 0.239,0 0,0.239 0,0.241 -0.239,0.24 -0.241,0 0.241,-0.24 0,-0.241 -0.241,0.481 0,0.24 -0.239,0.479 -0.241,0.721 -0.72,0.72 -0.48,0.961 -0.48,0.239 -0.239,0 0.239,-0.239 -0.239,-0.24 -0.241,-0.241 -0.239,0.481 0,-0.24 -0.241,-0.241 0,0.241 0.241,0.24 0.239,0 -0.239,0.239 -0.241,0 0,0.24 0.241,0 -0.241,0.241 0,0.24 -0.239,0 0,0.479 0,-0.24 0,0.721 0,-0.241 -0.241,0 0.241,0.241 0,0.24 0,-0.24 0,0.24 0,0.24 0,0.239 0.239,-0.239 -0.239,-0.24 0.239,0 0,0.24 -0.239,0.96 0,1.2 0.239,0.959 0,0.482 0,0.479 -0.239,1.2 -0.241,0.96 0,0.96 0,0.241 0,0.24 -0.719,0.479 -0.241,0.481 -0.239,0.96 0,0.96 0,0.48 -0.241,0.481 -0.239,0.239 -0.241,0.48 -0.239,0 0,0.24 0,0.48 -0.241,-0.239 -0.239,0 0,0.239 0.239,0 0,0.24 -0.719,0.96 0,-0.239 -0.24,0.239 -0.241,0.48 -0.239,0.24 0,0.24 -0.24,0.241 0,0.24 0.24,0 0,0.96 -0.48,0.24 -0.96,0.24 -0.721,0.72 0,0.24 0.241,0 -0.241,0.24 0,0.24 -0.719,0 -1.44,0 0.239,-0.48 -0.239,-0.24 -0.48,0.24 0.239,0.24 0,0.24 -0.959,0.24 -0.72,0 0.48,0 0.24,-0.24 -0.48,-0.24 -0.24,0.24 -0.24,0 -0.241,0.24 0,-0.24 -0.239,0 -0.24,0 -0.481,0.24 0,0.24 0.241,0 0,0.239 0.24,0 -0.481,0 -0.239,0.242 -0.241,-0.242 0,0.242 -0.239,0 -0.241,0.239 -0.239,0 -0.241,0.24 0,0.24 -0.239,0.24 0,-0.24 -0.48,0 -0.721,0 0,0.24 -0.48,0.241 0,-0.241 -0.239,0 0.239,0.241 -0.239,0 -0.72,0.479 -0.48,0.24 -0.48,0.481 -0.48,0.239 -0.721,0.24 -0.239,0.48 -0.241,0 0.241,0 0,0.241 -0.241,0 -0.239,0.48 0,0.24 -0.241,-0.24 0.241,-0.241 -0.241,0 0,0.241 0,-0.241 -0.239,0 -0.241,0 0.241,0.241 -0.241,0.24 -0.239,-0.24 -0.241,0 0.241,0.24 -0.241,0 0.241,0 0.239,0 0.241,0 0,0.239 -0.48,0.481 -0.241,0 0.48,0 -0.239,0.719 -0.241,0 0,0.241 0.241,0.24 0,0.24 0,0.24 0,0.24 0.239,0 -0.239,0.24 0.239,0.24 -0.239,0.24 0.239,0 0,0.24 0,-0.24 -0.239,0.24 0.239,0.24 -0.239,0.24 0.239,0.24 -0.239,0.239 0.239,0.242 -0.239,0.239 0,0.24 -0.241,0.721 0,0.24 0,-0.24 -0.239,-0.241 0,0.481 0.239,0 -0.719,0.48 -0.72,0.48 -0.72,0.72 -0.48,0.72 -0.48,0.96 -0.24,0.959 -0.72,0.721 -0.72,0.96 -0.721,0.481 -0.96,0.719 -0.48,0.481 0,-0.24 0.241,-0.241 0,-0.24 -0.241,0 0,-0.239 0.241,0.239 0.239,0 0.241,0 -0.241,-0.239 0.48,0 0.48,-0.481 0.241,0 0.239,-0.24 0,-0.48 0,-0.24 0.48,0 0,0.24 0,-0.24 0,-0.24 0,-0.24 0.481,0 0,-0.239 0,-0.242 0,-0.479 0.24,0.24 0.24,-0.24 -0.24,-0.24 0,-0.24 -0.24,0.24 0.24,0 -0.24,0 -0.24,0.24 0,-0.24 -0.241,0.24 0,0.24 -0.239,-0.24 0.239,-0.24 -0.239,0 -0.241,-0.24 -0.239,-0.241 0,0.481 0.239,0.24 0.241,0 -0.241,0 -0.239,0.24 0,0.239 0,0.242 0,0.239 0,-0.239 0,-0.242 -0.241,0 0,0.242 0,0.239 -0.239,0.24 0,0.24 0.239,0 -0.239,0 -0.241,0.24 0,0.24 -0.48,0 -0.239,0.24 0,0.481 0,-0.241 -0.241,0 0,0.241 0.241,0 -0.241,0 -0.239,0.24 0,0.239 0.239,0 0,0.24 -0.239,0 0,0.241 0.239,-0.241 0,0.241 0,0.24 -0.479,0.239 -0.24,0.961 -0.48,0.72 -0.48,0.48 -0.96,0.72 -0.24,0 0,-0.24 0,-0.48 0,-0.48 0,-0.241 0.72,-0.72 0.24,0 -0.24,0 -0.24,-0.24 -0.24,0 -0.48,-0.48 -0.24,-0.479 -0.24,-0.241 -0.24,0 -0.24,-0.24 -0.72,-0.479 0,-0.241 -0.241,-0.24 -0.719,0 -0.241,-0.24 -0.239,0 -0.24,0 -0.48,-0.72 -0.24,-0.24 0,0.24 -0.24,0 -0.24,0.24 -0.48,0 0,-0.24 0.24,-0.24 -0.24,0 -0.24,-0.481 -0.24,-0.239 -0.72,-0.48 -0.24,-0.24 -0.48,0 -0.24,0 -0.241,0.24 -0.719,0 -0.241,-0.24 0.241,0 0.48,-0.241 0,-0.479 0.239,0 0.241,0 0,-0.24 0.72,-0.72 0.24,-0.24 0,-0.241 0.48,0 0,-0.239 0.24,-0.241 0,-0.239 0.48,-0.241 0,-0.239 0.24,-0.24 0.24,0 0.24,0 0,-0.241 -0.24,0 0.24,-0.24 0.48,-0.24 0.24,-0.24 0.24,-0.239 0.24,0 0.239,0 -0.239,0 0.239,0 0.241,-0.242 0.239,-0.479 0,0.24 0.48,-0.24 0.241,0 0,-0.24 0.239,0.24 0,-0.24 0,0.24 0.241,-0.24 0,-0.24 0.24,0 0.48,-0.24 0.24,-0.48 0,-0.24 0,-0.24 0,-0.72 0.24,-0.241 -0.48,-0.479 0,-0.24 0,-0.481 -0.24,0 -0.24,-0.239 0,0.239 0,-0.239 -0.24,0 0,0.239 -0.241,-0.239 -0.239,0.239 -0.241,0 -0.239,-0.479 0.48,-0.48 0,-0.241 0,-0.48 0.239,-0.479 0,-0.241 0,-0.24 0.241,0 -0.241,-0.24 0,-0.24 0.241,-0.239 -0.48,-0.241 -0.48,-0.24 -0.48,0.481 -0.72,0 -0.24,0 -0.24,-0.241 0,-0.48 0,-0.24 0,-0.239 -0.24,-0.242 0,-0.239 0,-0.48 0,-0.48 -0.24,-0.48 0,-0.241 -0.24,-0.239 -0.24,0 -0.48,0 -0.48,-0.24 0,-0.24 -0.24,0 -0.24,0.48 -0.24,0 -0.24,0 -0.24,0 -0.481,0 -0.239,-0.24 -0.48,0 -0.241,0 -0.48,0 -0.239,-0.24 0.239,-0.241 0,-0.24 0,-0.239 0,-0.48 0,-0.241 0,-0.24 0.241,0 0,-0.479 -0.241,-0.241 0,-0.239 0,-0.241 -0.239,0.241 0,-0.241 0,-0.48 -0.24,0 0,-0.24 0,-0.239 0.479,-0.481 -0.479,-0.48 0.72,-1.44 0.239,0 0,-0.24 -0.239,0 0.48,-1.44 0.24,0 -0.24,0 0,-0.24 -0.48,-0.96 -0.241,-0.241 0,-0.24 -0.719,0 -0.24,-0.239 -0.24,-0.721 0,-0.72 0.24,-0.24 0,-0.48 -0.24,0.24 -0.48,0 -1.44,-0.24 -1.68,0 0,-1.68 -0.721,-0.72 0.481,0 -0.24,-0.48 0.24,-0.48 0,-0.24 -0.24,-0.48 0,-0.241 0.24,-0.479 -0.24,-0.24 -0.72,-0.241 -0.48,-0.48 -0.24,0 -0.48,0 -0.24,0.24 -0.24,-0.24 -0.24,0 -0.24,0.24 0,-0.24 -0.48,-0.239 0,-0.481 -0.72,0 -0.24,-0.24 -0.24,0 -0.24,0 -0.48,-0.479 -0.24,-0.241 -0.24,0 -0.96,-0.48 -0.24,0 -0.24,0.24 -0.96,-0.24 -0.24,-0.24 0,-0.24 -0.48,0 0,-0.24 0,0.24 -0.24,-0.48 -0.24,0 0,-0.239 -0.24,-0.242 -0.24,0 0,-0.239 0,-0.24 -0.24,0 0,-0.24 0,-0.24 -0.24,0 0,-0.241 0.24,-0.479 0,-0.24 -0.24,0 0,-0.72 0,-0.24 0.24,0 0,-0.241 0,-0.479 0,-0.24 -0.24,-0.48 -0.24,0.48 -0.24,0 0,-0.241 -0.24,0 -0.48,0 -1.2,0.241 -0.48,0.24 -0.72,0.72 -0.24,0 -0.72,0.479 -0.24,0.241 -0.24,0 -0.24,0 -0.24,0 -0.48,0.48 -0.48,0.479 -0.48,0 0,-0.239 -0.24,0 -0.24,-0.24 -1.2,0 -0.72,0 -0.24,0 -0.48,0.24 -0.24,0 -0.24,-0.24 -0.24,0.24 0,-1.2 0,-1.2 0.24,-0.241 0,-0.239 -0.24,0 0.24,-0.24 0,-0.24 -0.24,0 -0.24,0.24 -0.24,0.479 -0.96,0.481 -0.48,0 -1.2,0 0,-0.24 0,-0.241 -0.24,0 0,-0.479 -0.48,0 -0.24,-0.24 -1.2,0 0.48,-0.481 0,-0.24 0,-0.239 -0.48,-0.481 m 47.04,-14.402 -0.24,0 0,-0.239 -0.48,-0.481 0,-0.72 0.24,0 0.24,0.24 0,-0.24 0.24,0 0,-0.24 -0.24,0.24 -0.24,0 -0.24,-0.24 0.24,-0.24 -0.24,-0.24 0.24,-0.48 0.24,0.24 0.24,0 -0.24,0 -0.24,-0.24 0.24,-0.48 0,-0.24 0.24,0 0.72,0 1.2,0.24 0.24,0 0.479,-0.24 0.48,0 1.201,0.24 0,0.24 0,0.24 -0.241,0.48 0,0.24 -0.239,0.24 0,0.24 -0.241,0.24 -0.239,0.48 -0.241,0.24 -0.48,0.241 -0.479,0 -0.24,-0.241 0,0.241 -0.24,0.239 -0.24,-0.239 0,0.239 -0.48,-0.239 -0.24,0.239 -0.48,0 0.24,0 -0.48,0 m 1.68,-3.36 -0.24,-0.24 0.48,-0.24 0.24,0 0.24,0.24 -0.24,0.24 -0.48,0 m -1.2,-0.96 -0.24,-0.24 0.24,-0.24 0.48,-0.24 0,0.24 -0.48,0.48 m -3.361,3.6 -0.239,0 0.239,-0.24 0,-0.24 0.48,-0.24 0,-0.48 0.241,-0.48 0.239,-0.24 0.48,0 0,0.24 -0.239,0.72 -0.721,0.72 -0.239,0.24 -0.241,0 m 0.96,-1.92 0,-0.24 0.241,0 0,-0.24 0.48,-0.24 0,0.24 -0.48,0.48 -0.241,0 m 1.201,-0.48 -0.241,0 -0.239,-0.24 0.239,-0.24 0.721,0 -0.48,0.48 m 1.68,-0.48 -0.72,-0.24 0,-0.24 1.44,-0.24 0,0.24 -0.24,0.24 -0.24,0.24 -0.24,0 m -0.96,-0.48 0.24,-0.48 -0.24,-0.24 0.24,-0.24 0,0.72 -0.24,0.24 m 4.079,58.088 0,-0.721 0.241,-0.24 0,0.24 -0.241,0.721 m -5.52,-55.688 0,-0.24 0.241,-0.24 0.48,-0.24 0,0.24 -0.241,0 -0.239,0.48 -0.241,0" /><polyline
clip-path="url(#SVGID_4_-1)"
stroke-miterlimit="3.85"
points=" 452.418,305.569 452.418,304.849 452.178,304.369 452.178,303.889 452.178,303.169 452.178,302.689 451.938,302.449 451.698,302.208 451.698,301.969 451.698,301.729 451.938,301.729 452.418,301.969 452.418,302.208 452.657,302.208 452.897,302.208 453.378,302.208 453.378,301.969 453.617,301.489 453.617,301.249 453.857,301.249 453.857,301.489 454.098,301.489 454.098,301.249 454.338,301.249 454.577,301.009 454.818,301.249 454.577,301.729 454.577,301.969 454.818,301.969 454.818,301.729 454.577,301.969 454.577,302.208 454.818,302.449 455.298,302.449 455.538,302.449 455.538,302.929 455.538,303.169 455.298,303.169 455.058,303.169 455.058,303.409 454.577,303.649 454.577,304.129 454.338,304.129 454.338,304.369 454.098,304.609 453.857,305.089 453.617,305.329 453.378,305.329 453.378,305.569 453.138,305.569 452.897,305.569 452.418,305.569 "
diff --git a/parsecalldata.pde b/parsecalldata.pde
index 38bcd1e..ccedc4f 100644
--- a/parsecalldata.pde
+++ b/parsecalldata.pde
@@ -41,6 +41,11 @@ class country {
if (searching==0) return np;
else return new RPoint(0,0);
}
+ RPoint getcentre() {
+ RPoint tl=outline.getTopLeft();
+ RPoint br=outline.getBottomRight();
+ return new RPoint((tl.x+br.x)/2,(tl.y+br.y)/2);
+ }
}
class weightedpixel {
@@ -167,7 +172,7 @@ class calldata {
for (int i=0; i < countries.size(); i++) {
//if (DEBUG) countries.get(i).printOut();
- countries.get(i).analyse(18.279,746.302,109,374.293); //129.314
+ //countries.get(i).analyse(18.279,746.302,109,374.293); //129.314
}
}
diff --git a/vodaviz.pde b/vodaviz.pde
index d12db59..3f104a0 100644
--- a/vodaviz.pde
+++ b/vodaviz.pde
@@ -78,6 +78,17 @@ The intermediate latitude and longitude is then given by:
drawing - circles (fixed diameter), closed shape made of 2 bezier curves
+paths above 3d globe
+fix missing countries
+render above map
+colours
+sort lines according to destination ?
+
+match 3D map or render texture out of processing
+or export 3d lines - dx
+
+cache points!
+
*/
import processing.pdf.*;
@@ -108,7 +119,7 @@ class pointTransform {
RPoint form(RPoint in) {
//transform
- return new RPoint (((in.x*0.25)+(PI/2)),((in.y)*0.3)+(PI/2)); //front half of sphere
+ return new RPoint (((in.x*0.053)+(PI/2)-.01),((in.y)*0.14)+(PI/2)-.1); //front half of sphere
}
}
@@ -120,9 +131,9 @@ class sphereMap {
//map to 3D sphere
float r=getHeight()*_r;
- float x=r*cos(p.x)*(sin(p.y)) *2;
- float z=r*sin(p.x)*(sin(p.y))-985;
- float y=r*cos(p.y)+(getHeight()*0.5)-210;
+ float x=r*cos(p.x)*(sin(p.y)) *4;
+ float z=r*sin(p.x)*(sin(p.y)) -985;
+ float y=r*cos(p.y)+(getHeight()*1)-330;
//camera at 0,0,0
//screen plane at 0,0,100
@@ -173,6 +184,7 @@ calldata calls;
bitmapcountry Ireland;
bezierstroke bstroke;
+gradientstroke3D gstroke;
PImage lightmap;
color bg,fg;
@@ -182,12 +194,12 @@ void setup(){
RG.init(this);
//mode="PDF";
- if (mode=="PDF") size(832,220,PDF, "vodaviz_test_140212.pdf"); //P3D); //832,220); //nb pdf is 800x600
+ if (mode=="PDF") size(832,220,PDF, "vodaviz_bg_160212.pdf"); //P3D); //832,220); //nb pdf is 800x600
else size(832,220); //,PDF, "testoutput.pdf"); //P3D); //832,220); //nb pdf is 800x600
// C. 33 - M. 3 - Y. 0 - K. 0
bg=color(164,215,244);
- fg=color(255,255,255);
+ fg=color(#D2131D);
smooth();
float m = millis();
@@ -198,7 +210,7 @@ void setup(){
ptrans = new pointTransform();
smap = new sphereMap();
- lightmap=loadImage("earth_lights.gif");
+ lightmap=loadImage("vodaviz_bg_160212.png");
float startsize=0.2;
float endsize=0.1;
@@ -208,6 +220,13 @@ void setup(){
float bezierfract=0.25;
bstroke = new bezierstroke(startsize,endsize,linewidth,mpfract,raisefract,bezierfract);
+ startsize=10;
+ endsize=.5;
+ float[] transpos={0.0,0.15,0.85,1.0};
+ float[] transamt={0.5,0.2,0.2,0.5};
+ color col=color(0,0,0);
+ gstroke=new gradientstroke3D(startsize,endsize,transpos,transamt,col,smap);
+
RG.ignoreStyles();
println("loaded svg in "+((millis()-m)*.001)+" seconds");
Ireland=new bitmapcountry("Ireland",0,0,shp.children[0]);
@@ -218,7 +237,7 @@ void setup(){
background(255,255,255);
noFill();
stroke(255);
- strokeWeight(.02);
+ strokeWeight(.002);
if (false) { //check worked example http://williams.best.vwh.net/avform.htm#Example
RPoint LAX=new RPoint(2.066470,0.592539);
@@ -238,35 +257,68 @@ int j=0;
void draw() {
noStroke();
+ float hw=getWidth()/2;
+ float hh=getHeight()/2;
if (i==0) {
- //image(lightmap,0,0,getWidth(),getHeight());
- fill(bg);
- rect(0,0,width,height);
+ image(lightmap,0,0,getWidth(),getHeight());
+ //fill(bg);
+ //rect(0,0,width,height);
+ //background(0);
+
+ if (false) { //render lightmap in 3D
+ float pw=0.5/lightmap.width;
+ float ph=0.5/lightmap.height;
+ for (int j=0;j<lightmap.width;j++) {
+ for (int k=0;k<lightmap.height;k++) {
+ fill(lightmap.get(j,k));
+ float u=(((float)j)/lightmap.width)-0.5;
+ float v=(((float)k)/lightmap.height)-0.5;
+ RPoint p0=smap.per(ptrans.form(new RPoint((u-pw)*TWO_PI,(v+ph)*PI)),4);
+ RPoint p1=smap.per(ptrans.form(new RPoint((u+pw)*TWO_PI,(v+ph)*PI)),4);
+ RPoint p2=smap.per(ptrans.form(new RPoint((u-pw)*TWO_PI,(v-ph)*PI)),4);
+ RPoint p3=smap.per(ptrans.form(new RPoint((u+pw)*TWO_PI,(v-ph)*PI)),4);
+ quad(p0.x+hw,p0.y+hh,p1.x+hw,p1.y+hh,p3.x+hw,p3.y+hh,p2.x+hw,p2.y+hh); //clockwise
+ //quad(p0.x,p0.y,p1.x,p1.y,p3.x,p3.y,p2.x,p2.y); //clockwise
+ }
+ }
+ }
}
- fill(fg);
+ //fill(fg);
//pick a random colour
- //stroke(random(150)+10,random(150)+10,random(150)+10);
+ //fg=color(random(150)+10,random(150)+10,random(150)+10);
+ stroke(fg);
//stroke(0,0,0,50);
- if (false) //draw globe
+ if (true) //draw globe 1 country per frame
{
- if (true) { //draw countries
- beginShape();
- for (int k=0;k<calls.getcountry(i).outline.paths[0].commands.length;k++) {
- RPoint sp=calls.getcountry(i).outline.paths[0].commands[k].startPoint;
- RPoint dp=smap.per(ptrans.form(pnorm.alise(sp)),4);
-
- vertex(dp.x+(getWidth()/2),dp.y+(getHeight()/2)); //,z); //z);
- }
- endShape();
- //println("drawing "+calls.getcountry(i).name+": "+calls.getcountry(i).outline.paths[0].commands.length+" points");
+ if (false) { //draw countries
+ //noStroke();
+ //fill(fg);
+ println("drawing "+calls.getcountry(i).name+": "+calls.getcountry(i).outline.paths.length+" paths");
+
+ for (int l=0;l<calls.getcountry(i).outline.paths.length;l++) {
+ beginShape();
+ for (int k=0;k<calls.getcountry(i).outline.paths[l].commands.length;k++) {
+ RPoint sp=calls.getcountry(i).outline.paths[l].commands[k].startPoint;
+ RPoint dp=smap.per(ptrans.form(pnorm.alise(sp)),4);
+
+ vertex(dp.x+(getWidth()/2),dp.y+(getHeight()/2)); //,z); //z);
+ }
+ endShape();
+ }
+
}
+ if (true) { //draw centre lines from countries to ireland
+ RPoint Sp=ptrans.form(pnorm.alise(calls.countries.get(i).getcentre()));
+ RPoint Ep=ptrans.form(pnorm.alise(Ireland.getcentre()));
+ gstroke.drawstroke(Sp,Ep,fg);
+ }
- if (true) {
+ if (false) {
for (int j=0;j<calls.countries.get(i).calls*.001;j++) {
RPoint s=calls.countries.get(i).getpoint();
RPoint e=Ireland.getpoint();
@@ -317,6 +369,12 @@ void draw() {
}
//println("plotting "+calls.countries.get(i).name+": "+calls.countries.get(i).calls+" calls");
}
+ if (false) { //fill country
+ for (int j=0;j<calls.countries.get(i).points.size();j++) {
+ RPoint Sp=calls.countries.get(i).points.get(j).pt;
+ ellipse(Sp.x,Sp.y,1,1);
+ }
+ }
}
@@ -326,6 +384,7 @@ void draw() {
if (i==calls.countries.size()-1) {
println("finished");
noLoop();
+ //save("160212_filled.png");
if (mode=="PDF") exit();
}
}