1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
//vodafone call visualisation
//
//Tim Redfern Jan 2012
//
//scale of wall 10.57x2.8m - some parts are obscured
//
//416 x 110 in. ~ 62400x16500 ~ 1029 mpx ~ 2945 MB ram to open
//
//CousinMarriageWorld.svg, nominally 940 × 470 pixels, file size: 1.99 MB
//World_map_(Miller_cylindrical_projection,_blank).svg, nominally 634 × 477 pixels, file size: 1.84 MB
//wikimedia
//
//http://www.vectortemplates.com/vector-world-map.php
//requirements -
//must be able to transform points to a new projection
// maybe not through normal shape library
//must be able to find a random point within the shape
//
//250112 so far so good, can iterate children.
//safest thing is to establish that I can place a point as being inside or outside of a shape
//(are they closed properly!)
//If we can find points in them then we can start the main task:
//connecting parts of the SVG with rows in the spreadsheet
//maybe next first I should look at projections (to keep them happy)
//I have a map with rectangular coords,
//is easy to enough to play with the projection
// public boolean contains(RGeomElem shp)
// public geomerative.RRectangle getBounds()
// --> this is kind of hidden. why? anyway, it should be possible to use it
//another option is to use the OUTLINE of the country (as a purely geometric thing).
import geomerative.*;
RShape shp;
RRectangle cb;
int whichChild,numChildren;
void setup(){
println("vodaviz v0.11");
RG.init(this);
size(800,600); //832,220);
smooth();
float m = millis();
shp = RG.loadShape("world_countries_outlines_split.svg");
RG.ignoreStyles();
println("loaded svg in "+((millis()-m)*.001)+" seconds");
numChildren=shp.children.length;
whichChild=0;
}
void draw() {
background(0,0,0);
noFill();
stroke(255);
RG.shape(shp);
whichChild=(whichChild+1)%numChildren;
println("child "+whichChild+" of "+numChildren);
cb=shp.children[whichChild].getBounds();
}
void mousePressed() {
}
|