Skip to content

Instantly share code, notes, and snippets.

@dribnet
Last active November 2, 2016 00:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dribnet/efeb7d59314531617cd9a90a79665256 to your computer and use it in GitHub Desktop.
Save dribnet/efeb7d59314531617cd9a90a79665256 to your computer and use it in GitHub Desktop.
Glyph Poster Hack
license: mit
/*
* values is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {
push();
stroke(0);
strokeWeight(size/64);
strokeCap(SQUARE);
translate(size/2, size/2);
// Moon - inner shape
push();
var moon_size = size/2.5;
var moon_width = map(values[0], 0, 100, -moon_size, moon_size);
var moon_left = moon_width < 0;
if (moon_left) {
fill(240);
ellipse(0, 0, moon_size, moon_size);
noStroke();
fill(0);
// Left moon arc
arc(0, 0, moon_width, moon_size, HALF_PI + PI, HALF_PI);
// Right semi-cricle
arc(0, 0, moon_size, moon_size, HALF_PI + PI, HALF_PI);
}
else {
fill(0);
noStroke();
ellipse(0, 0, moon_size, moon_size);
fill(240);
// Right moon arc
arc(0, 0, moon_width, moon_size, HALF_PI + PI, HALF_PI);
// Left semi-cricle
arc(0, 0, moon_size, moon_size, HALF_PI, HALF_PI + PI);
// Circle stroke
noFill();
stroke(0);
ellipse(0, 0, moon_size, moon_size);
}
pop();
fill(0);
// Sun
var sun_size = size - (size/2);
// Tilt - 0 to PI
var tilt = map(values[1], 0, 100, 0, PI);
rotate(tilt);
// Sun rays
var radius = sun_size/2;
var ray_length = map(values[2], 0, 100, 0, sun_size/4);
var num_rays = 16;
var angle = TWO_PI/num_rays;
for (var i = 0; i < num_rays; i++) {
// Make room for pole
if (angle * i == PI) {
continue;
}
var x1 = sin(angle * i) * (radius);
var y1 = cos(angle * i) * (radius);
var x2 = sin(angle * i) * (radius + ray_length);
var y2 = cos(angle * i) * (radius + ray_length);
line(x1, y1, x2, y2);
}
// Pole
push();
translate(0, -radius);
var pole_length = map(values[3], 0, 100, sun_size/8, (size/2 - sun_size/2));
stroke(255);
line(0, 0, 0, -pole_length);
pop();
// Sun - outer circle
noFill();
ellipse(0, 0, sun_size, sun_size);
pop();
}
/*
* values is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
var wing_tilt_value = values[0];
var wing_colour_value = values[1];
var wing_pattern_value = values[2];
var wing_edge_value = values[3];
var body_length_value = values[4];
var body_colour_value = values[5];
var body_width_value = values[6];
var feeler_value_length = values[7];
push();
rotate(radians(-18));
translate(-76, 50);
// translate(-90, 58);
scale(0.5);
// image(moth, 0, 0);
pop();
push();
noStroke();
fill(0);
translate(size/2, size/2.5);
scale(1.16);
// Feelers
push();
var feeler_angle = radians(30);
var feeler_length = map(feeler_value_length, 0, 100, size/25, size/5);
stroke(60);
strokeWeight(size/100);
translate(0, -size/11);
rotate(feeler_angle);
line(0, 0, 0, -feeler_length);
rotate(-(feeler_angle * 2));
line(0, 0, 0, -feeler_length);
pop();
// Body
push();
var body_col_1 = [224, 185, 100];
var body_col_2 = [210, 218, 221];
var r = map(body_colour_value, 0, 100, body_col_1[0], body_col_2[0]);
var g = map(body_colour_value, 0, 100, body_col_1[1], body_col_2[1]);
var b = map(body_colour_value, 0, 100, body_col_1[2], body_col_2[2]);
var body_colour = color(r, g, b);
var body_length = map(body_length_value, 0, 100, -size/12.8, size/4);
var body_width = map(body_width_value, 0, 100, -size/12.8, size/64);
fill(body_colour);
var p1 = createVector(0, -size/11.5);
var p2 = createVector(size/36, -size/16);
var p3 = createVector(size/28 + body_width/2, -size/size + body_length);
var p4 = createVector(size/28 + body_width, size/9 + body_length);
var p5 = createVector(size/42 + body_width, size/5.5 + body_length);
var p6 = createVector(0, size/4.3 + body_length);
beginShape();
curveVertex(p1.x, p1.y);
curveVertex(p1.x, p1.y);
curveVertex(p2.x, p2.y);
curveVertex(p3.x, p3.y);
curveVertex(p4.x, p4.y);
curveVertex(p5.x, p5.y);
curveVertex(p6.x, p6.y);
curveVertex(-p5.x, p5.y);
curveVertex(-p4.x, p4.y);
curveVertex(-p3.x, p3.y);
curveVertex(-p2.x, p2.y);
curveVertex(-p1.x, p1.y);
curveVertex(-p1.x, p1.y);
endShape();
pop();
// Wings
var upper_wing_col_1 = [242, 197, 150];
var upper_wing_col_2 = [163, 97, 31];
var r = map(wing_colour_value, 0, 100, upper_wing_col_1[0], upper_wing_col_2[0]);
var g = map(wing_colour_value, 0, 100, upper_wing_col_1[1], upper_wing_col_2[1]);
var b = map(wing_colour_value, 0, 100, upper_wing_col_1[2], upper_wing_col_2[2]);
// Lower
push();
var lower_wing_colour = color(r * 0.6, g * 0.6, b * 0.6);
var lower_wing_rotation = map(wing_tilt_value, 0, 100, 0, radians(30));
colorMode(HSB, 100);
fill(lower_wing_colour);
translate(size/30, -size/32);
rotate(-lower_wing_rotation);
var p1 = createVector(0, size/size);
var p2 = createVector(size/15, size/64);
var p3 = createVector(size/5.4, size/7);
var p4 = createVector(size/6, size/4.5);
var p5 = createVector(size/12, size/3.7);
var p6 = createVector(0, size/3.7);
var p7 = createVector(-size/size, size/25.5);
wing(p1, p2, p3, p4, p5, p6, p7);
pop();
push();
fill(lower_wing_colour);
translate(-size/30, -size/32);
rotate(lower_wing_rotation);
wing(p1, p2, p3, p4, p5, p6, p7, true);
pop();
// Upper
push();
var upper_wing_colour = color(r, g, b);
var upper_wing_rotation = map(wing_tilt_value, 0, 100, radians(-40), radians(30));
fill(upper_wing_colour);
translate(size/30, -size/25.6);
rotate(-upper_wing_rotation);
var p1 = createVector(-size/85, -size/85);
var p2 = createVector(size/23.2, -size/21.3);
var p3 = createVector(size/3.08, -size/16);
var p4 = createVector(size/2.5, -size/125);
var p5 = createVector(size/3.9, size/6.4);
var p6 = createVector(size/5.9, size/6.7);
var p7 = createVector(size/125, size/51.2);
wing(p1, p2, p3, p4, p5, p6, p7);
// Inner shapes
push();
var wing_inner_opacity = map(wing_pattern_value, 0, 100, 0, 70);
scale(0.3, 0.4);
translate(0, -size/30);
fill(0, wing_inner_opacity);
wing(p1, p2, p3, p4, p5, p6, p7);
scale(1.3);
wing(p1, p2, p3, p4, p5, p6, p7);
scale(1.3, 1.1);
wing(p1, p2, p3, p4, p5, p6, p7);
scale(1.3, 1.1);
wing(p1, p2, p3, p4, p5, p6, p7);
pop();
// Wing edge
push();
var wing_edge_size = map(wing_edge_value, 0, 100, size/256, size/20);
stroke(220);
strokeWeight(wing_edge_size);
noFill();
beginShape();
curveVertex(p3.x, p3.y);
curveVertex(p4.x, p4.y);
curveVertex(p5.x, p5.y);
curveVertex(p6.x, p6.y);
curveVertex(p7.x, p7.y);
endShape();
pop();
rotate(upper_wing_rotation);
translate(-(size/15), 0);
rotate(upper_wing_rotation);
wing(p1, p2, p3, p4, p5, p6, p7, true);
// Inner shapes
push();
scale(0.3, 0.4);
translate(0, -size/30);
fill(0, wing_inner_opacity);
wing(p1, p2, p3, p4, p5, p6, p7, true);
scale(1.3);
wing(p1, p2, p3, p4, p5, p6, p7, true);
scale(1.3, 1.1);
wing(p1, p2, p3, p4, p5, p6, p7, true);
scale(1.3, 1.1);
wing(p1, p2, p3, p4, p5, p6, p7, true);
pop();
// Wing edge
push();
stroke(220);
strokeWeight(wing_edge_size);
noFill();
beginShape();
curveVertex(-p3.x, p3.y);
curveVertex(-p4.x, p4.y);
curveVertex(-p5.x, p5.y);
curveVertex(-p6.x, p6.y);
curveVertex(-p7.x, p7.y);
endShape();
pop();
pop();
pop();
}
function wing(p1, p2, p3, p4, p5, p6, p7, left_wing) {
if (left_wing) {
beginShape();
curveVertex(-p1.x, p1.y);
curveVertex(-p1.x, p1.y);
curveVertex(-p2.x, p2.y);
curveVertex(-p3.x, p3.y);
curveVertex(-p4.x, p4.y);
curveVertex(-p5.x, p5.y);
curveVertex(-p6.x, p6.y);
curveVertex(-p7.x, p7.y);
curveVertex(-p1.x, p1.y);
curveVertex(-p1.x, p1.y);
endShape();
return;
}
beginShape();
curveVertex(p1.x, p1.y);
curveVertex(p1.x, p1.y);
curveVertex(p2.x, p2.y);
curveVertex(p3.x, p3.y);
curveVertex(p4.x, p4.y);
curveVertex(p5.x, p5.y);
curveVertex(p6.x, p6.y);
curveVertex(p7.x, p7.y);
curveVertex(p1.x, p1.y);
curveVertex(p1.x, p1.y);
endShape();
}
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {
//Base circle
var color1 = map(values[0], 0, 100, 10, 70);
stroke(255);
strokeWeight(2);
fill(color1);
var s2 = size/2;
ellipse(s2, s2, size);
//map values
var size1 = map(values[1], 0, 100, 10, 80);
var size2 = map(values[2], 0, 100, 10, 80);
var rot = map(values[3], 0, 100, 0, TWO_PI);
//draw line based on values[3]
stroke(255);
strokeWeight(2);
//line(s2, size, s2, 0);
//line(s2, s2, s2 - (s2 * cos(rot)), s2 - (s2 * sin(rot)));
line(s2 + (s2 * cos(rot)), s2 + (s2 * sin(rot)), s2 - (s2 * cos(rot)), s2 - (s2 * sin(rot)));
//calculate circle segment height from size1
var sagitta = s2 - (2 * sq(s2) - sq(size1))/(size);
//use this to find chord
var chord = sqrt((2 * sagitta * s2) - sq(sagitta)) + 2;
//use segment to fill in left arc
stroke(255);
strokeWeight(2);
fill(128);
var a = atan((chord)/sagitta);
arc(0, s2, size1 * 2, size1 * 2, TWO_PI - a, a, OPEN);
//hide remaining pixels
noStroke();
rect(-1, -1, sagitta + 1, size + 1);
//do same for value[2], but on the right
sagitta = s2 - (2 * sq(s2) - sq(size2))/(size);
chord = sqrt((2 * sagitta * s2) - sq(sagitta)) + 2;
stroke(255);
strokeWeight(2);
fill(128);
var a = atan((chord)/sagitta);
arc(size, s2, size2 * 2, size2 * 2, PI - a, PI + a, OPEN);
noStroke();
rect(size - sagitta - 1, -1, size + 1, size + 1);
//make a spot in the middle if there is room
if(size1 < size/2.4 && size2 < size/2.4){
fill(255);
noStroke();
ellipse(s2, s2, 20, 20);
}
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
//base rectangle
stroke(255);
fill(map(values[0], 0, 100, 10, 80));
rect(0, 0, size, size);
var s = size/3;
//first cutout
var r1up = map(values[1], 0, 100, 0, size);
var r1down = map(values[2], 0, 100, 0, size);
//maintain minimum size
if(r1up > r1down - s){r1down = r1up + s;}
//don't go over the edge
if(r1down > size){
r1down = size;
}
//do cutout
rectMode(CORNER);
fill(128);
rect(size - (size/4) - s/2, 0 + r1up, s, r1down - r1up);
//hide outlines
if(r1down == size){
noStroke();
rect(size - (size/4) - s/2, size - 1, s, 2);
}
if(r1up == 0){
noStroke();
rect(size - (size/4) - s/2, -1, s, 2);
}
/*____________________________________________________*/
//second cutout
var r2down = map(values[3], 0, 100, 0, size);
var r2up = map(values[4], 0, 100, 0, size);
if(r2down < r2up + s){r2down = r2up + s;}
if(r2down > size){
r2down = size;
}
fill(128);
stroke(255);
rect(size - (size/1.3) - s/2, 0 + r2up, s, r2down - r2up);
if(r2down == size){
noStroke();
rect(size - (size/1.3) - s/2, size - 1, s, 2);
}
if(r2up == 0){
noStroke();
rect(size - (size/1.3) - s/2, -1, s, 2);
}
/*____________________________________________________*/
//third cutout <- WARNING: REVOLTING CODE JUNGLE AHEAD
//first find where there is space
var corner = 0;
if(r2up > size/2){
corner = 1; //top left
}
else if(r2down < size/2){
corner = 2; //bottom left
}
else if(r1up > size/2){
corner = 3; //top right
}
else if(r1down < size/2){
corner = 4; //bottom right
}
rectMode(CORNERS);
//then make cutout depending on result and dimensions of other cutouts
if(corner == 0) {return;}
else if(corner == 1){
var right = map(values[6], 0, 100, 0, size);
var left = map(values[7], 0, 100, 0, size);
if(r1up < size/2 && right > (size - size/4 - s/2)){
right = size - size/4 - s/2 - 10;
}
else if(right > size){
right = size;
}
if(left > right - s){
left = right - s;
}
if(left < 0){
left = 0;
}
fill(128);
stroke(255);
rect(left, size/4 - s/2, right, size/4 + s/2);
if(left == 0){
noStroke();
rect(-1, size/4 - s/2, 2, size/4 + s/2);
}
if(right == size){
noStroke();
rect(size - 1, size/4 - s/2, size + 1, size/4 + s/2);
}
}
else if(corner == 2){
var right = map(values[6], 0, 100, 0, size);
var left = map(values[7], 0, 100, 0, size);
if(r1down > size/2 && right > (size - size/4 - s/2)){
right = size - size/4 - s/2 - 10;
}
else if(right > size){
right = size;
}
if(left > right - s){
left = right - s;
}
if(left < 0){
left = 0;
}
fill(128);
stroke(255);
rect(left, size/4 * 3 - s/2, right, size/4 * 3 + s/2);
if(left == 0){
noStroke();
rect(-1, size/4 * 3- s/2, 2, size/4 * 3 + s/2);
}
if(right == size){
noStroke();
rect(size - 1, size/4 * 3 - s/2, size + 1, size/4 * 3 + s/2);
}
}
else if(corner == 3){
var left = map(values[6], 0, 100, 0, size);
var right = map(values[7], 0, 100, 0, size);
if(r2up < size/2 && left < (0 + size/4 + s/2)){
left = 0 + size/4 + s/2 + 10;
}
else if(left < 0){
left = 0;
}
if(right < left + s){
right = left + s;
}
if(right > size){
right = size;
}
fill(128);
stroke(255);
rect(left, size/4 - s/2, right, size/4 + s/2);
if(left == 0){
noStroke();
rect(-1, size/4 - s/2, 2, size/4 + s/2);
}
if(right == size){
noStroke();
rect(size - 1, size/4 - s/2, size + 1, size/4 + s/2);
}
}
else if(corner == 4){
var left = map(values[6], 0, 100, 0, size);
var right = map(values[7], 0, 100, 0, size);
if(r2down > size/2 && left < (0 + size/4 + s/2)){
left = 0 + size/4 + s/2 + 10;
}
else if(left < 0){
left = 0;
}
if(right < left + s){
right = left + s;
}
if(right > size){
right = size;
}
fill(128);
stroke(255);
rect(left, size/4 * 3 - s/2, right, size/4 * 3 + s/2);
if(left == 0){
noStroke();
rect(-1, size/4 * 3 - s/2, 2, size/4 * 3 + s/2);
}
if(right == size){
noStroke();
rect(size - 1, size/4 * 3 - s/2, size + 1, size/4 * 3 + s/2);
}
}
}
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {smooth();
smooth();
var color1 = map(values[0], 0, 100, 10, 40)
var color2 = map(values[1], 0, 100, color1+190, 255)
fill(color2, 1);
stroke(color2, 3);
//Create usable numbers
var val1 = map(values[0], 0, 100, 0, size);
var val2 = map(values[1], 0, 100, 0, size);
var val3 = map(values[2], 0, 100, 0, size);
var val4 = map(values[3], 0, 100, 0, size);
for (var i = -(size/4); i < size/4; i += 1) {
//create variables to keep lines in circle
var d = i;
var r = size/2;
d2 = d * d;
r2 = r * r;
var chordLen = 2 * (sqrt(r2 - d2));
// curves
bezier(r - chordLen /2, r + d, val1, val2, val3, val4, r + chordLen /2, r + d);
bezier(r - chordLen /2, r + d, val2, val1, val4, val3, r + chordLen /2, r + d);
bezier(r - chordLen /2, r + d, val3, val4, val1, val2, r + chordLen /2, r + d);
bezier(r - chordLen /2, r + d, val4, val3, val2, val1, r + chordLen /2, r + d);
}
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
smooth()
var color1 = map(values[0], 0, 100, 0, 140);
stroke(color1);
var color2 = map(values[1], 0, 100, color1+20, 240);
stroke(color2);
noFill();
//Create usable numbers
var val0 = map(values[0], 0, 100, 0, size);
var val1 = map(values[1], 0, 100, 0, size);
var val2 = map(values[2], 0, 100, 0, size);
var val3 = map(values[3], 0, 100, 0, size);
var val4 = map(values[4], 0, 100, 0, size);
var val5 = map(values[5], 0, 100, 0, size);
var val6 = map(values[6], 0, 100, 0, size);
var val7 = map(values[7], 0, 100, 0, size);
//draw each line, with a small vertical gap between
var i = 0;
bezier(0, (size/5.2) + i, val1, val2, val3, val0, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val0, val3, val2, val1, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val2, val1, val0, val3, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val3, val0, val1, val2, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val0, val3, val2, val1, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val1, val2, val3, val0, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val0, val3, val2, val1, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val2, val1, val0, val3, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val3, val0, val1, val2, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val0, val3, val2, val1, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val1, val2, val3, val0, size, (size/5.2) + i);
i += 4;
bezier(0, (size/5.2) + i, val0, val3, val2, val1, size, (size/5.2) + i);
i += 4;
fill(178, 36, 0);
noStroke();
//draw circles
ellipse(val4, val5, values[4]/5, values[4]/5);
ellipse(val6, val7, values[5]/5, values[5]/5);
ellipse(val5, val7, values[6]/5, values[6]/5);
ellipse(val4, val6, values[1]/5, values[1]/5);
//connect circles
stroke(178, 36, 0);
line(val4, val5, val6, val7);
line(val5, val7, val4, val6);
}
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {
var a,b,c; // For trig
var radius;
stroke(0);
noFill();
center = size/2;
ellipse( center, center, values[0]/2 );
radius = values[0] - 50;
if( radius < 0 ){ radius = 0; }
ellipse( center, center, radius )
radius = values[1];
for( var i = 0; i < 6; i++ ) {
push();
translate(size/2,size/2);
rotate(radians(i*60));
// base line ( max size = 30 )
length = radius;
if ( radius < 50 ) {
if ( radius > 30 ) {
length = 30;
}
line( 0, 0, 0, 0 - length );
length = radius - 25;
if ( length > 25 ) {
length = 25;
}
a = Math.sin( radians( 25 ) ) * length;
b = Math.cos( radians( 25 ) ) * length;
if( radius > 25 ) {
line( 0, 0 - 25, -a, -b );
line( 0, 0 - 25, a, -b );
}
} else {
length = radius - 50;
if ( length > 25 ){
length = 25;
}
a = Math.sin( radians( 25 ) ) * ( 25 - length );
b = Math.cos( radians( 25 ) ) * ( 25 - length );
if( radius < 75 ) {
line( 0, 0 - 25, -a, -b );
line( 0, 0 - 25, a, -b );
}
length = radius - 70;
if( length > 30 ){
length = 30;
}
line( 0, 0 - 30, 0, 0 - length );
}
pop();
}
for( var i = 0; i < 6; i++ ) {
push();
translate(size/2,size/2);
rotate( radians( 30 ) + radians( i * ( 60 ) ) );
line(0,0,0,0-values[3]/100 * size/2)
ellipse(0,0-10,10,10)
if( values[3] > 80 ) {
fans = values[3] - 80;
a = Math.sin( radians( 10 ) ) * fans;
b = Math.cos( radians( 10 ) ) * fans;
line(0,0- 0.8 * size/2, -a, -b);
line(0,0- 0.8 * size/2, a, -b);
}
pop();
}
for( var i = 0; i < 6; i++ ) {
push();
translate(size/2,size/2)
rotate(radians(i*60));
ellipse( 0, 0, size/2, ( values[2]/100 ) * size );
pop();
}
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
fill(values[5]*2,values[6]*2,values[7]*2,50)
rect(0,0,size,size)
push();
translate(size/2,size/2);
rotate(radians(values[4]*3.6))
var a,b,c; // For trig
var radius;
stroke(0);
noFill();
center = 0;
fill(0,0,180,50);
ellipse( center, center, values[1] );
radius = values[1] - 50;
if( radius < 0 ){ radius = 0; }
ellipse( center, center, radius )
for( var i = 0; i < 6; i++ ) {
push();
rotate( radians( 30 ) + radians( i * ( 60 ) ) );
line(0,0,0,0-values[3]/100 * size/2)
fill(155,0,0,30)
ellipse(0,0-values[3]/200 * size/2, 50,56);
if( values[3] > 80 ) {
fans = values[3] - 80;
a = Math.sin( radians( 10 ) ) * fans;
b = Math.cos( radians( 10 ) ) * fans;
line(0,0- 0.8 * size/2, -a, -b);
line(0,0- 0.8 * size/2, a, -b);
}
pop();
}
fill(180,180,0,30);
for(var i = 11; i < size; i+= 22){
ellipse(0, 0,10*values[2]/50,22*values[2]/50);
ellipse(0, 0,22*values[2]/50,10*values[2]/50);
}
for( var i = 0; i < 8; i++ ) {
push();
rotate(radians(i*60));
fill(values[5],values[6],values[7],40);
var newSize = size/6 * values[0]/100;
triangle(0,-newSize, -newSize, newSize,newSize)
pop();
}
pop();
}
<head>
<script src="http://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.3/p5.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.3/addons/p5.dom.js"></script>
<script language="javascript" type="text/javascript" src=".purview_helper.js"></script>
<script language="javascript" type="text/javascript" src="glyph.js"></script>
<script language="javascript" type="text/javascript" src="sketch.js"></script>
<style>
body { padding: 0; margin: 0; }
.inner { position: absolute; }
#controls {
font: 300 12px "Helvetica Neue";
padding: 5;
margin: 5;
background: #f0f0f0;
opacity: 0.1;
-webkit-transition: opacity 0.2s ease;
-moz-transition: opacity 0.2s ease;
-o-transition: opacity 0.2s ease;
-ms-transition: opacity 0.2s ease;
}
#controls:hover { opacity: 0.9; }
</style>
</head>
<body style="background-color:white">
<div class="outer">
<div class="inner">
<div id="canvasContainer"></div>
</div>
<div class="inner" id="controls" height="500px">
<table>
<tr>
<td>1</td>
<td id="slider1Container"></td>
</tr>
<tr>
<td>2</td>
<td id="slider2Container"></td>
</tr>
<tr>
<td>3</td>
<td id="slider3Container"></td>
</tr>
<tr>
<td>4</td>
<td id="slider4Container"></td>
</tr>
<tr>
<td>5</td>
<td id="slider5Container"></td>
</tr>
<tr>
<td>6</td>
<td id="slider6Container"></td>
</tr>
<tr>
<td>7</td>
<td id="slider7Container"></td>
</tr>
<tr>
<td>8</td>
<td id="slider8Container"></td>
</tr>
<tr>
<td>
<hr>
</td>
</tr>
<tr>
<td>Glyph</td>
<td id="selector1Container"></td>
</tr>
<tr>
<td>Mode</td>
<td id="selector2Container"></td>
</tr>
<tr>
<td>Size</td>
<td id="selector3Container"></td>
</tr>
<tr>
<td></td>
<td id="buttonContainer"></td>
</tr>
</div>
</div>
</table>
</body>
var v0;
var v1;
var v2;
var v3;
var glSize;
var v4;
var v5;
var v6;
var v7;
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {
stroke(0);
noFill();
var s2 = size/2
strokeWeight(glSize / 128);
ellipse(s2, s2, size);
v0 = values[0]/100.0; // polypoint size
v1 = values[1]/100.0; // rotation (not useful)
v2 = values[2]/100.0; // number of points
v3 = values[3]/100.0; // number of layered polys
glSize = size;
var rectSize = size;
push();
translate(rectSize*.5, rectSize*.5);
var rectHeight = rectSize / 2.85;
push();
// draw each polygon
var numPolys = max(ceil(v3 * 15), 1);
var numPoints = max(ceil(v2 * 12), 1);
var circMax = (glSize / 3.6);
push();
for (var i = numPolys; i > 0; i--) {
// rotate a tiny bit depending on v0
rotate(map(v0, 0, 1, 0, QUARTER_PI * 0.1));
var amt = i / numPolys;
var iSize = amt * rectHeight;
var circMin = map(amt, 0, 1, 0, circMax);
var circlePointSize = map(v1, 1, 0, circMin, circMax);
drawPoly(0, 0, iSize, numPoints, circlePointSize);
}
pop();
pop();
pop();
}
function drawPoly(x, y, size, numP, ripSize){
var numRips = 1;
var points = circlePoints(x, y, size, numP);
//draw polygon
push();
fill(255);
strokeWeight(glSize / 48);
beginShape();
for(var i = 0; i < points.length; i++){
var p = points[i];
vertex(p.x, p.y);
}
endShape(CLOSE);
pop();
//draw ellipses on points
push();
stroke(0);
for(var i = 0; i < points.length; i++){
var p = points[i];
for(var c = numRips; c > 0; c--){
var ripAmt = c / numRips;
var col = (1-ripAmt) * 255;
// console.log(ripAmt);
ellipse(p.x, p.y, ripAmt * ripSize, ripAmt * ripSize);
}
}
pop();
}
/*Returns a list of points that make up a circle/polygon*/
function circlePoints(x, y, size, numNodes){
var nodes = [];
for(var i = 0.0; i < numNodes; i++){
var node = {
x: 0,
y: 0
};
var amt = i/numNodes;
node.x = x + (sin(amt * TWO_PI) * size);
node.y = y + (cos(amt * TWO_PI) * size);
nodes[i] = node;
}
return nodes;
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
v0 = values[0]/100.0; // stars
v1 = values[1]/100.0; // land color (health)
v2 = values[2]/100.0; // war
v3 = values[3]/100.0; // planet direction
v4 = values[4]/100.0; // cloud position
v5 = values[5]/100.0; // planet speed
v6 = values[6]/100.0; // twilight / night
v7 = values[7]/100.0; // speed
glSize = size;
noFill();
sky();
stars();
push();
var plx = cos((v3 * TWO_PI) + PI) * glSize * 0.15 * v7;
var ply = sin((v3 * TWO_PI) + PI) * glSize * 0.15 * v7;
translate(plx, ply);
planet();
pop();
speedStrokes();
// pallet();
}
function sky(){
push();
var skyCol = lerpColor(color(cols.purple),color(0),v5);
fill(skyCol);
noStroke();
rect(0, 0, glSize, glSize);
pop();
}
function stars(){
noiseSeed(45234);
var numStars = v0 * 100;
for (var i = 0; i < numStars; i++) {
var x = noise(i * 3) * glSize;
var y = noise(i * 28736) * glSize;
star(x, y, noise(i * 123) * 5);
}
}
function star(x, y, sz){
push();
stroke(cols.yellow);
strokeWeight(glSize / 500);
var numPoints = 5;
for(var i = 0; i < numPoints; i++){
var amt = (i/numPoints) * PI;
line(x + sin(amt) * sz,y + cos(amt) * sz,x + sin(amt+PI) * sz,y + cos(amt+PI) * sz);
}
pop();
}
function planet(){
var planSize = glSize / 2;
push();
noStroke();
translate(glSize * .5, glSize * .5);
// atmosphere
var atmoCount = 10;
for (var i = 0; i < atmoCount; i++) {
var amt = (i+1.0) / atmoCount;
var scalar = map(amt, 0.0, 1, 1, 1.5);
fill(cols.blue[0],cols.blue[1],cols.blue[2],log((1-amt)+1)*50*v6);
// fill(255,0,0);
ellipse(0,0, planSize * scalar,planSize * scalar);
}
//planet
fill(cols.blue);
ellipse(0, 0, planSize, planSize);
countries(planSize);
pop();
}
function countries(size){
var c1 = [
{ x: -size/2.8, y: -size/3 },
{ x: -size*.5, y: 0 },
{ x: -size*.3, y: size*0.1},
{ x: -size*0.2, y: size*0.3},
{ x: -size*0.15, y: size*0.25},
{ x: -size*0.1, y: size*-0.1},
{ x: 0, y: size*-.4}
];
country(c1);
var c2 = [
{ x: size*.2, y: -size*0 },
{ x: size*0.5, y: 0 },
{ x: size*0.4, y: size*.3 },
{ x: size*0.2, y: size*.44 },
];
country(c2);
//explosions over c1
var points1 = getDistPoints(size*.4, size*.6, v2*20, v2*1234);
for (var i = 0; i < points1.length; i++) {
var p = points1[i];
explosion(p.x+c1[0].x, p.y+c1[0].y, glSize*.1*v2);
}
//explosions over c2
var points1 = getDistPoints(size*.3, size*.4, v2*20, v2*472);
for (var i = 0; i < points1.length; i++) {
var p = points1[i];
explosion(p.x+c2[0].x, p.y+c2[0].y, glSize*.1*v2);
}
clouds();
// c1 cities
// var cities1 =
// c2 cities
}
function country(points){
push();
stroke(color(cols.green[0],cols.green[1],cols.green[2]));
var from = color(cols.darkYellow);
var to = color(cols.green);
colorMode(RGB); // Try changing to HSB.
interA = lerpColor(from, to, v1);
fill(interA);
ellipseMode(CENTER);
stroke(0);
beginShape();
for (var i = 0; i <= points.length+2; i++) {
var x = points[i % points.length].x;
var y = points[i % points.length].y;
curveVertex(x,y);
// ellipse(x,y,3,3);
}
endShape();
pop();
}
function clouds(){
push();
var cloudSz = glSize * 0.5;
rotate(v4 * TWO_PI);
translate(glSize * 0.3,0);
rotate(HALF_PI);
translate(-cloudSz*.1, 0);
// translate(glSize * .5, glSize * .5);
ellipseMode(CENTER);
fill(cols.cream);
noStroke();
rect(0, 0, cloudSz * .2, cloudSz * .05);
ellipse(0, 0, cloudSz * .1, cloudSz * .1);
ellipse(cloudSz * .2, 0, cloudSz * .1, cloudSz * .1);
ellipse(cloudSz * .1, -cloudSz*.025, cloudSz * .12, cloudSz * .12);
//clouds
noFill();
strokeWeight(glSize * 0.008);
stroke(cols.cream);
push();
translate(glSize * 0.008,0);
// ellipse();
line(0, glSize * .04, glSize * .02, glSize * .1);
line(glSize * .04 , glSize * .04, glSize * .06, glSize * .1);
line(glSize * .08 , glSize * .04, glSize * .1, glSize * .1);
pop();
pop();
}
function explosion(x, y, size){
push();
fill(cols.red);
ellipse(x, y, size);
fill(cols.darkYellow);
ellipse(x, y, size/1.3);
pop();
}
function getDistPoints(wid, hei, num, seed){
var pts = [];
noiseSeed(seed);
for (var i = 0; i < num; i++) {
var x = noise(i*123) * wid;
var y = noise(i*12345) * hei;
pts.push({x:x,y:y});
}
return pts;
}
function speedStrokes(){
push();
translate(glSize * .5,glSize *.5);
rotate(v3 * TWO_PI);
stroke(cols.cream[0],cols.cream[1],cols.cream[2],200);
strokeWeight(glSize * 0.007);
var size = glSize * 0.3 * v7;
var xOff = glSize * 0.15;
translate((1-v7) * glSize * 0.3,0);
bezier(size * 0 + xOff,size * 0, size*.37+ xOff,size * .07, size * 0.59 + xOff, size * .05, size + xOff, size * -0.15);
translate(0,glSize * 0.05);
bezier(size * 0 + xOff,size * 0, size*.37+ xOff,size * .07, size * 0.59 + xOff, size * .05, size + xOff, size * -0.15);
translate(0,glSize * 0.05);
bezier(size * 0 + xOff,size * 0, size*.37+ xOff,size * .07, size * 0.59 + xOff, size * .05, size + xOff, size * -0.15);
pop();
}
function sketchyEllipse(xOrig, yOrig, wid, hei, funkAmt, seed){
var frequency = 3; //jaggedness
seed = seed | 70.8;
wid = wid * 0.5;
hei = hei * 0.5;
//noise seed based on position
noiseSeed(seed);
//set the max funkyness of the ellipse based on size & funk amt
var avgSizeOffset = ((wid + hei) * (constrain(funkAmt, 0, 1.0) * 0.7));
var numPoints = 50;
noiseSeed(seed * 10);
beginShape();
for(var k = 0; k <= numPoints; k++){
var amt = (k/numPoints) * TWO_PI;
var noiseX = (cos((k/numPoints)*TWO_PI) + 1)*frequency;
var noiseY = (sin((k/numPoints)*TWO_PI) + 1)*frequency;
var noiseAmt = noise(noiseX, noiseY) - 0.5;
var nextX = xOrig + sin(amt) * (wid + noiseAmt * avgSizeOffset);
var nextY = yOrig + cos(amt) * (hei + noiseAmt * avgSizeOffset);
vertex(nextX, nextY);
}
endShape(CLOSE);
}
function pallet(){
var colsKeys = Object.keys(cols);
for (var i = 0; i < colsKeys.length; i++) {
fill(cols[colsKeys[i]]);
// console.log(i,colsKeys[i]);
rect(i*10, 0, 10, 10);
}
}
var cols = {
black: [55, 55, 55],
yellow: [254, 209, 86],
red: [226, 79, 50],
cream: [226, 218, 183],
blue: [88, 182, 194],
darkYellow: [246, 163, 60],
green: [10, 208, 149],
purple: [75,59,125]
};
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {
var a,b,c; // For trig
var radius;
stroke(0);
noFill();
center = size/2;
ellipse( center, center, values[0]/2 );
radius = values[0] - 50;
if( radius < 0 ){ radius = 0; }
ellipse( center, center, radius )
radius = values[1];
for( var i = 0; i < 6; i++ ) {
push();
translate(size/2,size/2);
rotate(radians(i*60));
// base line ( max size = 30 )
length = radius;
if ( radius < 50 ) {
if ( radius > 30 ) {
length = 30;
}
line( 0, 0, 0, 0 - length );
length = radius - 25;
if ( length > 25 ) {
length = 25;
}
a = Math.sin( radians( 25 ) ) * length;
b = Math.cos( radians( 25 ) ) * length;
if( radius > 25 ) {
line( 0, 0 - 25, -a, -b );
line( 0, 0 - 25, a, -b );
}
} else {
length = radius - 50;
if ( length > 25 ){
length = 25;
}
a = Math.sin( radians( 25 ) ) * ( 25 - length );
b = Math.cos( radians( 25 ) ) * ( 25 - length );
if( radius < 75 ) {
line( 0, 0 - 25, -a, -b );
line( 0, 0 - 25, a, -b );
}
length = radius - 70;
if( length > 30 ){
length = 30;
}
line( 0, 0 - 30, 0, 0 - length );
}
pop();
}
for( var i = 0; i < 6; i++ ) {
push();
translate(size/2,size/2);
rotate( radians( 30 ) + radians( i * ( 60 ) ) );
line(0,0,0,0-values[3]/100 * size/2)
ellipse(0,0-10,10,10)
if( values[3] > 80 ) {
fans = values[3] - 80;
a = Math.sin( radians( 10 ) ) * fans;
b = Math.cos( radians( 10 ) ) * fans;
line(0,0- 0.8 * size/2, -a, -b);
line(0,0- 0.8 * size/2, a, -b);
}
pop();
}
for( var i = 0; i < 6; i++ ) {
push();
translate(size/2,size/2)
rotate(radians(i*60));
ellipse( 0, 0, size/2, ( values[2]/100 ) * size );
pop();
}
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
fill(values[5]*2,values[6]*2,values[7]*2,50)
rect(0,0,size,size)
push();
translate(size/2,size/2);
rotate(radians(values[4]*3.6))
var a,b,c; // For trig
var radius;
stroke(0);
noFill();
center = 0;
fill(0,0,180,50);
ellipse( center, center, values[1] );
radius = values[1] - 50;
if( radius < 0 ){ radius = 0; }
ellipse( center, center, radius )
for( var i = 0; i < 6; i++ ) {
push();
rotate( radians( 30 ) + radians( i * ( 60 ) ) );
line(0,0,0,0-values[3]/100 * size/2)
fill(155,0,0,30)
ellipse(0,0-values[3]/200 * size/2, 50,56);
if( values[3] > 80 ) {
fans = values[3] - 80;
a = Math.sin( radians( 10 ) ) * fans;
b = Math.cos( radians( 10 ) ) * fans;
line(0,0- 0.8 * size/2, -a, -b);
line(0,0- 0.8 * size/2, a, -b);
}
pop();
}
fill(180,180,0,30);
for(var i = 11; i < size; i+= 22){
ellipse(0, 0,10*values[2]/50,22*values[2]/50);
ellipse(0, 0,22*values[2]/50,10*values[2]/50);
}
for( var i = 0; i < 8; i++ ) {
push();
rotate(radians(i*60));
fill(values[5],values[6],values[7],40);
var newSize = size/6 * values[0]/100;
triangle(0,-newSize, -newSize, newSize,newSize)
pop();
}
pop();
}
import numpy as np
import json
fs = open("mona_cmyk_leveled_widened_39x41.raw", "rb")
ba = bytearray(fs.read())
n = map(int, ba)
a = 100.0 / 255.0 * np.asarray(n)
ap = a.reshape(41,39,4)
with open("mona.json", 'w') as outfile:
json.dump(ap.tolist(), outfile)
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {
var color1 = map(values[0], 0, 100, 10, 70)
stroke(color1);
fill(color1)
push();
collateData(values,size, true);
pop();
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
var red = [255, 0, 0];
var green = [0, 255, 0];
var blue = [0, 0, 255];
var white = [255, 255, 255];
var colors = [red, green, blue, white, red, green, blue, white];
collateData(values,size, false);
// stroke(0);
// fill(0);
// rect(0, 0, size, size);
// for(var i=0; i<8; i++) {
// stroke(colors[i]);
// fill(colors[i]);
// offsety = i * size / 8;
// offsetx = (size * values[i]) / 100;
// rect(0, offsety, offsetx, size/8);
// }
}
var grid;
var perfectSquares = [1,4,9,16,25,36,49,64,81,100];
var scaling = 150;
var baseLevel = -50;
var radius = 100;
var circular = true;
//var type = false;
function collateData(vals,size,type){
buildingExtras = vals[6];
extraJunk=vals[4]/2;
cityExcess=vals[5]/20;
extraCol = vals[7];
this.radius = size/2;
this.baseLevel = size;
scaling = size;
if(circular==true){
this.baseLevel = size*-0.3;
scaling= size*1;
}
grid = createArray(10,10);
var sum = 0;
var count = vals.length;
for(var v =0; v<vals.length;v++){
sum = sum + vals[v];
}
//////console(sum +" = sum");
var percentages = [];
for(var v =0; v<vals.length;v++){
percentages.push(map(vals[v],0,sum,0,100));
}
if(type==true){
lineCity(vals,size);
} else {
displayCity(percentages);
drawCity(size);
}
//displayCity(percentages);
//drawCity();
}
var buildingExtras;
var extraJunk;
var cityExcess;
var extraCol;
function drawCity(size){
var extra = buildingExtras/10;
var junkCount = 0;
var houseR =0;
var houseG =0;
var houseB =0;
var buildingR = 0;
var buildingG = 0;
var buildingB = 0;
var junkGrey = 0;
//console(buildingExtras);
for(var x = 0;x<grid.length;x++){
for(var y = 0;y<grid[x].length;y++){
if(grid[y][x]=="G"){
fill(0,255,0);
rect(x*size/10,y*size/10,size/10,size/10);
if(junkCount<extraJunk){
fill(80+junkGrey);
if(extraJunk>0){
junkGrey+=3;
extraJunk--;
}
ellipse(x*size/10+(size/10)/2,y*size/10+(size/10)/2,size/20,size/20);
junkCount++;
}
} else if(grid[y][x]=="R"){
fill(170,180,189);
rect(x*size/10,y*size/10,size/10,size/10);
if(junkCount<extraJunk){
fill(80+junkGrey);
if(extraJunk>0){
junkGrey+=3;
extraJunk--;
}
ellipse(x*size/10+(size/10)/2,y*size/10+(size/10)/2,size/20,size/20);
junkCount++;
}
} else if(grid[y][x]=="T"){
fill(0+buildingR,0+buildingG,255-buildingB);
drawBuilding(x*size/10,y*size/10,size/10,extra);
extra=extra-0.5;
if(extra<1){
extra=1;
}
} else if(grid[y][x]=="H"){
fill(255-houseR,0+houseG,255-houseB);
drawHouse(x*size/10,y*size/10,size/10);
} else{
fill(0);
}
if(extraCol>0){
houseR++;
houseG+=3;
houseB++;
buildingR+=2;
buildingG++;
buildingB++;
extraCol--;
}
}
}
}
function drawHouse(x,y,size){
push()
translate(0,size);
beginShape();
vertex(x+size/2,y+size);
vertex(x,y+size/2);
vertex(x,y-size/2);
vertex(x+size/2, y);
vertex(x+size/2,y+size);
endShape();
beginShape();
vertex(x+size/2,y+size);
vertex(x+size,y+size/2);
vertex(x+size,y-size/2);
vertex(x+size/2, y);
vertex(x+size/2,y+size);
endShape();
beginShape();
vertex(x+size/2, y);
vertex(x+size/2+size/4,y-size/2);
vertex(x+size,y-size/2);
endShape();
beginShape();
vertex(x+size/2, y);
vertex(x+size/2+size/4,y-size/2);
vertex(x+size/4,y-size);
vertex(x,y-size/2);
endShape();
beginShape();
vertex(x+size/2,y-size);
vertex(x+size,y-size/2);
vertex(x+size/2+size/4,y-size/2);
vertex(x+size/4,y-size);
vertex(x+size/2,y-size);
endShape();
pop();
}
function drawBuilding(x,y,size,extra){
push();
translate(0,size);
beginShape();
vertex(x+size/2,y+size);
vertex(x,y+size/2);
vertex(x,y-size*extra);
vertex(x+size/2, y-size*extra+size/2);
vertex(x+size/2,y+size);
endShape();
beginShape();
vertex(x+size/2,y+size);
vertex(x+size,y+size/2);
vertex(x+size,y-size*extra);
vertex(x+size/2, y-size*extra+size/2);
vertex(x+size/2,y+size);
endShape();
beginShape();
vertex(x,y-size*extra);
vertex(x+size/2, y-size*extra-size/2);
vertex(x+size,y-size*extra);
vertex(x+size/2, y-size*extra+size/2);
vertex(x,y-size*extra);
endShape();
pop();
}
function displayCity(percentages){
buildJunk(percentages[0]+percentages[4]);
buildRoads(percentages[1]+percentages[5]);
buildBuildings(percentages[2]+percentages[6]);
buildHouses(percentages[3]+percentages[7]);
}
function buildJunk(percent){
var x;
var y;
var count=0;
//method to figure out optimal area for junk
for(var i = 0; i<perfectSquares.length; i++){
if(percent==perfectSquares[i]){
x=i+1;
y=i+1;
break;
} else if(percent<perfectSquares[i]){
x=i+1;
y=i+1
break;
}
}
//////println(x+" "+y);
for(var startX = 0;startX<x;startX++){
for(var startY = 0;startY<y;startY++){
this.grid[startX][startY] = "G";
count++;
if(count>=percent){
return;
}
}
}
}
function buildHouses(percent){
////println(percent);
var count=0;
for(var i = 0;i<grid.length;i++){
for(var j=0;j<grid[i].length;j++){
if(grid[j][i]==0){
grid[j][i]="H";
count++;
}
}
}
}
function buildRoads(percent){
var count =0;
var bool = true;
while(count<=percent){
if(bool==true){
count = count+makeHorizontalLine("R",count, percent);
bool = false;
} else {
////println("good");
count = count+ makeVerticalLine("R",count, percent);
////println(percent+" "+count);
bool = true;
}
////println(count);
//count++;
}
}
function buildBuildings(percent){
var count =0;
var breaker = false;
var switcher = false;
while(count<percent){
if(switcher ==false){
for(var i = 0;i<grid.length;i++){
for(var j = 0;j<grid.length;j++){
if(grid[i][j]==0){
count = tower(j,i,count,percent);
breaker = true;
switcher = true;
break;
}
}
if(breaker){
breaker=false;
break;
}
}
} else {
for(var i = 0;i<grid.length;i++){
for(var j = 0;j<grid.length;j++){
if(grid[j][i]==0){
count = tower(i,j,count,percent);
breaker = true;
switcher = false;
break;
}
}
if(breaker){
breaker=false;
break;
}
}
}
////println(count+" totals");
}
////println(percent+" "+count);
}
function tower(x,y,count,percent){
if(grid[y][x]==0){
grid[y][x]="T";
// //println("")
count++;
if(count>percent){return count;}
if(x+1<grid.length){
if(grid[y][x+1]==0){
grid[y][x+1]="T";
count++;
if(count>percent){return count;}
}
}
if(y+1<grid.length){
if(grid[y+1][x]==0){
grid[y+1][x]="T";
count++;
if(count>percent){return count;}
}
}
if(y+1<grid.length&&x+1<grid.length){
if(grid[y+1][x+1]==0&&(grid[y][x+1]=="Y"||grid[y+1][x]=="T")){
grid[y+1][x+1]="T";
count++;
if(count>percent){return count;}
}
}
}
return count;
////println(x+"=x "+y+"=y");
}
function makeHorizontalLine(rep, count, percent){
for(var i = 0;i<grid.length;i++){
if(grid[i][0]==0){
for(var j = 0;j<grid[i].length;j++){
if(grid[i][j]=="0"){
grid[i][j]="R";
////println(percent+"HEY");
count++;
if (count>=percent){
return count;
}
}
}
break;
}
}
////println(count);
return count;
}
function makeVerticalLine(rep, count,percent){
for(var i = 0;i<grid.length;i++){
if(grid[0][i]==0){
for(var j = 0;j<grid[i].length;j++){
if(grid[j][i]=="0"){
grid[j][i]="R";
////println(percent+"HEY");
count++;
if (count>percent){
return;
}
}
}
break;
}
}
return count;
}
function circMap(x, y){
if(circular==true){
y=y/scaling;
vertex(radius*cos(radians(x))*y, radius*sin(radians(x))*y);
} else {
vertex(x,y);
}
}
function bezierMap(cx1,cy1,cx2,cy2, x, y){
if(circular==true){
cy1=cy1/scaling;
cy2=cy2/scaling;
y=y/scaling;
bezierVertex(radius*cos(radians(cx1))*cy1, radius*sin(radians(cx1))*cy1, radius*cos(radians(cx2))*cy2, radius*sin(radians(cx2))*cy2, radius*cos(radians(x))*y, radius*sin(radians(x))*y)
} else {
bezierVertex(cx1,cy1,cx2, cy2, x, y);
}
}
function lineCity(percentages,size){
push()
translate(width/16,height/8);
var sum = percentages[0]+percentages[1]+percentages[2]+percentages[3];
var junk = map(percentages[0],0,sum,0,100);
var parks = map(percentages[1],0,sum,0,100);
var houses = map(percentages[2],0,sum,0,100);
var buildings = map(percentages[3],0,sum,0,100);
var totalSize = size;
if(circular==true){
totalSize = 360;
}
var junkSize = totalSize/100*junk;
var parkSize = totalSize/100*parks;
var houseSize = totalSize/100*houses;
var buildingSize = totalSize/100*buildings;
////console(junkSize+"= junkSize");
////console(parkSize+"= parkSize");
////console(houseSize+"= houseSize");
////console(buildingSize+"= buildingSize");
var offset = 0;
// beginShape();
// for(var i = 0; i<=360; i+=60){
// circMap(i, 29);
// }
// endShape();
//first thing in the vertex is the theta/angle for the point on the circle
beginShape();
circMap(0,baseLevel);
//begin Junk
bezierMap(0, baseLevel-junkSize/4, 0+junkSize/2-junkSize/4, baseLevel-junkSize/2, junkSize/2, baseLevel-junkSize/2);
bezierMap(0+junkSize/2+junkSize/4, baseLevel-junkSize/2, junkSize, baseLevel-junkSize/4, junkSize-5, baseLevel);
offset = junkSize;
var treeAmount = Math.ceil(parks/10);
////println(treeAmount+"= numTrees");
var treeSpacing = parkSize/treeAmount;
////println(treeSpacing+"= treeSpacing");
for(var i =0;i<treeAmount;i++){
if(i%2==1){
circMap(offset+(i*treeSpacing)-treeSpacing/8,baseLevel);
circMap(offset+(i*treeSpacing)-treeSpacing/8,(baseLevel)-parkSize/1.4/2);
circMap(offset+(i*treeSpacing)-treeSpacing/8-treeSpacing/2, (baseLevel)-parkSize/1.4/2);
circMap(offset+(i*treeSpacing)-treeSpacing/8-treeSpacing/2, (baseLevel)-parkSize/1.4/2-treeSpacing);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2,(baseLevel)-parkSize/1.4/2-treeSpacing);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2,(baseLevel)-parkSize/1.4/2);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2-treeSpacing/2,(baseLevel)-parkSize/1.4/2);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2-treeSpacing/2,(baseLevel)-parkSize/1.4/2);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2-treeSpacing/2,(baseLevel));
} else {
circMap(offset+(i*treeSpacing)-treeSpacing/8,baseLevel);
circMap(offset+(i*treeSpacing)-treeSpacing/8,(baseLevel)-parkSize/2);
circMap(offset+(i*treeSpacing)-treeSpacing/8-treeSpacing/2,(baseLevel)-parkSize/2);
circMap(offset+(i*treeSpacing)-treeSpacing/8-treeSpacing/2,(baseLevel)-parkSize/2-treeSpacing);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2,(baseLevel)-parkSize/2-treeSpacing);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2,(baseLevel)-parkSize/2);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2-treeSpacing/2,(baseLevel)-parkSize/2);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2-treeSpacing/2,(baseLevel)-parkSize/2);
circMap(offset+(i*treeSpacing)+treeSpacing/8+treeSpacing/2-treeSpacing/2,(baseLevel));
}
}
offset = junkSize+parkSize;
var houseLevels = Math.ceil(houses/20);
if(houseLevels<=1){
houseLevels = 2;
}
circMap(offset,baseLevel);
var house0;
for(var i =1; i<houseLevels; i++){
circMap(offset,baseLevel-i*houseSize/4);
circMap(offset-2,baseLevel-i*houseSize/4);
circMap(offset-2,baseLevel-i*houseSize/4-2);
circMap(offset,baseLevel-i*houseSize/4-2);
house0 = houseSize/i;
}
circMap(offset+houseSize/2, baseLevel-houseSize/4-houseSize/20);
offset =offset+houseSize;
for(var i =houseLevels-1; i>0; i--){
circMap(offset,baseLevel-i*houseSize/4-2);
circMap(offset+2,baseLevel-i*houseSize/4-2);
circMap(offset+2,baseLevel-i*houseSize/4);
circMap(offset,baseLevel-i*houseSize/4);
}
var buildingLevels = buildingSize/(buildings);
circMap(offset,baseLevel);
circMap(offset+5, baseLevel);
circMap(offset+5, baseLevel-buildingSize/2);
circMap(offset+buildingSize-5, baseLevel-buildingSize/2);
////println(buildingLevels);
// for(var i = 2; i<buildingLevels;i++){
// circMap(offset+buildingSize-5, (baseLevel-buildingSize*2.5+i*buildings-2)/2);
// circMap(offset+buildingSize-5-buildingSize/2, (baseLevel-buildingSize*2.5+i*buildings-2)/2);
// circMap(offset+buildingSize-5-buildingSize/2, (baseLevel-buildingSize*2.5+i*buildings)/2);
// circMap(offset+buildingSize-5, (baseLevel-buildingSize*2.5+i*buildings)/2);
// }
offset = junkSize+parkSize+houseSize+buildingSize;
circMap(offset-5,baseLevel);
circMap(offset,baseLevel);
endShape();
pop();
}
function createArray(length) {
var thing = [];
for(var i = 0;i<length; i++){
thing[i]=[];
for(var j = 0; j< length; j++){
thing[i][j]=0;
}
}
return thing;
}
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
var pointArray = Array(8);
function glyph4(values, size) {
//set initial fill/size values
var midx = size/2.0;
var midy = size/2.0;
var fillCol = map(values[0], 0, 100, 40, 220);
fill(fillCol);
stroke(fillCol - 40);
var m = size/64;
strokeWeight(m);
strokeCap(PROJECT);
//generate points on circle edge
var newSize = size;
var relativeCoords = generatePoint(midx, midy, newSize/2.0, -PI/4.0);
pointArray[0] = relativeCoords;
relativeCoords = generatePoint(midx, midy, newSize/2.0, 3*PI/4.0);
pointArray[1] = relativeCoords;
newSize = map(values[2], 0, 100, 5, size);
relativeCoords = generatePoint(midx, midy, newSize/2.0, PI/4.0);
pointArray[2] = relativeCoords;
relativeCoords = generatePoint(midx, midy, newSize/2.0, 5*PI/4.0);
pointArray[3] = relativeCoords;
newSize = size;
relativeCoords = generatePoint(midx, midy, size/2.0, 0);
pointArray[4] = relativeCoords;
relativeCoords = generatePoint(midx, midy, size/2.0, PI/2.0);
pointArray[5] = relativeCoords;
newSize = map(values[2], 0, 100, 5, size);
relativeCoords = generatePoint(midx, midy, size/2.0, PI);
pointArray[6] = relativeCoords;
relativeCoords = generatePoint(midx, midy, size/2.0, -PI/2.0);
pointArray[7] = relativeCoords;
fill(fillCol);
//set values to determine the squash-ball shape
var strapWidth = map(values[1], 0, 100, 2, size/2.56);
var dist = strapWidth/2.0;
var xoffset = dist*cos(PI/4.0);
var yoffset = dist*sin(PI/4.0);
var dif = size/6.4;
var ext = size/25.6;
//draw backfill of squash-ball
noStroke();
beginShape();
vertex(pointArray[0].x, pointArray[0].y);
bezierVertex(pointArray[4].x+ext, pointArray[4].y-dif, pointArray[4].x+ext, pointArray[4].y+dif, pointArray[2].x+xoffset, pointArray[2].y-yoffset);
bezierVertex(pointArray[2].x, pointArray[2].y, pointArray[2].x, pointArray[2].y, pointArray[2].x-xoffset, pointArray[2].y+yoffset);
bezierVertex(pointArray[5].x+dif, pointArray[5].y+ext, pointArray[5].x-dif, pointArray[5].y+ext, pointArray[1].x, pointArray[1].y);
bezierVertex(pointArray[6].x-ext, pointArray[6].y+dif, pointArray[6].x-ext, pointArray[6].y-dif, pointArray[3].x-xoffset, pointArray[3].y+yoffset);
bezierVertex(pointArray[3].x, pointArray[3].y, pointArray[3].x, pointArray[3].y, pointArray[3].x+xoffset, pointArray[3].y-yoffset);
bezierVertex(pointArray[7].x-dif, pointArray[7].y-ext, pointArray[7].x+dif, pointArray[7].y-ext, pointArray[0].x, pointArray[0].y);
endShape();
//draw outer colour bleed of squash-ball
strokeWeight(m+(size/16));
stroke(fillCol - 10);
noFill();
beginShape();
vertex(pointArray[0].x, pointArray[0].y);
bezierVertex(pointArray[4].x+ext, pointArray[4].y-dif, pointArray[4].x+ext, pointArray[4].y+dif, pointArray[2].x+xoffset, pointArray[2].y-yoffset);
bezierVertex(pointArray[2].x, pointArray[2].y, pointArray[2].x, pointArray[2].y, pointArray[2].x-xoffset, pointArray[2].y+yoffset);
bezierVertex(pointArray[5].x+dif, pointArray[5].y+ext, pointArray[5].x-dif, pointArray[5].y+ext, pointArray[1].x, pointArray[1].y);
bezierVertex(pointArray[6].x-ext, pointArray[6].y+dif, pointArray[6].x-ext, pointArray[6].y-dif, pointArray[3].x-xoffset, pointArray[3].y+yoffset);
bezierVertex(pointArray[3].x, pointArray[3].y, pointArray[3].x, pointArray[3].y, pointArray[3].x+xoffset, pointArray[3].y-yoffset);
bezierVertex(pointArray[7].x-dif, pointArray[7].y-ext, pointArray[7].x+dif, pointArray[7].y-ext, pointArray[0].x, pointArray[0].y);
endShape();
//draw outline of squash-ball
strokeWeight(m);
stroke(fillCol - 40);
noFill();
beginShape();
vertex(pointArray[0].x, pointArray[0].y);
bezierVertex(pointArray[4].x+ext, pointArray[4].y-dif, pointArray[4].x+ext, pointArray[4].y+dif, pointArray[2].x+xoffset, pointArray[2].y-yoffset);
bezierVertex(pointArray[2].x, pointArray[2].y, pointArray[2].x, pointArray[2].y, pointArray[2].x-xoffset, pointArray[2].y+yoffset);
bezierVertex(pointArray[5].x+dif, pointArray[5].y+ext, pointArray[5].x-dif, pointArray[5].y+ext, pointArray[1].x, pointArray[1].y);
bezierVertex(pointArray[6].x-ext, pointArray[6].y+dif, pointArray[6].x-ext, pointArray[6].y-dif, pointArray[3].x-xoffset, pointArray[3].y+yoffset);
bezierVertex(pointArray[3].x, pointArray[3].y, pointArray[3].x, pointArray[3].y, pointArray[3].x+xoffset, pointArray[3].y-yoffset);
bezierVertex(pointArray[7].x-dif, pointArray[7].y-ext, pointArray[7].x+dif, pointArray[7].y-ext, pointArray[0].x, pointArray[0].y);
endShape();
//draw ellipses
var wid = map (values[3], 0, 100, 3, size/3.2);
var dotDist = size/6.4;
fill(fillCol+20);
ellipse(pointArray[0].x-(dotDist*cos(PI/4.0)), pointArray[0].y+(dotDist*sin(PI/4.0)), wid, wid);
ellipse(pointArray[1].x+(dotDist*cos(PI/4.0)), pointArray[1].y-(dotDist*sin(PI/4.0)), wid, wid);
fill(fillCol + 60);
noStroke();
ellipse(pointArray[0].x-(dotDist*cos(PI/4.0)), pointArray[0].y+(dotDist*sin(PI/4.0)), 2*wid/3.0, 2*wid/3.0);
ellipse(pointArray[1].x+(dotDist*cos(PI/4.0)), pointArray[1].y-(dotDist*sin(PI/4.0)), 2*wid/3.0, 2*wid/3.0);
//draw decorative lines
stroke(fillCol - 40);
line(pointArray[0].x, pointArray[0].y, pointArray[1].x, pointArray[1].y);
line(pointArray[2].x, pointArray[2].y, pointArray[3].x, pointArray[3].y);
//draw strap
newSize = map(values[2], 0, 100, 5, size);
var strapWidth = map(values[1], 0, 100, 2, size/2.56);
var dist = strapWidth/2.0;
strokeWeight(m);
fill(fillCol+60);
stroke(fillCol-20);
push();
rectMode(CENTER);
translate(midx, midy);
rotate(PI/4.0);
rect(0, 0, newSize+(size/16), strapWidth);
fill(fillCol + 35);
noStroke();
rect(0, 0, newSize+(size/16)-2, strapWidth/2.0)
pop();
//draw decorative points
stroke(fillCol - 60);
strokeWeight((size/32)+2);
for (i = 0; i < 2; i++) {
point(pointArray[i].x, pointArray[i].y);
}
}
function generatePoint(midx, midy, radius, angle) {
var returnPoint = createVector(midx + radius*cos(angle), midy + radius*sin(angle));
return returnPoint;
}
function lineLerp(x1, y1, x2, y2, col1, col2, strokeVal) {
var point1 = createVector(x1, y1);
var point2 = createVector(x2, y2);
var mag = abs(point1.x-point2.x);
var inc = 0.0;
strokeWeight(strokeVal);
for (var i = 0; i<mag; i++) {
currentCol = lerpColor(col1, col2, inc);
stroke(currentCol);
point(lerp(point1.x, point2.x, inc), lerp(point1.y, point2.y, inc));
inc += 1.0/mag;
}
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
var red = [255, 0, 0];
var green = [0, 255, 0];
var blue = [0, 0, 255];
var white = [255, 255, 255];
var colors = [red, green, blue, white, red, green, blue, white];
stroke(0);
fill(0);
rect(0, 0, size, size);
for(var i=0; i<8; i++) {
stroke(colors[i]);
fill(colors[i]);
offsety = i * size / 8;
offsetx = (size * values[i]) / 100;
rect(0, offsety, offsetx, size/8);
}
}
var canvasWidth = 3764;
var canvasHeight = 5498;
var glyphSelector;
var modeSelector;
var sizeSelector;
var val_sliders = [];
function setup () {
// create the drawing canvas, save the canvas element
var main_canvas = createCanvas(canvasWidth, canvasHeight);
main_canvas.parent('canvasContainer');
// create two sliders
for (i=0; i<8; i++) {
var slider = createSlider(0, 100, 50);
slider.parent("slider" + (i+1) + "Container")
slider.changed(sliderUpdated);
slider.mouseMoved(sliderUpdated);
slider.touchMoved(sliderUpdated);
val_sliders.push(slider);
}
modeSelector = createSelect();
modeSelector.option('gradient');
modeSelector.option('analogy');
modeSelector.option('drive');
modeSelector.option('random_grid');
modeSelector.changed(modeChangedEvent);
modeSelector.value('random_grid');
modeSelector.parent('selector1Container');
glyphSelector = createSelect();
glyphSelector.option('glyph4');
glyphSelector.option('glyph8');
glyphSelector.changed(modeChangedEvent);
glyphSelector.parent('selector2Container');
sizeSelector = createSelect();
sizeSelector.option('64');
sizeSelector.option('128');
sizeSelector.option('256');
sizeSelector.parent('selector3Container');
sizeSelector.value('128');
sizeSelector.changed(sizeChangedEvent);
button = createButton('redo');
button.mousePressed(buttonPressedEvent);
button.parent('buttonContainer');
noLoop();
refreshGridData();
modeChangedEvent();
}
function sliderUpdated() {
redraw();
}
function mouseClicked() {
analogyCycleStep = (analogyCycleStep + 1) % 3;
if(analogyCycleStep == 0) {
refreshAnalogyData();
}
redraw();
}
function dataInterpolate(data1, data2, val) {
var d = new Array(8);
for(var i=0; i<8; i++) {
d[i] = lerp(data1[i], data2[i], val);
}
return d;
}
var numGridRows;
var numGridCols;
var gridValues; // row, col order
var gridOffsetX, gridOffsetY;
var gridSpacingX, gridSpacingY;
// Generate data for putting glyphs in a grid
var numAnalogyChoices = 5;
var analogyValues = new Array(4);
var analogyChoices = new Array(numAnalogyChoices);
var analogyAnswer;
var analogyCycleStep;
function clamp(num, min, max) {
return Math.min(Math.max(num, min), max);
}
function refreshAnalogyData() {
for (var i=0; i<4; i++) {
analogyValues[i] = new Array(8);
}
for (var i=0; i<3; i++) {
for (var j=0; j<8; j++) {
analogyValues[i][j] = random(100);
}
}
for (var j=0; j<8; j++) {
analogyValues[3][j] = clamp(analogyValues[1][j] - analogyValues[0][j] + analogyValues[2][j], 0, 100);
// handle overflow
analogyValues[1][j] = clamp(analogyValues[3][j] - analogyValues[2][j] + analogyValues[0][j], 0, 100);
}
analogyAnswer = Math.floor(random(numAnalogyChoices))
for (var i=0; i<numAnalogyChoices; i++) {
analogyChoices[i] = new Array(8);
for (var j=0; j<8; j++) {
if (i == analogyAnswer) {
analogyChoices[i][j] = analogyValues[3][j];
}
else {
analogyChoices[i][j] = random(100);
}
}
}
analogyCycleStep = 0;
}
function refreshGridData() {
var glyphSize = parseInt(sizeSelector.value(), 10);
if(glyphSize == 128) {
numGridCols = 39;
numGridRows = 41;
gridOffsetX = 54;
gridSpacingX = 132 * 0.707;
gridOffsetY = 54;
gridSpacingY = 132;
}
else if(glyphSize == 256) {
numGridCols = 3;
numGridRows = 1;
gridOffsetX = 20;
gridSpacingX = 320;
gridOffsetY = 100;
gridSpacingY = 500;
}
else if(glyphSize == 64) {
numGridCols = 14;
numGridRows = 7;
gridOffsetX = 3;
gridSpacingX = 68;
gridOffsetY = 6;
gridSpacingY = 71;
}
gridValues = new Array(numGridRows);
for (var i=0; i<numGridRows; i++) {
gridValues[i] = new Array(numGridCols);
for (var j=0; j<numGridCols; j++) {
gridValues[i][j] = new Array(8);
}
}
var mode = modeSelector.value();
if (mode == "gradient") {
var top_left = Array(8);
var top_right = Array(8);
var bottom_left = Array(8);
var bottom_right = Array(8);
for (var k=0; k<8; k++) {
top_left[k] = random(100);
top_right[k] = random(100);
bottom_left[k] = random(100);
bottom_right[k] = random(100);
}
for (var i=0; i<numGridRows; i++) {
if(numGridRows == 0) {
var frac_down = 0;
}
else {
var frac_down = i / (numGridRows - 1.0);
}
d_left = dataInterpolate(top_left, bottom_left, frac_down);
d_right = dataInterpolate(top_right, bottom_right, frac_down);
for (var j=0; j<numGridCols; j++) {
if(numGridCols == 0) {
var frac_over = 0;
}
else {
var frac_over = j / (numGridCols - 1.0);
}
gridValues[i][j] = dataInterpolate(d_left, d_right, frac_over);
}
}
}
else {
for (var i=0; i<numGridRows; i++) {
for (var j=0; j<numGridCols; j++) {
for (var k=0; k<4; k++) {
// gridValues[i][j][k] = random(100);
gridValues[i][j][k] = mona[i][j][k];
}
}
}
}
refreshAnalogyData();
}
function sizeChangedEvent() {
var mode = modeSelector.value();
if (mode != "drive") {
refreshGridData();
}
redraw();
}
function modeChangedEvent() {
var mode = modeSelector.value();
var glyph = glyphSelector.value();
// enable/disable sliders
if (mode === "drive") {
// disable the button
button.attribute('disabled','');
// enable the size selector
sizeSelector.removeAttribute('disabled');
// enable the first four sliders
for(i=0; i<4; i++) {
val_sliders[i].removeAttribute('disabled');
}
if(glyph === "glyph4") {
for(i=4; i<8; i++) {
val_sliders[i].attribute('disabled','');
}
}
else {
for(i=4; i<8; i++) {
val_sliders[i].removeAttribute('disabled');
}
}
}
else {
// enable the button
button.removeAttribute('disabled');
// disable the sliders
for(i=0; i<8; i++) {
val_sliders[i].attribute('disabled','');
}
if (mode == "analogy") {
// enable the size selector
sizeSelector.attribute('disabled','');
}
else {
// enable the size selector
sizeSelector.removeAttribute('disabled');
}
// refresh data
refreshGridData();
}
redraw();
}
function buttonPressedEvent() {
analogyCycleStep = 0;
refreshGridData();
redraw();
}
var colorBack1 = [128, 128, 128];
var colorFront = [200, 200, 200];
var colorBack = [224, 224, 224];
function drawDriveMode() {
var glyph_is_glyph4 = true;
if(glyphSelector.value() === "glyph8")
glyph_is_glyph4 = false;
var glyphSize = parseInt(sizeSelector.value(), 10);
var halfSize = glyphSize / 2;
background(colorBack);
var halfSize = glyphSize / 2;
var middle_x = canvasWidth / 2;
var middle_y = canvasHeight / 2;
resetMatrix();
translate(middle_x - halfSize, middle_y - halfSize);
var val = [0,0,0,0,0,0,0,0];
for(i=0; i<8; i++) {
val[i] = val_sliders[i].value();
}
stroke(128, 128, 192);
noFill();
if(glyph_is_glyph4) {
ellipse(halfSize, halfSize, glyphSize+2);
glyph4(val, glyphSize)
}
else {
rect(-1, -1, glyphSize+2, glyphSize+2);
glyph8(val, glyphSize)
}
}
function drawGridMode() {
var glyph_fn = glyph4;
if(glyphSelector.value() === "glyph8")
glyph_fn = glyph8;
var glyphSize = parseInt(sizeSelector.value(), 10);
background(colorBack);
for (var j=0; j<numGridCols; j++) {
if (j%2 == 0) {
curGridRows = numGridRows;
curOffsetY = gridOffsetY;
}
else {
curGridRows = numGridRows - 1;
curOffsetY = gridOffsetY + 0.5 * gridSpacingY;
}
for (var i=0; i<curGridRows; i++) {
resetMatrix();
translate(gridOffsetX + j * gridSpacingX, curOffsetY + i * gridSpacingY);
// scale(0.86) // trough
// scale(0.80) // purvis
// scale(1.08) // badf
// scale(1.0) // motsewil
// scale(0.75) // buck, phoebe
// scale(0.86) // jpdenford
scale(0.86) // chrisDoran
glyph_fn(gridValues[i][j], glyphSize);
}
}
}
var analogyOffsetX = 350;
var analogyOffsetY = 40;
var analogySpacingX = 160;
var analogySpacingY = 160;
var analogyChoiceOffsetX = 260;
var analogyChoiceOffsetY = 380;
var analogyChoiceSpacingX = 100;
function drawAnalogy() {
background(colorBack);
var glyph_fn = glyph4;
if(glyphSelector.value() === "glyph8")
glyph_fn = glyph8;
resetMatrix();
translate(analogyOffsetX + 0 * analogySpacingX, analogyOffsetY + 0 * analogySpacingY);
glyph_fn(analogyValues[0], 128);
resetMatrix();
translate(analogyOffsetX + 1 * analogySpacingX, analogyOffsetY + 0 * analogySpacingY);
glyph_fn(analogyValues[1], 128);
resetMatrix();
translate(analogyOffsetX + 0 * analogySpacingX, analogyOffsetY + 1 * analogySpacingY);
glyph_fn(analogyValues[2], 128);
resetMatrix();
translate(analogyOffsetX + 1 * analogySpacingX, analogyOffsetY + 1 * analogySpacingY);
if(analogyCycleStep == 2) {
glyph_fn(analogyValues[3], 128);
}
else {
stroke(64, 64, 192);
noFill();
if(glyph_fn === glyph4) {
ellipse(64, 64, 128+2);
}
else {
rect(-1, -1, 128+2, 128+2);
}
}
if(analogyCycleStep != 0) {
for(var i=0; i<numAnalogyChoices; i++) {
resetMatrix();
translate(analogyChoiceOffsetX + i * analogyChoiceSpacingX, analogyChoiceOffsetY);
if(analogyCycleStep == 2 && analogyAnswer == i) {
stroke(64, 64, 192);
fill(64, 64, 192);
rect(-6, -6, 64+12, 64+12);
}
glyph_fn(analogyChoices[i], 64);
}
}
}
function draw () {
var mode = modeSelector.value();
if (mode == "drive") {
drawDriveMode();
}
else if (mode == "analogy") {
drawAnalogy();
}
else {
drawGridMode();
}
}
function keyTyped() {
if (key == '!') {
saveBlocksImages();
}
else if (key == '@') {
saveBlocksImages(true);
}
}
var mona = [
[
[
30.980392156862745,
65.88235294117646,
51.76470588235294,
76.47058823529412
],
[
26.666666666666668,
67.45098039215686,
41.96078431372549,
74.50980392156863
],
[
29.80392156862745,
65.09803921568627,
33.333333333333336,
71.76470588235294
],
[
28.627450980392158,
66.66666666666667,
37.64705882352941,
74.50980392156863
],
[
27.45098039215686,
67.45098039215686,
43.92156862745098,
75.29411764705883
],
[
28.627450980392158,
65.49019607843137,
32.549019607843135,
71.37254901960785
],
[
27.84313725490196,
67.05882352941177,
35.294117647058826,
73.72549019607843
],
[
28.627450980392158,
68.62745098039215,
37.254901960784316,
76.07843137254902
],
[
28.235294117647058,
68.23529411764706,
32.549019607843135,
74.11764705882352
],
[
26.274509803921568,
67.05882352941177,
30.588235294117645,
71.76470588235294
],
[
25.88235294117647,
65.88235294117646,
32.549019607843135,
70.58823529411765
],
[
26.666666666666668,
66.27450980392157,
34.11764705882353,
72.15686274509804
],
[
28.627450980392158,
67.45098039215686,
29.019607843137255,
74.11764705882352
],
[
27.058823529411764,
66.66666666666667,
35.294117647058826,
73.33333333333333
],
[
26.666666666666668,
65.88235294117646,
36.07843137254902,
72.15686274509804
],
[
32.15686274509804,
65.88235294117646,
32.549019607843135,
74.50980392156863
],
[
31.372549019607842,
67.84313725490196,
33.72549019607843,
76.47058823529412
],
[
29.80392156862745,
67.05882352941177,
34.509803921568626,
75.29411764705883
],
[
29.41176470588235,
67.84313725490196,
34.90196078431372,
75.68627450980392
],
[
30.980392156862745,
69.01960784313725,
40.78431372549019,
78.43137254901961
],
[
27.84313725490196,
67.05882352941177,
38.03921568627451,
74.50980392156863
],
[
26.274509803921568,
67.05882352941177,
34.11764705882353,
72.94117647058823
],
[
28.235294117647058,
67.84313725490196,
27.84313725490196,
74.11764705882352
],
[
27.058823529411764,
66.27450980392157,
25.098039215686274,
71.37254901960785
],
[
27.45098039215686,
66.66666666666667,
23.137254901960784,
72.15686274509804
],
[
27.058823529411764,
65.49019607843137,
21.96078431372549,
69.80392156862744
],
[
27.058823529411764,
64.70588235294117,
19.607843137254903,
68.23529411764706
],
[
26.274509803921568,
63.92156862745098,
21.176470588235293,
67.05882352941177
],
[
24.705882352941178,
64.31372549019608,
27.058823529411764,
66.66666666666667
],
[
23.92156862745098,
65.09803921568627,
27.058823529411764,
67.84313725490196
],
[
23.137254901960784,
65.49019607843137,
28.235294117647058,
68.23529411764706
],
[
21.96078431372549,
66.66666666666667,
34.90196078431372,
70.19607843137254
],
[
22.745098039215687,
65.49019607843137,
33.72549019607843,
69.41176470588235
],
[
22.352941176470587,
66.66666666666667,
34.509803921568626,
71.37254901960785
],
[
21.56862745098039,
67.45098039215686,
37.64705882352941,
71.76470588235294
],
[
23.137254901960784,
67.05882352941177,
42.35294117647059,
72.54901960784314
],
[
22.745098039215687,
65.09803921568627,
46.27450980392157,
69.41176470588235
],
[
22.745098039215687,
68.23529411764706,
43.529411764705884,
73.33333333333333
],
[
28.627450980392158,
63.529411764705884,
41.1764705882353,
70.19607843137254
]
],
[
[
40.3921568627451,
70.58823529411765,
41.96078431372549,
85.09803921568627
],
[
41.96078431372549,
70.19607843137254,
32.94117647058823,
83.92156862745098
],
[
40,
68.62745098039215,
30.19607843137255,
80.3921568627451
],
[
40,
69.01960784313725,
26.666666666666668,
80.7843137254902
],
[
38.431372549019606,
69.80392156862744,
31.764705882352942,
81.96078431372548
],
[
37.254901960784316,
67.45098039215686,
27.058823529411764,
78.0392156862745
],
[
38.431372549019606,
68.23529411764706,
27.84313725490196,
79.6078431372549
],
[
39.6078431372549,
69.80392156862744,
30.588235294117645,
82.3529411764706
],
[
38.431372549019606,
69.41176470588235,
35.294117647058826,
81.96078431372548
],
[
37.64705882352941,
68.23529411764706,
32.549019607843135,
80
],
[
36.470588235294116,
67.45098039215686,
26.274509803921568,
77.25490196078431
],
[
37.254901960784316,
67.05882352941177,
22.352941176470587,
77.25490196078431
],
[
36.86274509803921,
67.45098039215686,
27.84313725490196,
78.43137254901961
],
[
35.68627450980392,
69.01960784313725,
34.11764705882353,
80
],
[
38.431372549019606,
69.41176470588235,
30.980392156862745,
81.56862745098039
],
[
40.3921568627451,
65.49019607843137,
27.84313725490196,
77.6470588235294
],
[
39.6078431372549,
67.05882352941177,
23.137254901960784,
78.82352941176471
],
[
36.86274509803921,
68.23529411764706,
33.333333333333336,
79.6078431372549
],
[
34.90196078431372,
69.80392156862744,
37.254901960784316,
81.17647058823529
],
[
36.86274509803921,
70.98039215686275,
33.333333333333336,
82.74509803921569
],
[
35.294117647058826,
69.80392156862744,
39.21568627450981,
81.96078431372548
],
[
33.72549019607843,
70.58823529411765,
43.13725490196078,
82.3529411764706
],
[
37.64705882352941,
69.80392156862744,
34.11764705882353,
82.3529411764706
],
[
38.431372549019606,
70.58823529411765,
29.80392156862745,
83.13725490196079
],
[
36.07843137254902,
70.98039215686275,
32.94117647058823,
82.74509803921569
],
[
36.470588235294116,
69.80392156862744,
29.80392156862745,
81.56862745098039
],
[
36.86274509803921,
68.23529411764706,
32.549019607843135,
79.6078431372549
],
[
36.86274509803921,
67.45098039215686,
33.72549019607843,
78.82352941176471
],
[
36.86274509803921,
69.01960784313725,
29.41176470588235,
80.7843137254902
],
[
38.03921568627451,
69.41176470588235,
27.84313725490196,
81.56862745098039
],
[
38.431372549019606,
68.23529411764706,
32.15686274509804,
80.3921568627451
],
[
36.86274509803921,
67.84313725490196,
32.15686274509804,
79.2156862745098
],
[
36.470588235294116,
69.41176470588235,
36.86274509803921,
81.17647058823529
],
[
38.431372549019606,
70.98039215686275,
43.13725490196078,
84.70588235294117
],
[
39.21568627450981,
69.41176470588235,
37.64705882352941,
83.52941176470588
],
[
39.21568627450981,
72.15686274509804,
41.1764705882353,
86.27450980392156
],
[
38.8235294117647,
73.33333333333333,
41.96078431372549,
88.62745098039215
],
[
40,
74.11764705882352,
44.705882352941174,
90.58823529411765
],
[
37.254901960784316,
67.45098039215686,
40.78431372549019,
80.3921568627451
]
],
[
[
43.13725490196078,
68.62745098039215,
33.333333333333336,
83.13725490196079
],
[
42.35294117647059,
72.54901960784314,
40,
86.27450980392156
],
[
38.8235294117647,
71.76470588235294,
38.431372549019606,
84.31372549019608
],
[
40.78431372549019,
71.76470588235294,
32.15686274509804,
84.31372549019608
],
[
40.78431372549019,
70.58823529411765,
29.80392156862745,
83.13725490196079
],
[
38.431372549019606,
72.15686274509804,
40,
84.70588235294117
],
[
40,
73.33333333333333,
42.745098039215684,
86.27450980392156
],
[
41.96078431372549,
70.98039215686275,
32.549019607843135,
84.31372549019608
],
[
41.1764705882353,
69.41176470588235,
32.549019607843135,
82.3529411764706
],
[
39.6078431372549,
68.62745098039215,
34.509803921568626,
81.17647058823529
],
[
39.21568627450981,
67.45098039215686,
30.588235294117645,
78.82352941176471
],
[
39.6078431372549,
67.84313725490196,
29.41176470588235,
80
],
[
38.03921568627451,
69.41176470588235,
34.90196078431372,
81.56862745098039
],
[
40,
70.58823529411765,
32.94117647058823,
83.52941176470588
],
[
41.568627450980394,
70.58823529411765,
30.980392156862745,
83.92156862745098
],
[
40.78431372549019,
66.27450980392157,
28.627450980392158,
79.6078431372549
],
[
41.568627450980394,
69.01960784313725,
30.980392156862745,
82.74509803921569
],
[
41.1764705882353,
74.90196078431373,
40.3921568627451,
89.01960784313725
],
[
40.78431372549019,
77.25490196078431,
42.745098039215684,
92.15686274509804
],
[
41.1764705882353,
79.2156862745098,
43.92156862745098,
95.29411764705883
],
[
41.1764705882353,
77.6470588235294,
44.705882352941174,
93.33333333333333
],
[
40.3921568627451,
72.54901960784314,
39.21568627450981,
87.05882352941177
],
[
39.21568627450981,
69.80392156862744,
36.86274509803921,
82.74509803921569
],
[
39.21568627450981,
70.58823529411765,
39.21568627450981,
83.52941176470588
],
[
38.8235294117647,
73.72549019607843,
45.09803921568627,
87.05882352941177
],
[
40.78431372549019,
73.72549019607843,
44.705882352941174,
87.84313725490196
],
[
41.96078431372549,
70.98039215686275,
38.03921568627451,
85.09803921568627
],
[
40.78431372549019,
69.80392156862744,
39.21568627450981,
83.52941176470588
],
[
41.568627450980394,
69.80392156862744,
36.07843137254902,
83.52941176470588
],
[
41.96078431372549,
70.19607843137254,
36.86274509803921,
84.31372549019608
],
[
42.745098039215684,
69.01960784313725,
34.11764705882353,
83.52941176470588
],
[
40.3921568627451,
69.80392156862744,
40.3921568627451,
83.13725490196079
],
[
39.6078431372549,
74.11764705882352,
49.80392156862745,
88.23529411764706
],
[
41.1764705882353,
73.33333333333333,
49.411764705882355,
88.23529411764706
],
[
41.1764705882353,
70.98039215686275,
45.88235294117647,
85.49019607843137
],
[
41.1764705882353,
72.15686274509804,
41.568627450980394,
85.88235294117646
],
[
42.35294117647059,
73.72549019607843,
41.1764705882353,
87.84313725490196
],
[
45.490196078431374,
74.11764705882352,
36.86274509803921,
89.41176470588235
],
[
40.3921568627451,
66.66666666666667,
43.13725490196078,
80.3921568627451
]
],
[
[
44.705882352941174,
73.33333333333333,
40.3921568627451,
87.84313725490196
],
[
42.745098039215684,
74.50980392156863,
46.666666666666664,
88.62745098039215
],
[
42.745098039215684,
72.15686274509804,
36.86274509803921,
85.88235294117646
],
[
44.31372549019608,
73.33333333333333,
36.86274509803921,
87.84313725490196
],
[
43.92156862745098,
74.11764705882352,
36.07843137254902,
88.23529411764706
],
[
42.35294117647059,
75.29411764705883,
45.490196078431374,
89.41176470588235
],
[
43.13725490196078,
73.33333333333333,
45.09803921568627,
88.62745098039215
],
[
44.31372549019608,
73.33333333333333,
42.35294117647059,
89.01960784313725
],
[
44.705882352941174,
72.94117647058823,
41.568627450980394,
88.23529411764706
],
[
45.09803921568627,
72.54901960784314,
40.78431372549019,
88.23529411764706
],
[
45.88235294117647,
73.33333333333333,
36.470588235294116,
88.62745098039215
],
[
44.31372549019608,
71.76470588235294,
36.07843137254902,
86.66666666666667
],
[
43.529411764705884,
71.37254901960785,
34.509803921568626,
86.27450980392156
],
[
44.31372549019608,
72.94117647058823,
35.294117647058826,
88.23529411764706
],
[
45.88235294117647,
71.76470588235294,
33.333333333333336,
87.45098039215686
],
[
46.666666666666664,
75.29411764705883,
37.64705882352941,
91.76470588235294
],
[
45.88235294117647,
76.86274509803921,
46.666666666666664,
92.94117647058823
],
[
45.490196078431374,
68.62745098039215,
47.05882352941176,
83.92156862745098
],
[
46.666666666666664,
62.745098039215684,
43.529411764705884,
76.86274509803921
],
[
47.05882352941176,
61.17647058823529,
44.705882352941174,
74.90196078431373
],
[
47.450980392156865,
65.09803921568627,
45.09803921568627,
80.7843137254902
],
[
47.84313725490196,
68.62745098039215,
35.294117647058826,
86.66666666666667
],
[
44.31372549019608,
76.86274509803921,
36.470588235294116,
95.68627450980392
],
[
43.529411764705884,
81.17647058823529,
41.1764705882353,
99.6078431372549
],
[
43.13725490196078,
75.68627450980392,
48.627450980392155,
90.58823529411765
],
[
43.529411764705884,
75.29411764705883,
45.88235294117647,
89.80392156862744
],
[
42.745098039215684,
72.54901960784314,
39.21568627450981,
87.05882352941177
],
[
44.31372549019608,
69.41176470588235,
32.94117647058823,
83.92156862745098
],
[
45.09803921568627,
70.98039215686275,
38.431372549019606,
86.27450980392156
],
[
44.705882352941174,
70.19607843137254,
39.6078431372549,
85.09803921568627
],
[
44.31372549019608,
70.19607843137254,
41.568627450980394,
85.09803921568627
],
[
43.13725490196078,
71.76470588235294,
47.84313725490196,
87.05882352941177
],
[
43.13725490196078,
73.72549019607843,
50.19607843137255,
88.62745098039215
],
[
44.705882352941174,
73.33333333333333,
49.80392156862745,
89.01960784313725
],
[
45.09803921568627,
74.50980392156863,
52.15686274509804,
90.58823529411765
],
[
45.09803921568627,
72.15686274509804,
36.86274509803921,
87.05882352941177
],
[
45.490196078431374,
72.15686274509804,
36.86274509803921,
87.05882352941177
],
[
47.05882352941176,
78.82352941176471,
51.76470588235294,
95.29411764705883
],
[
43.13725490196078,
70.98039215686275,
50.19607843137255,
85.49019607843137
]
],
[
[
45.09803921568627,
75.68627450980392,
50.98039215686274,
90.98039215686275
],
[
44.705882352941174,
77.25490196078431,
49.411764705882355,
91.76470588235294
],
[
46.27450980392157,
75.29411764705883,
43.13725490196078,
90.19607843137254
],
[
45.88235294117647,
75.29411764705883,
47.05882352941176,
90.58823529411765
],
[
47.05882352941176,
74.11764705882352,
38.431372549019606,
89.80392156862744
],
[
49.411764705882355,
74.90196078431373,
38.431372549019606,
90.98039215686275
],
[
47.450980392156865,
72.54901960784314,
41.1764705882353,
89.01960784313725
],
[
47.05882352941176,
72.94117647058823,
45.09803921568627,
89.41176470588235
],
[
47.84313725490196,
73.33333333333333,
44.705882352941174,
89.80392156862744
],
[
49.01960784313725,
76.47058823529412,
46.666666666666664,
92.15686274509804
],
[
49.411764705882355,
77.25490196078431,
44.705882352941174,
92.94117647058823
],
[
48.627450980392155,
75.29411764705883,
39.6078431372549,
91.37254901960785
],
[
49.80392156862745,
74.50980392156863,
31.372549019607842,
90.58823529411765
],
[
49.01960784313725,
75.68627450980392,
38.03921568627451,
91.76470588235294
],
[
49.411764705882355,
82.74509803921569,
50.19607843137255,
99.6078431372549
],
[
49.80392156862745,
65.09803921568627,
34.11764705882353,
81.17647058823529
],
[
50.19607843137255,
35.294117647058826,
7.8431372549019605,
52.94117647058823
],
[
52.94117647058823,
24.705882352941178,
1.1764705882352942,
48.23529411764706
],
[
50.19607843137255,
18.823529411764707,
14.117647058823529,
30.588235294117645
],
[
47.05882352941176,
17.254901960784313,
35.294117647058826,
17.647058823529413
],
[
42.745098039215684,
20.784313725490197,
46.27450980392157,
14.509803921568627
],
[
42.745098039215684,
24.313725490196077,
41.568627450980394,
21.176470588235293
],
[
45.09803921568627,
31.372549019607842,
38.03921568627451,
33.333333333333336
],
[
44.31372549019608,
56.07843137254902,
38.03921568627451,
63.92156862745098
],
[
49.80392156862745,
83.13725490196079,
34.509803921568626,
100
],
[
47.84313725490196,
80.7843137254902,
43.13725490196078,
96.86274509803921
],
[
45.09803921568627,
72.54901960784314,
41.568627450980394,
87.45098039215686
],
[
45.09803921568627,
69.80392156862744,
33.333333333333336,
85.09803921568627
],
[
45.490196078431374,
70.58823529411765,
38.431372549019606,
86.66666666666667
],
[
45.09803921568627,
73.33333333333333,
47.05882352941176,
88.62745098039215
],
[
45.09803921568627,
75.29411764705883,
52.549019607843135,
90.19607843137254
],
[
45.88235294117647,
74.90196078431373,
42.35294117647059,
90.19607843137254
],
[
48.23529411764706,
74.11764705882352,
38.431372549019606,
90.19607843137254
],
[
51.372549019607845,
74.50980392156863,
42.35294117647059,
91.76470588235294
],
[
50.588235294117645,
77.25490196078431,
46.27450980392157,
93.33333333333333
],
[
49.411764705882355,
75.29411764705883,
37.64705882352941,
90.98039215686275
],
[
48.627450980392155,
74.11764705882352,
38.8235294117647,
89.80392156862744
],
[
48.627450980392155,
80,
50.98039215686274,
95.68627450980392
],
[
46.666666666666664,
75.29411764705883,
46.666666666666664,
89.80392156862744
]
],
[
[
45.490196078431374,
69.80392156862744,
47.450980392156865,
86.66666666666667
],
[
47.450980392156865,
77.25490196078431,
54.509803921568626,
92.54901960784314
],
[
49.411764705882355,
79.2156862745098,
54.11764705882353,
93.72549019607843
],
[
50.19607843137255,
78.43137254901961,
51.76470588235294,
93.33333333333333
],
[
51.76470588235294,
77.25490196078431,
46.666666666666664,
93.72549019607843
],
[
51.372549019607845,
76.47058823529412,
49.411764705882355,
93.72549019607843
],
[
50.588235294117645,
76.47058823529412,
47.84313725490196,
92.94117647058823
],
[
51.76470588235294,
75.29411764705883,
45.490196078431374,
92.54901960784314
],
[
52.549019607843135,
77.6470588235294,
54.90196078431372,
94.50980392156863
],
[
53.333333333333336,
78.82352941176471,
51.372549019607845,
95.68627450980392
],
[
51.372549019607845,
75.29411764705883,
45.88235294117647,
92.94117647058823
],
[
52.15686274509804,
77.25490196078431,
43.13725490196078,
93.72549019607843
],
[
53.72549019607843,
79.2156862745098,
44.31372549019608,
95.68627450980392
],
[
53.333333333333336,
90.19607843137254,
63.13725490196078,
100
],
[
51.372549019607845,
61.568627450980394,
39.6078431372549,
75.68627450980392
],
[
53.333333333333336,
26.666666666666668,
1.5686274509803921,
47.450980392156865
],
[
64.31372549019608,
40.3921568627451,
3.5294117647058822,
68.23529411764706
],
[
67.84313725490196,
50.98039215686274,
7.8431372549019605,
81.96078431372548
],
[
60.78431372549019,
42.745098039215684,
2.3529411764705883,
71.76470588235294
],
[
54.509803921568626,
29.41176470588235,
8.235294117647058,
49.411764705882355
],
[
46.27450980392157,
18.823529411764707,
36.07843137254902,
17.254901960784313
],
[
34.90196078431372,
16.862745098039216,
62.35294117647059,
0.39215686274509803
],
[
28.627450980392158,
9.411764705882353,
68.23529411764706,
0
],
[
27.45098039215686,
6.666666666666667,
67.45098039215686,
0
],
[
36.470588235294116,
38.8235294117647,
49.411764705882355,
40
],
[
53.72549019607843,
83.52941176470588,
38.431372549019606,
100
],
[
49.01960784313725,
81.96078431372548,
52.15686274509804,
98.0392156862745
],
[
47.05882352941176,
76.07843137254902,
49.80392156862745,
90.98039215686275
],
[
47.05882352941176,
74.90196078431373,
45.09803921568627,
90.19607843137254
],
[
46.27450980392157,
76.07843137254902,
52.15686274509804,
92.15686274509804
],
[
48.23529411764706,
78.43137254901961,
55.68627450980392,
94.50980392156863
],
[
51.372549019607845,
80,
49.411764705882355,
95.29411764705883
],
[
54.11764705882353,
77.6470588235294,
42.745098039215684,
94.50980392156863
],
[
53.333333333333336,
75.68627450980392,
40.3921568627451,
93.33333333333333
],
[
52.15686274509804,
75.29411764705883,
41.1764705882353,
92.54901960784314
],
[
51.372549019607845,
76.07843137254902,
42.745098039215684,
92.54901960784314
],
[
50.98039215686274,
76.07843137254902,
48.23529411764706,
92.54901960784314
],
[
52.15686274509804,
79.2156862745098,
49.01960784313725,
94.90196078431373
],
[
50.19607843137255,
77.25490196078431,
47.450980392156865,
92.94117647058823
]
],
[
[
50.98039215686274,
72.15686274509804,
44.705882352941174,
89.80392156862744
],
[
52.94117647058823,
79.6078431372549,
52.94117647058823,
95.29411764705883
],
[
52.94117647058823,
82.3529411764706,
54.90196078431372,
96.86274509803921
],
[
54.509803921568626,
81.56862745098039,
55.68627450980392,
97.25490196078431
],
[
55.68627450980392,
81.96078431372548,
58.8235294117647,
97.25490196078431
],
[
54.509803921568626,
80.7843137254902,
56.86274509803921,
96.07843137254902
],
[
55.294117647058826,
79.6078431372549,
51.372549019607845,
95.68627450980392
],
[
56.07843137254902,
78.43137254901961,
47.450980392156865,
95.68627450980392
],
[
57.254901960784316,
80.3921568627451,
50.588235294117645,
96.86274509803921
],
[
56.470588235294116,
80,
52.15686274509804,
96.47058823529412
],
[
54.90196078431372,
78.82352941176471,
51.76470588235294,
95.68627450980392
],
[
55.68627450980392,
77.25490196078431,
47.450980392156865,
95.29411764705883
],
[
56.07843137254902,
90.98039215686275,
72.15686274509804,
100
],
[
49.411764705882355,
68.23529411764706,
61.568627450980394,
78.82352941176471
],
[
53.333333333333336,
27.45098039215686,
7.450980392156863,
49.01960784313725
],
[
80.3921568627451,
70.19607843137254,
26.666666666666668,
97.25490196078431
],
[
93.72549019607843,
92.94117647058823,
57.254901960784316,
100
],
[
93.72549019607843,
91.76470588235294,
50.98039215686274,
100
],
[
87.45098039215686,
85.88235294117646,
36.07843137254902,
100
],
[
73.33333333333333,
67.05882352941177,
6.2745098039215685,
100
],
[
58.431372549019606,
34.509803921568626,
0,
67.05882352941177
],
[
46.666666666666664,
16.862745098039216,
34.509803921568626,
18.823529411764707
],
[
32.15686274509804,
17.647058823529413,
70.19607843137254,
3.9215686274509802
],
[
21.176470588235293,
14.901960784313726,
78.0392156862745,
5.098039215686274
],
[
14.117647058823529,
1.1764705882352942,
80.7843137254902,
0
],
[
38.03921568627451,
43.13725490196078,
50.588235294117645,
43.13725490196078
],
[
56.07843137254902,
89.80392156862744,
50.588235294117645,
100
],
[
50.588235294117645,
82.3529411764706,
62.35294117647059,
98.82352941176471
],
[
52.94117647058823,
80.7843137254902,
54.90196078431372,
96.86274509803921
],
[
54.509803921568626,
80.3921568627451,
52.15686274509804,
96.07843137254902
],
[
55.294117647058826,
81.56862745098039,
56.470588235294116,
97.25490196078431
],
[
54.11764705882353,
80,
55.68627450980392,
96.47058823529412
],
[
54.90196078431372,
80.3921568627451,
55.294117647058826,
96.47058823529412
],
[
56.07843137254902,
81.17647058823529,
59.6078431372549,
96.86274509803921
],
[
54.509803921568626,
77.6470588235294,
53.72549019607843,
94.90196078431373
],
[
53.333333333333336,
75.29411764705883,
43.92156862745098,
93.33333333333333
],
[
54.90196078431372,
76.47058823529412,
41.568627450980394,
93.33333333333333
],
[
56.86274509803921,
81.56862745098039,
51.372549019607845,
97.25490196078431
],
[
52.94117647058823,
78.43137254901961,
59.2156862745098,
94.90196078431373
]
],
[
[
49.01960784313725,
75.68627450980392,
42.745098039215684,
92.94117647058823
],
[
56.470588235294116,
85.88235294117646,
58.03921568627451,
100
],
[
54.11764705882353,
81.17647058823529,
53.333333333333336,
97.25490196078431
],
[
50.19607843137255,
76.47058823529412,
44.31372549019608,
92.94117647058823
],
[
58.431372549019606,
84.70588235294117,
64.70588235294117,
99.2156862745098
],
[
62.35294117647059,
89.01960784313725,
73.72549019607843,
100
],
[
62.35294117647059,
87.45098039215686,
60.78431372549019,
100
],
[
64.70588235294117,
88.23529411764706,
60.78431372549019,
100
],
[
62.35294117647059,
84.31372549019608,
58.03921568627451,
99.2156862745098
],
[
57.254901960784316,
81.56862745098039,
60.3921568627451,
97.6470588235294
],
[
57.64705882352941,
82.74509803921569,
56.470588235294116,
97.25490196078431
],
[
60,
87.05882352941177,
58.431372549019606,
100
],
[
60,
83.52941176470588,
59.6078431372549,
100
],
[
45.490196078431374,
18.823529411764707,
30.19607843137255,
31.372549019607842
],
[
61.568627450980394,
40,
19.215686274509803,
62.35294117647059
],
[
92.15686274509804,
93.33333333333333,
46.666666666666664,
100
],
[
92.54901960784314,
85.49019607843137,
52.94117647058823,
100
],
[
92.15686274509804,
86.27450980392156,
51.372549019607845,
100
],
[
91.37254901960785,
89.41176470588235,
49.01960784313725,
100
],
[
78.43137254901961,
76.07843137254902,
23.137254901960784,
100
],
[
69.01960784313725,
61.17647058823529,
0,
100
],
[
61.568627450980394,
39.6078431372549,
0,
69.80392156862744
],
[
45.490196078431374,
19.215686274509803,
42.745098039215684,
19.215686274509803
],
[
25.49019607843137,
15.294117647058822,
75.68627450980392,
4.313725490196078
],
[
16.862745098039216,
14.117647058823529,
78.0392156862745,
0.7843137254901961
],
[
17.647058823529413,
14.117647058823529,
74.11764705882352,
0.39215686274509803
],
[
40.78431372549019,
64.70588235294117,
41.96078431372549,
75.29411764705883
],
[
48.23529411764706,
78.43137254901961,
34.90196078431372,
97.25490196078431
],
[
48.627450980392155,
73.33333333333333,
43.13725490196078,
89.80392156862744
],
[
51.372549019607845,
80.3921568627451,
49.01960784313725,
95.68627450980392
],
[
53.333333333333336,
83.52941176470588,
50.98039215686274,
98.0392156862745
],
[
55.68627450980392,
79.6078431372549,
54.11764705882353,
96.86274509803921
],
[
58.431372549019606,
81.56862745098039,
56.470588235294116,
97.6470588235294
],
[
59.2156862745098,
84.70588235294117,
63.13725490196078,
98.82352941176471
],
[
58.03921568627451,
82.74509803921569,
54.90196078431372,
98.0392156862745
],
[
58.431372549019606,
79.6078431372549,
44.31372549019608,
96.86274509803921
],
[
56.07843137254902,
77.25490196078431,
43.13725490196078,
94.90196078431373
],
[
60.78431372549019,
85.09803921568627,
58.8235294117647,
99.6078431372549
],
[
58.03921568627451,
81.56862745098039,
62.745098039215684,
96.86274509803921
]
],
[
[
39.21568627450981,
57.64705882352941,
39.6078431372549,
67.45098039215686
],
[
38.8235294117647,
69.01960784313725,
43.529411764705884,
81.56862745098039
],
[
41.568627450980394,
65.09803921568627,
40.3921568627451,
77.6470588235294
],
[
45.09803921568627,
64.31372549019608,
34.11764705882353,
80.3921568627451
],
[
49.01960784313725,
72.54901960784314,
46.666666666666664,
89.01960784313725
],
[
56.07843137254902,
76.07843137254902,
46.27450980392157,
92.94117647058823
],
[
52.15686274509804,
73.72549019607843,
33.72549019607843,
90.58823529411765
],
[
50.588235294117645,
77.6470588235294,
47.450980392156865,
91.76470588235294
],
[
56.07843137254902,
80.3921568627451,
64.31372549019608,
96.47058823529412
],
[
61.568627450980394,
85.88235294117646,
71.76470588235294,
99.6078431372549
],
[
67.45098039215686,
91.37254901960785,
71.76470588235294,
100
],
[
69.41176470588235,
98.43137254901961,
63.529411764705884,
100
],
[
54.509803921568626,
54.509803921568626,
30.19607843137255,
70.98039215686275
],
[
41.1764705882353,
3.1372549019607843,
45.490196078431374,
14.901960784313726
],
[
61.96078431372549,
49.01960784313725,
35.294117647058826,
75.68627450980392
],
[
76.86274509803921,
67.45098039215686,
29.41176470588235,
98.43137254901961
],
[
81.96078431372548,
73.33333333333333,
34.509803921568626,
97.6470588235294
],
[
83.52941176470588,
76.47058823529412,
38.431372549019606,
99.2156862745098
],
[
70.58823529411765,
58.03921568627451,
22.352941176470587,
86.27450980392156
],
[
68.62745098039215,
56.07843137254902,
18.823529411764707,
87.45098039215686
],
[
66.27450980392157,
54.509803921568626,
21.96078431372549,
83.92156862745098
],
[
62.745098039215684,
45.09803921568627,
1.5686274509803921,
79.2156862745098
],
[
49.80392156862745,
23.92156862745098,
30.980392156862745,
34.509803921568626
],
[
23.52941176470588,
12.156862745098039,
81.56862745098039,
4.313725490196078
],
[
18.03921568627451,
14.509803921568627,
78.82352941176471,
11.372549019607844
],
[
16.07843137254902,
8.235294117647058,
83.52941176470588,
0
],
[
23.92156862745098,
38.03921568627451,
49.80392156862745,
36.07843137254902
],
[
36.07843137254902,
64.31372549019608,
18.431372549019606,
72.15686274509804
],
[
37.254901960784316,
63.529411764705884,
33.333333333333336,
76.07843137254902
],
[
37.254901960784316,
73.72549019607843,
45.88235294117647,
87.45098039215686
],
[
35.294117647058826,
73.72549019607843,
43.529411764705884,
86.27450980392156
],
[
50.588235294117645,
75.29411764705883,
43.92156862745098,
91.37254901960785
],
[
63.13725490196078,
83.13725490196079,
51.76470588235294,
99.6078431372549
],
[
61.17647058823529,
83.52941176470588,
48.23529411764706,
98.43137254901961
],
[
65.09803921568627,
88.23529411764706,
52.15686274509804,
99.6078431372549
],
[
62.35294117647059,
83.52941176470588,
47.05882352941176,
98.0392156862745
],
[
51.76470588235294,
74.50980392156863,
43.13725490196078,
92.54901960784314
],
[
49.01960784313725,
79.2156862745098,
56.07843137254902,
94.50980392156863
],
[
43.529411764705884,
72.15686274509804,
56.86274509803921,
86.66666666666667
]
],
[
[
28.627450980392158,
33.333333333333336,
62.35294117647059,
33.72549019607843
],
[
30.588235294117645,
57.254901960784316,
41.568627450980394,
64.31372549019608
],
[
32.94117647058823,
60.3921568627451,
43.13725490196078,
70.98039215686275
],
[
40.78431372549019,
63.13725490196078,
42.35294117647059,
77.6470588235294
],
[
41.1764705882353,
60.78431372549019,
37.64705882352941,
76.07843137254902
],
[
42.35294117647059,
57.64705882352941,
28.627450980392158,
72.94117647058823
],
[
36.86274509803921,
56.86274509803921,
32.94117647058823,
67.45098039215686
],
[
34.509803921568626,
56.470588235294116,
36.07843137254902,
67.84313725490196
],
[
39.21568627450981,
63.13725490196078,
32.94117647058823,
78.82352941176471
],
[
55.68627450980392,
82.74509803921569,
56.470588235294116,
95.29411764705883
],
[
62.35294117647059,
85.09803921568627,
66.66666666666667,
100
],
[
53.72549019607843,
87.45098039215686,
56.07843137254902,
100
],
[
47.05882352941176,
40.78431372549019,
40.78431372549019,
54.11764705882353
],
[
46.27450980392157,
7.450980392156863,
56.86274509803921,
17.647058823529413
],
[
61.568627450980394,
44.31372549019608,
35.68627450980392,
70.98039215686275
],
[
61.568627450980394,
38.8235294117647,
11.372549019607844,
74.50980392156863
],
[
71.76470588235294,
56.86274509803921,
16.07843137254902,
89.01960784313725
],
[
70.19607843137254,
56.470588235294116,
18.823529411764707,
85.88235294117646
],
[
59.6078431372549,
37.64705882352941,
5.88235294117647,
71.37254901960785
],
[
64.70588235294117,
45.09803921568627,
10.980392156862745,
77.25490196078431
],
[
58.431372549019606,
35.68627450980392,
22.352941176470587,
59.2156862745098
],
[
66.66666666666667,
49.80392156862745,
14.117647058823529,
80.3921568627451
],
[
55.294117647058826,
30.588235294117645,
24.705882352941178,
48.23529411764706
],
[
25.88235294117647,
9.411764705882353,
81.17647058823529,
7.450980392156863
],
[
12.941176470588236,
11.372549019607844,
83.92156862745098,
14.117647058823529
],
[
18.03921568627451,
7.0588235294117645,
84.31372549019608,
5.490196078431373
],
[
23.137254901960784,
28.627450980392158,
63.529411764705884,
25.49019607843137
],
[
24.705882352941178,
56.86274509803921,
34.11764705882353,
50.98039215686274
],
[
25.098039215686274,
58.03921568627451,
43.13725490196078,
61.17647058823529
],
[
26.666666666666668,
63.13725490196078,
47.05882352941176,
70.98039215686275
],
[
22.352941176470587,
58.8235294117647,
47.05882352941176,
63.13725490196078
],
[
34.509803921568626,
63.92156862745098,
37.64705882352941,
75.29411764705883
],
[
63.13725490196078,
83.92156862745098,
46.666666666666664,
100
],
[
67.05882352941177,
87.84313725490196,
55.294117647058826,
100
],
[
64.70588235294117,
86.66666666666667,
60.3921568627451,
100
],
[
61.96078431372549,
80.7843137254902,
44.705882352941174,
98.0392156862745
],
[
49.01960784313725,
72.54901960784314,
37.254901960784316,
89.80392156862744
],
[
41.96078431372549,
75.29411764705883,
56.07843137254902,
90.58823529411765
],
[
41.1764705882353,
69.41176470588235,
63.13725490196078,
86.27450980392156
]
],
[
[
32.549019607843135,
42.35294117647059,
57.254901960784316,
47.450980392156865
],
[
36.86274509803921,
56.86274509803921,
43.92156862745098,
66.27450980392157
],
[
32.549019607843135,
58.8235294117647,
51.76470588235294,
68.62745098039215
],
[
30.980392156862745,
62.745098039215684,
51.76470588235294,
72.15686274509804
],
[
36.07843137254902,
58.8235294117647,
35.68627450980392,
67.05882352941177
],
[
37.254901960784316,
54.90196078431372,
32.15686274509804,
62.745098039215684
],
[
32.549019607843135,
53.333333333333336,
37.64705882352941,
56.86274509803921
],
[
31.372549019607842,
53.72549019607843,
35.68627450980392,
56.07843137254902
],
[
31.764705882352942,
52.549019607843135,
36.86274509803921,
53.72549019607843
],
[
40.3921568627451,
54.11764705882353,
36.07843137254902,
63.13725490196078
],
[
39.21568627450981,
52.15686274509804,
32.94117647058823,
64.31372549019608
],
[
35.294117647058826,
60.3921568627451,
38.431372549019606,
69.01960784313725
],
[
50.588235294117645,
29.41176470588235,
43.13725490196078,
43.13725490196078
],
[
46.666666666666664,
3.1372549019607843,
48.627450980392155,
13.72549019607843
],
[
74.50980392156863,
63.13725490196078,
29.41176470588235,
89.01960784313725
],
[
85.88235294117646,
80,
38.8235294117647,
100
],
[
83.13725490196079,
76.86274509803921,
40,
99.2156862745098
],
[
72.54901960784314,
65.09803921568627,
25.88235294117647,
95.68627450980392
],
[
74.50980392156863,
66.27450980392157,
22.745098039215687,
96.47058823529412
],
[
90.58823529411765,
82.3529411764706,
43.13725490196078,
100
],
[
85.88235294117646,
77.25490196078431,
32.15686274509804,
100
],
[
74.50980392156863,
61.568627450980394,
2.3529411764705883,
100
],
[
48.23529411764706,
23.92156862745098,
30.588235294117645,
36.470588235294116
],
[
24.705882352941178,
12.549019607843137,
81.96078431372548,
4.705882352941177
],
[
18.823529411764707,
16.07843137254902,
79.2156862745098,
14.509803921568627
],
[
18.431372549019606,
11.76470588235294,
81.17647058823529,
5.490196078431373
],
[
24.705882352941178,
26.666666666666668,
66.27450980392157,
22.745098039215687
],
[
29.80392156862745,
58.431372549019606,
36.07843137254902,
58.431372549019606
],
[
30.980392156862745,
60.78431372549019,
38.03921568627451,
65.88235294117646
],
[
28.627450980392158,
63.13725490196078,
44.705882352941174,
70.19607843137254
],
[
25.49019607843137,
60,
47.84313725490196,
63.92156862745098
],
[
26.666666666666668,
61.96078431372549,
43.529411764705884,
69.41176470588235
],
[
49.01960784313725,
77.6470588235294,
49.01960784313725,
93.72549019607843
],
[
63.92156862745098,
85.49019607843137,
52.94117647058823,
100
],
[
58.8235294117647,
78.0392156862745,
46.666666666666664,
97.6470588235294
],
[
57.254901960784316,
75.29411764705883,
39.21568627450981,
95.29411764705883
],
[
51.76470588235294,
73.33333333333333,
41.568627450980394,
92.94117647058823
],
[
48.627450980392155,
75.68627450980392,
51.372549019607845,
94.11764705882352
],
[
43.92156862745098,
69.01960784313725,
60.78431372549019,
87.45098039215686
]
],
[
[
37.64705882352941,
48.627450980392155,
48.23529411764706,
57.64705882352941
],
[
33.72549019607843,
44.31372549019608,
49.80392156862745,
45.490196078431374
],
[
28.235294117647058,
47.450980392156865,
52.15686274509804,
47.450980392156865
],
[
28.235294117647058,
54.11764705882353,
48.627450980392155,
56.86274509803921
],
[
31.764705882352942,
53.333333333333336,
40.78431372549019,
56.07843137254902
],
[
33.333333333333336,
53.72549019607843,
37.254901960784316,
56.86274509803921
],
[
33.333333333333336,
56.07843137254902,
36.470588235294116,
61.568627450980394
],
[
30.19607843137255,
54.509803921568626,
39.6078431372549,
56.470588235294116
],
[
29.019607843137255,
49.01960784313725,
43.92156862745098,
47.450980392156865
],
[
32.94117647058823,
44.705882352941174,
39.6078431372549,
45.88235294117647
],
[
32.94117647058823,
45.88235294117647,
39.6078431372549,
45.88235294117647
],
[
31.372549019607842,
38.431372549019606,
49.411764705882355,
32.94117647058823
],
[
45.88235294117647,
16.862745098039216,
50.588235294117645,
23.52941176470588
],
[
41.1764705882353,
3.1372549019607843,
57.64705882352941,
8.627450980392156
],
[
63.13725490196078,
43.529411764705884,
29.41176470588235,
70.19607843137254
],
[
89.01960784313725,
81.56862745098039,
31.764705882352942,
100
],
[
82.3529411764706,
74.50980392156863,
40.78431372549019,
98.43137254901961
],
[
63.529411764705884,
47.05882352941176,
27.45098039215686,
74.90196078431373
],
[
72.15686274509804,
58.8235294117647,
29.41176470588235,
87.05882352941177
],
[
89.41176470588235,
81.56862745098039,
43.529411764705884,
100
],
[
74.11764705882352,
63.92156862745098,
21.56862745098039,
99.2156862745098
],
[
60,
33.72549019607843,
3.5294117647058822,
65.88235294117646
],
[
43.92156862745098,
16.470588235294116,
43.529411764705884,
16.07843137254902
],
[
26.666666666666668,
17.254901960784313,
78.82352941176471,
9.019607843137255
],
[
23.92156862745098,
18.823529411764707,
77.6470588235294,
17.647058823529413
],
[
14.901960784313726,
15.686274509803921,
80.7843137254902,
12.156862745098039
],
[
22.352941176470587,
21.96078431372549,
71.76470588235294,
16.07843137254902
],
[
30.19607843137255,
47.450980392156865,
47.05882352941176,
41.96078431372549
],
[
31.372549019607842,
52.15686274509804,
45.88235294117647,
52.549019607843135
],
[
27.84313725490196,
57.254901960784316,
49.80392156862745,
60.78431372549019
],
[
25.49019607843137,
59.6078431372549,
52.15686274509804,
63.13725490196078
],
[
26.666666666666668,
61.17647058823529,
51.372549019607845,
65.88235294117646
],
[
32.549019607843135,
65.49019607843137,
46.666666666666664,
75.29411764705883
],
[
37.254901960784316,
67.84313725490196,
43.13725490196078,
80
],
[
38.8235294117647,
66.27450980392157,
40.78431372549019,
79.2156862745098
],
[
35.68627450980392,
60,
44.705882352941174,
70.98039215686275
],
[
36.07843137254902,
60.3921568627451,
49.01960784313725,
70.98039215686275
],
[
36.86274509803921,
62.745098039215684,
45.490196078431374,
72.54901960784314
],
[
34.509803921568626,
54.90196078431372,
58.431372549019606,
68.23529411764706
]
],
[
[
30.19607843137255,
36.470588235294116,
58.431372549019606,
37.64705882352941
],
[
30.588235294117645,
38.03921568627451,
56.07843137254902,
33.333333333333336
],
[
30.980392156862745,
44.705882352941174,
55.294117647058826,
46.27450980392157
],
[
30.588235294117645,
54.509803921568626,
42.35294117647059,
58.03921568627451
],
[
35.68627450980392,
48.23529411764706,
43.529411764705884,
51.76470588235294
],
[
36.470588235294116,
48.627450980392155,
39.6078431372549,
52.549019607843135
],
[
32.15686274509804,
53.72549019607843,
44.31372549019608,
57.64705882352941
],
[
33.333333333333336,
51.76470588235294,
44.31372549019608,
56.07843137254902
],
[
34.90196078431372,
47.450980392156865,
44.705882352941174,
50.98039215686274
],
[
37.64705882352941,
45.88235294117647,
41.568627450980394,
48.627450980392155
],
[
32.549019607843135,
47.05882352941176,
40,
43.92156862745098
],
[
29.019607843137255,
40.3921568627451,
50.98039215686274,
32.15686274509804
],
[
41.568627450980394,
18.823529411764707,
58.8235294117647,
20.784313725490197
],
[
41.1764705882353,
5.098039215686274,
70.58823529411765,
7.450980392156863
],
[
47.450980392156865,
20.392156862745097,
41.96078431372549,
38.431372549019606
],
[
79.2156862745098,
65.49019607843137,
4.705882352941177,
100
],
[
77.6470588235294,
64.31372549019608,
20.392156862745097,
97.6470588235294
],
[
56.86274509803921,
25.49019607843137,
10.980392156862745,
58.431372549019606
],
[
61.568627450980394,
39.21568627450981,
18.431372549019606,
68.62745098039215
],
[
72.94117647058823,
66.66666666666667,
23.52941176470588,
100
],
[
64.31372549019608,
54.11764705882353,
10.196078431372548,
92.54901960784314
],
[
57.64705882352941,
28.627450980392158,
9.803921568627452,
54.509803921568626
],
[
45.09803921568627,
16.862745098039216,
47.05882352941176,
14.509803921568627
],
[
29.019607843137255,
17.254901960784313,
74.50980392156863,
9.019607843137255
],
[
24.313725490196077,
18.823529411764707,
76.07843137254902,
16.07843137254902
],
[
12.941176470588236,
15.686274509803921,
80.7843137254902,
14.117647058823529
],
[
19.607843137254903,
16.862745098039216,
77.6470588235294,
13.72549019607843
],
[
28.627450980392158,
39.21568627450981,
51.372549019607845,
27.84313725490196
],
[
25.49019607843137,
47.84313725490196,
45.88235294117647,
40.78431372549019
],
[
20.784313725490197,
46.666666666666664,
56.07843137254902,
41.96078431372549
],
[
21.176470588235293,
47.450980392156865,
55.68627450980392,
43.529411764705884
],
[
24.705882352941178,
49.411764705882355,
49.01960784313725,
47.05882352941176
],
[
23.52941176470588,
52.15686274509804,
47.450980392156865,
52.549019607843135
],
[
23.52941176470588,
56.07843137254902,
47.84313725490196,
60
],
[
28.627450980392158,
59.2156862745098,
45.490196078431374,
66.27450980392157
],
[
27.45098039215686,
52.94117647058823,
50.588235294117645,
57.254901960784316
],
[
26.274509803921568,
45.490196078431374,
54.509803921568626,
45.88235294117647
],
[
29.41176470588235,
46.666666666666664,
50.19607843137255,
48.627450980392155
],
[
33.333333333333336,
51.372549019607845,
66.27450980392157,
65.09803921568627
]
],
[
[
30.19607843137255,
32.94117647058823,
58.431372549019606,
29.019607843137255
],
[
34.11764705882353,
38.431372549019606,
48.627450980392155,
34.509803921568626
],
[
34.11764705882353,
42.745098039215684,
53.333333333333336,
45.490196078431374
],
[
35.68627450980392,
48.23529411764706,
45.09803921568627,
52.549019607843135
],
[
37.64705882352941,
47.05882352941176,
41.96078431372549,
51.76470588235294
],
[
38.8235294117647,
44.705882352941174,
42.745098039215684,
49.411764705882355
],
[
36.470588235294116,
44.31372549019608,
42.35294117647059,
44.705882352941174
],
[
33.72549019607843,
44.31372549019608,
45.490196078431374,
42.745098039215684
],
[
33.333333333333336,
45.490196078431374,
49.01960784313725,
46.666666666666664
],
[
32.94117647058823,
47.450980392156865,
43.529411764705884,
48.23529411764706
],
[
31.372549019607842,
51.372549019607845,
39.21568627450981,
50.98039215686274
],
[
36.07843137254902,
48.627450980392155,
35.68627450980392,
49.80392156862745
],
[
46.27450980392157,
23.92156862745098,
49.411764705882355,
31.372549019607842
],
[
46.27450980392157,
8.627450980392156,
61.96078431372549,
18.03921568627451
],
[
39.21568627450981,
8.627450980392156,
65.88235294117646,
10.980392156862745
],
[
54.11764705882353,
30.980392156862745,
30.980392156862745,
54.90196078431372
],
[
83.92156862745098,
70.58823529411765,
14.901960784313726,
100
],
[
83.92156862745098,
72.94117647058823,
20.392156862745097,
100
],
[
65.49019607843137,
51.76470588235294,
11.76470588235294,
91.37254901960785
],
[
64.70588235294117,
50.19607843137255,
9.803921568627452,
87.45098039215686
],
[
61.96078431372549,
37.254901960784316,
9.019607843137255,
69.01960784313725
],
[
53.333333333333336,
22.352941176470587,
25.49019607843137,
35.294117647058826
],
[
37.254901960784316,
16.07843137254902,
63.13725490196078,
8.627450980392156
],
[
26.666666666666668,
18.03921568627451,
76.86274509803921,
10.980392156862745
],
[
25.88235294117647,
18.823529411764707,
72.94117647058823,
13.72549019607843
],
[
16.470588235294116,
15.686274509803921,
78.82352941176471,
10.196078431372548
],
[
24.313725490196077,
15.294117647058822,
76.86274509803921,
12.549019607843137
],
[
36.470588235294116,
41.568627450980394,
44.705882352941174,
40
],
[
30.588235294117645,
55.68627450980392,
37.64705882352941,
56.07843137254902
],
[
31.372549019607842,
54.11764705882353,
41.96078431372549,
58.431372549019606
],
[
29.80392156862745,
54.11764705882353,
43.13725490196078,
57.64705882352941
],
[
26.274509803921568,
52.15686274509804,
50.19607843137255,
52.94117647058823
],
[
23.137254901960784,
54.90196078431372,
56.470588235294116,
58.8235294117647
],
[
25.49019607843137,
55.68627450980392,
54.90196078431372,
60.78431372549019
],
[
29.019607843137255,
53.72549019607843,
46.666666666666664,
56.07843137254902
],
[
27.84313725490196,
52.15686274509804,
56.07843137254902,
57.254901960784316
],
[
30.19607843137255,
48.627450980392155,
58.03921568627451,
54.11764705882353
],
[
32.15686274509804,
49.80392156862745,
52.15686274509804,
54.11764705882353
],
[
31.764705882352942,
50.98039215686274,
65.49019607843137,
64.31372549019608
]
],
[
[
25.098039215686274,
25.49019607843137,
74.11764705882352,
24.313725490196077
],
[
34.509803921568626,
39.6078431372549,
44.31372549019608,
34.11764705882353
],
[
30.980392156862745,
42.35294117647059,
40.78431372549019,
34.90196078431372
],
[
31.372549019607842,
39.6078431372549,
50.98039215686274,
35.68627450980392
],
[
34.90196078431372,
48.627450980392155,
45.490196078431374,
52.549019607843135
],
[
33.72549019607843,
45.490196078431374,
47.84313725490196,
47.450980392156865
],
[
32.94117647058823,
42.35294117647059,
45.490196078431374,
39.6078431372549
],
[
31.764705882352942,
44.705882352941174,
46.27450980392157,
42.745098039215684
],
[
30.980392156862745,
48.627450980392155,
47.84313725490196,
50.19607843137255
],
[
30.980392156862745,
52.94117647058823,
48.23529411764706,
56.86274509803921
],
[
34.11764705882353,
59.6078431372549,
44.31372549019608,
68.23529411764706
],
[
40,
61.568627450980394,
41.1764705882353,
73.72549019607843
],
[
44.705882352941174,
29.019607843137255,
49.01960784313725,
34.509803921568626
],
[
46.27450980392157,
10.196078431372548,
58.431372549019606,
16.470588235294116
],
[
40.3921568627451,
10.196078431372548,
65.49019607843137,
11.76470588235294
],
[
27.45098039215686,
5.88235294117647,
74.50980392156863,
0
],
[
50.19607843137255,
31.764705882352942,
48.23529411764706,
40.3921568627451
],
[
68.62745098039215,
52.94117647058823,
30.588235294117645,
76.47058823529412
],
[
57.64705882352941,
34.90196078431372,
22.745098039215687,
57.254901960784316
],
[
49.80392156862745,
21.176470588235293,
30.19607843137255,
34.509803921568626
],
[
46.666666666666664,
17.647058823529413,
40.3921568627451,
21.56862745098039
],
[
43.529411764705884,
19.607843137254903,
50.98039215686274,
16.862745098039216
],
[
39.21568627450981,
18.823529411764707,
56.86274509803921,
10.980392156862745
],
[
30.980392156862745,
18.823529411764707,
69.41176470588235,
8.235294117647058
],
[
25.098039215686274,
20,
74.11764705882352,
11.76470588235294
],
[
18.823529411764707,
19.607843137254903,
76.07843137254902,
12.549019607843137
],
[
21.96078431372549,
15.294117647058822,
78.0392156862745,
8.235294117647058
],
[
28.627450980392158,
37.64705882352941,
54.509803921568626,
32.94117647058823
],
[
28.235294117647058,
56.07843137254902,
40,
54.509803921568626
],
[
30.19607843137255,
54.11764705882353,
44.705882352941174,
56.86274509803921
],
[
27.45098039215686,
56.86274509803921,
40.3921568627451,
59.2156862745098
],
[
26.666666666666668,
49.411764705882355,
47.05882352941176,
47.05882352941176
],
[
27.45098039215686,
49.01960784313725,
54.11764705882353,
49.411764705882355
],
[
25.88235294117647,
46.666666666666664,
54.90196078431372,
44.31372549019608
],
[
23.92156862745098,
44.31372549019608,
56.07843137254902,
40.78431372549019
],
[
25.098039215686274,
53.333333333333336,
60,
58.03921568627451
],
[
28.235294117647058,
54.509803921568626,
59.6078431372549,
63.13725490196078
],
[
29.80392156862745,
53.72549019607843,
59.2156862745098,
61.96078431372549
],
[
30.19607843137255,
46.27450980392157,
66.27450980392157,
57.254901960784316
]
],
[
[
22.352941176470587,
22.352941176470587,
81.96078431372548,
29.019607843137255
],
[
30.588235294117645,
39.21568627450981,
52.94117647058823,
34.11764705882353
],
[
27.058823529411764,
41.568627450980394,
45.09803921568627,
30.19607843137255
],
[
29.019607843137255,
36.86274509803921,
53.72549019607843,
29.80392156862745
],
[
34.509803921568626,
43.529411764705884,
49.80392156862745,
44.705882352941174
],
[
29.41176470588235,
52.94117647058823,
60,
59.6078431372549
],
[
27.84313725490196,
56.07843137254902,
58.431372549019606,
61.568627450980394
],
[
29.41176470588235,
57.254901960784316,
56.86274509803921,
63.92156862745098
],
[
31.372549019607842,
61.17647058823529,
58.03921568627451,
72.54901960784314
],
[
34.11764705882353,
65.09803921568627,
57.64705882352941,
79.2156862745098
],
[
36.86274509803921,
67.84313725490196,
56.86274509803921,
84.31372549019608
],
[
36.86274509803921,
72.15686274509804,
45.88235294117647,
88.62745098039215
],
[
38.03921568627451,
44.31372549019608,
48.23529411764706,
50.588235294117645
],
[
43.529411764705884,
10.588235294117647,
62.745098039215684,
14.901960784313726
],
[
43.13725490196078,
12.941176470588236,
60.78431372549019,
17.647058823529413
],
[
34.11764705882353,
17.647058823529413,
69.01960784313725,
10.588235294117647
],
[
24.313725490196077,
9.019607843137255,
78.82352941176471,
0
],
[
40.78431372549019,
18.431372549019606,
40.3921568627451,
24.705882352941178
],
[
56.470588235294116,
38.8235294117647,
20,
62.35294117647059
],
[
47.84313725490196,
26.274509803921568,
31.764705882352942,
36.470588235294116
],
[
46.27450980392157,
23.52941176470588,
28.627450980392158,
30.980392156862745
],
[
50.19607843137255,
32.15686274509804,
18.823529411764707,
48.23529411764706
],
[
54.90196078431372,
33.72549019607843,
7.8431372549019605,
53.72549019607843
],
[
47.84313725490196,
17.254901960784313,
38.431372549019606,
18.03921568627451
],
[
29.41176470588235,
16.862745098039216,
73.33333333333333,
3.5294117647058822
],
[
20.392156862745097,
20,
76.86274509803921,
7.0588235294117645
],
[
23.52941176470588,
15.686274509803921,
75.29411764705883,
5.098039215686274
],
[
20.784313725490197,
29.41176470588235,
63.92156862745098,
18.431372549019606
],
[
27.058823529411764,
56.86274509803921,
36.470588235294116,
51.76470588235294
],
[
27.84313725490196,
57.64705882352941,
41.568627450980394,
60.78431372549019
],
[
29.41176470588235,
57.64705882352941,
40.3921568627451,
61.568627450980394
],
[
30.19607843137255,
55.294117647058826,
44.705882352941174,
58.8235294117647
],
[
31.372549019607842,
53.72549019607843,
48.23529411764706,
57.254901960784316
],
[
28.627450980392158,
49.411764705882355,
50.98039215686274,
49.01960784313725
],
[
34.11764705882353,
49.411764705882355,
47.84313725490196,
54.11764705882353
],
[
35.68627450980392,
52.15686274509804,
44.31372549019608,
59.6078431372549
],
[
30.588235294117645,
50.19607843137255,
54.11764705882353,
56.07843137254902
],
[
34.11764705882353,
59.2156862745098,
56.86274509803921,
72.54901960784314
],
[
38.8235294117647,
48.627450980392155,
56.07843137254902,
63.92156862745098
]
],
[
[
25.098039215686274,
32.549019607843135,
71.76470588235294,
36.86274509803921
],
[
25.88235294117647,
50.98039215686274,
61.568627450980394,
50.19607843137255
],
[
24.705882352941178,
51.76470588235294,
64.31372549019608,
56.470588235294116
],
[
23.52941176470588,
53.333333333333336,
65.88235294117646,
59.2156862745098
],
[
28.627450980392158,
57.64705882352941,
59.6078431372549,
63.92156862745098
],
[
41.568627450980394,
55.294117647058826,
34.11764705882353,
67.45098039215686
],
[
42.35294117647059,
48.23529411764706,
34.11764705882353,
58.431372549019606
],
[
40.3921568627451,
48.23529411764706,
36.86274509803921,
55.294117647058826
],
[
38.03921568627451,
48.627450980392155,
49.80392156862745,
57.64705882352941
],
[
37.254901960784316,
49.01960784313725,
54.509803921568626,
59.6078431372549
],
[
38.8235294117647,
53.333333333333336,
44.31372549019608,
62.745098039215684
],
[
37.64705882352941,
53.72549019607843,
33.333333333333336,
56.07843137254902
],
[
36.07843137254902,
41.1764705882353,
41.568627450980394,
41.96078431372549
],
[
38.03921568627451,
12.941176470588236,
70.58823529411765,
18.431372549019606
],
[
39.21568627450981,
12.941176470588236,
69.80392156862744,
13.333333333333334
],
[
35.68627450980392,
13.333333333333334,
64.31372549019608,
4.313725490196078
],
[
37.64705882352941,
16.470588235294116,
41.96078431372549,
15.294117647058822
],
[
54.11764705882353,
41.568627450980394,
23.92156862745098,
63.92156862745098
],
[
69.41176470588235,
68.62745098039215,
17.647058823529413,
100
],
[
65.09803921568627,
57.254901960784316,
10.196078431372548,
91.76470588235294
],
[
61.96078431372549,
49.411764705882355,
4.313725490196078,
83.52941176470588
],
[
64.70588235294117,
57.64705882352941,
8.235294117647058,
91.76470588235294
],
[
65.88235294117646,
58.8235294117647,
0,
94.90196078431373
],
[
59.2156862745098,
29.019607843137255,
7.8431372549019605,
51.76470588235294
],
[
43.92156862745098,
12.549019607843137,
53.72549019607843,
10.196078431372548
],
[
41.1764705882353,
19.607843137254903,
56.470588235294116,
16.862745098039216
],
[
37.64705882352941,
20.784313725490197,
54.11764705882353,
18.431372549019606
],
[
16.862745098039216,
16.07843137254902,
80.3921568627451,
7.450980392156863
],
[
25.88235294117647,
34.11764705882353,
55.68627450980392,
24.313725490196077
],
[
33.72549019607843,
49.411764705882355,
29.41176470588235,
41.568627450980394
],
[
32.94117647058823,
49.411764705882355,
34.90196078431372,
46.27450980392157
],
[
29.019607843137255,
51.76470588235294,
41.96078431372549,
49.80392156862745
],
[
28.627450980392158,
50.98039215686274,
41.568627450980394,
49.01960784313725
],
[
50.588235294117645,
61.568627450980394,
20,
82.74509803921569
],
[
53.72549019607843,
60,
21.96078431372549,
81.96078431372548
],
[
48.23529411764706,
56.07843137254902,
23.52941176470588,
71.37254901960785
],
[
43.13725490196078,
50.588235294117645,
41.568627450980394,
64.31372549019608
],
[
38.431372549019606,
46.27450980392157,
58.431372549019606,
58.8235294117647
],
[
44.31372549019608,
48.23529411764706,
50.588235294117645,
64.70588235294117
]
],
[
[
48.23529411764706,
30.980392156862745,
47.450980392156865,
47.05882352941176
],
[
40.3921568627451,
41.1764705882353,
52.549019607843135,
56.470588235294116
],
[
27.84313725490196,
49.80392156862745,
66.66666666666667,
59.6078431372549
],
[
28.235294117647058,
51.76470588235294,
61.96078431372549,
57.254901960784316
],
[
44.705882352941174,
49.411764705882355,
30.980392156862745,
66.27450980392157
],
[
54.11764705882353,
39.21568627450981,
10.980392156862745,
56.86274509803921
],
[
51.372549019607845,
35.294117647058826,
16.07843137254902,
47.450980392156865
],
[
50.19607843137255,
44.31372549019608,
12.549019607843137,
56.470588235294116
],
[
42.745098039215684,
30.19607843137255,
39.21568627450981,
30.19607843137255
],
[
34.90196078431372,
22.352941176470587,
55.68627450980392,
13.333333333333334
],
[
36.86274509803921,
30.980392156862745,
43.92156862745098,
23.52941176470588
],
[
40.78431372549019,
33.333333333333336,
36.07843137254902,
26.274509803921568
],
[
27.058823529411764,
18.431372549019606,
70.58823529411765,
15.294117647058822
],
[
29.41176470588235,
12.549019607843137,
84.70588235294117,
10.980392156862745
],
[
41.568627450980394,
9.803921568627452,
58.431372549019606,
11.372549019607844
],
[
54.90196078431372,
31.372549019607842,
20.392156862745097,
52.94117647058823
],
[
70.19607843137254,
62.745098039215684,
14.901960784313726,
93.33333333333333
],
[
80.3921568627451,
78.0392156862745,
32.549019607843135,
100
],
[
81.96078431372548,
78.0392156862745,
36.470588235294116,
99.2156862745098
],
[
78.43137254901961,
75.68627450980392,
29.019607843137255,
100
],
[
79.6078431372549,
79.2156862745098,
36.470588235294116,
100
],
[
81.56862745098039,
81.17647058823529,
37.64705882352941,
100
],
[
77.6470588235294,
76.47058823529412,
18.823529411764707,
100
],
[
64.70588235294117,
45.09803921568627,
5.88235294117647,
78.43137254901961
],
[
53.72549019607843,
12.549019607843137,
27.45098039215686,
30.588235294117645
],
[
58.431372549019606,
24.705882352941178,
20.784313725490197,
41.96078431372549
],
[
44.31372549019608,
23.92156862745098,
45.490196078431374,
27.058823529411764
],
[
26.666666666666668,
13.333333333333334,
81.96078431372548,
8.235294117647058
],
[
25.88235294117647,
10.980392156862745,
83.13725490196079,
2.7450980392156863
],
[
32.15686274509804,
31.372549019607842,
49.80392156862745,
20
],
[
38.03921568627451,
49.80392156862745,
20.784313725490197,
47.450980392156865
],
[
43.529411764705884,
61.96078431372549,
29.80392156862745,
70.19607843137254
],
[
49.01960784313725,
59.2156862745098,
30.588235294117645,
72.15686274509804
],
[
58.431372549019606,
60,
15.686274509803921,
83.92156862745098
],
[
49.411764705882355,
55.68627450980392,
21.96078431372549,
72.94117647058823
],
[
43.529411764705884,
53.72549019607843,
26.274509803921568,
65.88235294117646
],
[
41.96078431372549,
52.15686274509804,
45.09803921568627,
66.27450980392157
],
[
38.431372549019606,
43.92156862745098,
58.03921568627451,
55.294117647058826
],
[
39.6078431372549,
45.490196078431374,
57.64705882352941,
60.3921568627451
]
],
[
[
54.11764705882353,
29.80392156862745,
39.6078431372549,
53.72549019607843
],
[
60.3921568627451,
26.274509803921568,
29.41176470588235,
53.72549019607843
],
[
53.333333333333336,
29.019607843137255,
31.372549019607842,
45.88235294117647
],
[
52.15686274509804,
33.72549019607843,
28.235294117647058,
47.84313725490196
],
[
59.6078431372549,
43.92156862745098,
7.8431372549019605,
70.19607843137254
],
[
54.90196078431372,
45.88235294117647,
10.588235294117647,
67.84313725490196
],
[
54.509803921568626,
45.490196078431374,
8.235294117647058,
67.05882352941177
],
[
53.72549019607843,
37.254901960784316,
11.76470588235294,
56.470588235294116
],
[
45.88235294117647,
29.80392156862745,
35.294117647058826,
33.333333333333336
],
[
43.529411764705884,
34.11764705882353,
31.764705882352942,
34.509803921568626
],
[
48.627450980392155,
31.372549019607842,
29.80392156862745,
34.90196078431372
],
[
40,
25.88235294117647,
45.88235294117647,
29.41176470588235
],
[
20,
12.549019607843137,
90.58823529411765,
7.0588235294117645
],
[
37.64705882352941,
2.7450980392156863,
65.09803921568627,
9.803921568627452
],
[
60.78431372549019,
19.215686274509803,
4.705882352941177,
56.86274509803921
],
[
83.13725490196079,
78.43137254901961,
14.901960784313726,
100
],
[
92.94117647058823,
95.68627450980392,
52.549019607843135,
100
],
[
93.72549019607843,
91.37254901960785,
54.11764705882353,
100
],
[
90.58823529411765,
85.49019607843137,
43.13725490196078,
100
],
[
89.01960784313725,
84.31372549019608,
40.78431372549019,
100
],
[
91.37254901960785,
89.01960784313725,
52.15686274509804,
100
],
[
88.62745098039215,
85.88235294117646,
45.09803921568627,
100
],
[
79.6078431372549,
78.43137254901961,
22.352941176470587,
100
],
[
64.70588235294117,
41.96078431372549,
3.9215686274509802,
76.86274509803921
],
[
58.8235294117647,
12.941176470588236,
11.372549019607844,
41.96078431372549
],
[
52.15686274509804,
22.352941176470587,
27.058823529411764,
34.90196078431372
],
[
28.235294117647058,
16.470588235294116,
72.15686274509804,
1.5686274509803921
],
[
38.8235294117647,
16.07843137254902,
59.2156862745098,
11.372549019607844
],
[
46.666666666666664,
15.294117647058822,
51.76470588235294,
22.745098039215687
],
[
35.68627450980392,
14.509803921568627,
70.58823529411765,
13.72549019607843
],
[
37.254901960784316,
32.94117647058823,
37.64705882352941,
30.19607843137255
],
[
57.64705882352941,
61.17647058823529,
2.3529411764705883,
79.2156862745098
],
[
62.35294117647059,
71.37254901960785,
11.76470588235294,
99.2156862745098
],
[
53.333333333333336,
66.66666666666667,
20,
87.84313725490196
],
[
52.549019607843135,
62.745098039215684,
12.941176470588236,
81.17647058823529
],
[
52.549019607843135,
61.17647058823529,
23.137254901960784,
80.7843137254902
],
[
50.19607843137255,
58.8235294117647,
39.21568627450981,
78.0392156862745
],
[
47.84313725490196,
52.549019607843135,
40.78431372549019,
69.01960784313725
],
[
40.78431372549019,
41.568627450980394,
53.72549019607843,
55.294117647058826
]
],
[
[
51.76470588235294,
30.19607843137255,
42.35294117647059,
52.549019607843135
],
[
54.90196078431372,
33.333333333333336,
31.764705882352942,
53.333333333333336
],
[
54.509803921568626,
32.15686274509804,
22.352941176470587,
50.98039215686274
],
[
54.11764705882353,
27.84313725490196,
31.372549019607842,
45.88235294117647
],
[
54.90196078431372,
37.254901960784316,
29.41176470588235,
57.64705882352941
],
[
57.64705882352941,
50.98039215686274,
17.647058823529413,
74.50980392156863
],
[
58.431372549019606,
56.470588235294116,
6.2745098039215685,
83.13725490196079
],
[
54.11764705882353,
42.745098039215684,
6.2745098039215685,
63.92156862745098
],
[
53.72549019607843,
38.03921568627451,
3.5294117647058822,
54.509803921568626
],
[
59.2156862745098,
34.90196078431372,
5.88235294117647,
55.294117647058826
],
[
39.6078431372549,
20.392156862745097,
50.588235294117645,
29.41176470588235
],
[
20.784313725490197,
14.509803921568627,
84.70588235294117,
10.196078431372548
],
[
35.294117647058826,
15.294117647058822,
66.66666666666667,
15.294117647058822
],
[
65.88235294117646,
25.49019607843137,
5.098039215686274,
64.70588235294117
],
[
79.2156862745098,
60.78431372549019,
7.0588235294117645,
97.25490196078431
],
[
92.54901960784314,
94.11764705882352,
47.450980392156865,
100
],
[
94.50980392156863,
92.15686274509804,
58.03921568627451,
100
],
[
92.94117647058823,
90.58823529411765,
55.68627450980392,
100
],
[
90.58823529411765,
87.05882352941177,
49.80392156862745,
100
],
[
91.76470588235294,
87.84313725490196,
48.627450980392155,
100
],
[
92.15686274509804,
89.41176470588235,
53.333333333333336,
100
],
[
86.66666666666667,
85.09803921568627,
41.568627450980394,
100
],
[
78.82352941176471,
75.29411764705883,
20.392156862745097,
100
],
[
65.49019607843137,
32.15686274509804,
0,
71.37254901960785
],
[
56.470588235294116,
12.549019607843137,
11.76470588235294,
38.8235294117647
],
[
49.80392156862745,
27.84313725490196,
27.45098039215686,
38.431372549019606
],
[
48.23529411764706,
37.254901960784316,
30.980392156862745,
48.627450980392155
],
[
62.35294117647059,
43.92156862745098,
9.019607843137255,
70.98039215686275
],
[
68.23529411764706,
42.745098039215684,
0,
73.72549019607843
],
[
53.72549019607843,
27.058823529411764,
34.11764705882353,
39.6078431372549
],
[
31.764705882352942,
14.509803921568627,
76.07843137254902,
10.980392156862745
],
[
29.80392156862745,
18.03921568627451,
58.03921568627451,
20
],
[
45.490196078431374,
33.333333333333336,
27.45098039215686,
45.09803921568627
],
[
58.431372549019606,
49.411764705882355,
22.745098039215687,
67.84313725490196
],
[
52.94117647058823,
56.86274509803921,
29.80392156862745,
76.07843137254902
],
[
52.549019607843135,
63.529411764705884,
36.86274509803921,
83.13725490196079
],
[
56.470588235294116,
69.80392156862744,
34.509803921568626,
90.58823529411765
],
[
56.86274509803921,
62.35294117647059,
30.19607843137255,
85.49019607843137
],
[
51.372549019607845,
50.98039215686274,
39.6078431372549,
71.76470588235294
]
],
[
[
50.98039215686274,
23.92156862745098,
56.86274509803921,
50.588235294117645
],
[
61.17647058823529,
32.15686274509804,
26.666666666666668,
60.78431372549019
],
[
53.333333333333336,
32.94117647058823,
27.45098039215686,
51.372549019607845
],
[
53.333333333333336,
30.980392156862745,
28.627450980392158,
49.80392156862745
],
[
54.11764705882353,
27.84313725490196,
33.333333333333336,
47.84313725490196
],
[
53.333333333333336,
29.019607843137255,
38.8235294117647,
47.84313725490196
],
[
56.86274509803921,
43.529411764705884,
18.823529411764707,
69.41176470588235
],
[
64.70588235294117,
52.15686274509804,
0,
83.52941176470588
],
[
67.05882352941177,
47.84313725490196,
0,
78.82352941176471
],
[
30.980392156862745,
14.901960784313726,
63.92156862745098,
25.49019607843137
],
[
14.509803921568627,
11.76470588235294,
93.33333333333333,
9.411764705882353
],
[
26.274509803921568,
12.941176470588236,
84.70588235294117,
5.098039215686274
],
[
47.84313725490196,
15.686274509803921,
33.72549019607843,
35.294117647058826
],
[
83.52941176470588,
69.01960784313725,
1.5686274509803921,
100
],
[
99.6078431372549,
100,
49.411764705882355,
100
],
[
97.25490196078431,
100,
56.470588235294116,
100
],
[
92.15686274509804,
91.76470588235294,
50.19607843137255,
100
],
[
94.90196078431373,
94.50980392156863,
60.78431372549019,
100
],
[
97.25490196078431,
98.0392156862745,
73.72549019607843,
100
],
[
94.90196078431373,
95.29411764705883,
68.23529411764706,
100
],
[
95.29411764705883,
94.90196078431373,
65.88235294117646,
100
],
[
96.07843137254902,
96.86274509803921,
57.64705882352941,
100
],
[
81.17647058823529,
76.86274509803921,
19.215686274509803,
100
],
[
63.92156862745098,
40.78431372549019,
0,
81.56862745098039
],
[
59.6078431372549,
35.68627450980392,
4.705882352941177,
63.13725490196078
],
[
62.745098039215684,
45.09803921568627,
9.019607843137255,
70.58823529411765
],
[
65.09803921568627,
45.09803921568627,
9.411764705882353,
72.54901960784314
],
[
54.509803921568626,
37.64705882352941,
28.235294117647058,
55.68627450980392
],
[
41.1764705882353,
29.41176470588235,
46.666666666666664,
38.8235294117647
],
[
33.72549019607843,
24.313725490196077,
56.07843137254902,
26.274509803921568
],
[
20.784313725490197,
16.470588235294116,
76.86274509803921,
16.470588235294116
],
[
7.8431372549019605,
7.8431372549019605,
96.86274509803921,
12.156862745098039
],
[
15.294117647058822,
7.8431372549019605,
88.62745098039215,
10.588235294117647
],
[
44.705882352941174,
12.156862745098039,
56.07843137254902,
27.45098039215686
],
[
55.68627450980392,
20,
50.98039215686274,
41.1764705882353
],
[
41.1764705882353,
27.058823529411764,
66.27450980392157,
39.21568627450981
],
[
48.23529411764706,
46.666666666666664,
47.84313725490196,
64.70588235294117
],
[
59.2156862745098,
67.84313725490196,
30.19607843137255,
89.80392156862744
],
[
58.431372549019606,
67.84313725490196,
33.333333333333336,
92.54901960784314
]
],
[
[
38.431372549019606,
20.784313725490197,
76.47058823529412,
43.13725490196078
],
[
67.45098039215686,
23.92156862745098,
23.52941176470588,
60.78431372549019
],
[
63.529411764705884,
28.235294117647058,
16.470588235294116,
65.09803921568627
],
[
62.35294117647059,
35.68627450980392,
16.862745098039216,
70.58823529411765
],
[
63.529411764705884,
34.11764705882353,
18.823529411764707,
71.37254901960785
],
[
60,
37.64705882352941,
24.705882352941178,
69.41176470588235
],
[
61.568627450980394,
43.13725490196078,
9.411764705882353,
70.98039215686275
],
[
57.64705882352941,
35.68627450980392,
19.215686274509803,
64.31372549019608
],
[
32.94117647058823,
20.392156862745097,
72.15686274509804,
34.11764705882353
],
[
10.980392156862745,
9.019607843137255,
94.90196078431373,
11.76470588235294
],
[
25.49019607843137,
16.862745098039216,
75.29411764705883,
16.07843137254902
],
[
38.8235294117647,
21.176470588235293,
59.6078431372549,
18.431372549019606
],
[
52.94117647058823,
29.019607843137255,
25.49019607843137,
46.666666666666664
],
[
63.13725490196078,
43.529411764705884,
14.901960784313726,
71.76470588235294
],
[
76.86274509803921,
62.35294117647059,
26.274509803921568,
87.05882352941177
],
[
77.25490196078431,
65.88235294117646,
27.84313725490196,
90.19607843137254
],
[
80.3921568627451,
75.29411764705883,
36.07843137254902,
96.86274509803921
],
[
93.72549019607843,
90.98039215686275,
52.15686274509804,
100
],
[
94.90196078431373,
96.07843137254902,
64.31372549019608,
100
],
[
96.86274509803921,
99.2156862745098,
70.58823529411765,
100
],
[
96.47058823529412,
95.68627450980392,
60.78431372549019,
100
],
[
85.09803921568627,
80.7843137254902,
34.11764705882353,
100
],
[
68.23529411764706,
57.64705882352941,
2.3529411764705883,
89.01960784313725
],
[
57.254901960784316,
40.78431372549019,
10.980392156862745,
57.64705882352941
],
[
45.09803921568627,
30.588235294117645,
41.1764705882353,
36.470588235294116
],
[
33.72549019607843,
24.313725490196077,
62.745098039215684,
25.49019607843137
],
[
24.705882352941178,
16.862745098039216,
72.54901960784314,
10.588235294117647
],
[
22.352941176470587,
16.07843137254902,
75.29411764705883,
8.235294117647058
],
[
13.72549019607843,
15.294117647058822,
85.49019607843137,
5.098039215686274
],
[
4.313725490196078,
12.549019607843137,
89.80392156862744,
6.2745098039215685
],
[
5.098039215686274,
12.941176470588236,
84.70588235294117,
14.509803921568627
],
[
9.411764705882353,
13.72549019607843,
83.52941176470588,
21.176470588235293
],
[
12.549019607843137,
13.333333333333334,
87.84313725490196,
19.607843137254903
],
[
16.07843137254902,
11.372549019607844,
92.15686274509804,
21.56862745098039
],
[
51.372549019607845,
13.333333333333334,
58.03921568627451,
45.09803921568627
],
[
64.31372549019608,
13.72549019607843,
41.568627450980394,
50.98039215686274
],
[
54.509803921568626,
19.607843137254903,
56.470588235294116,
49.01960784313725
],
[
55.68627450980392,
30.980392156862745,
55.294117647058826,
61.17647058823529
],
[
51.76470588235294,
36.86274509803921,
58.03921568627451,
67.45098039215686
]
],
[
[
20.784313725490197,
16.862745098039216,
94.50980392156863,
33.333333333333336
],
[
50.98039215686274,
10.588235294117647,
49.411764705882355,
43.13725490196078
],
[
72.15686274509804,
18.431372549019606,
11.76470588235294,
72.54901960784314
],
[
69.01960784313725,
29.41176470588235,
12.156862745098039,
78.82352941176471
],
[
68.62745098039215,
27.45098039215686,
10.588235294117647,
76.07843137254902
],
[
66.27450980392157,
36.470588235294116,
9.803921568627452,
77.6470588235294
],
[
67.05882352941177,
42.745098039215684,
7.0588235294117645,
75.29411764705883
],
[
34.509803921568626,
15.294117647058822,
70.19607843137254,
29.80392156862745
],
[
13.72549019607843,
9.411764705882353,
100,
16.07843137254902
],
[
18.03921568627451,
17.254901960784313,
85.88235294117646,
29.80392156862745
],
[
27.84313725490196,
20,
76.07843137254902,
23.52941176470588
],
[
47.450980392156865,
33.333333333333336,
36.07843137254902,
38.8235294117647
],
[
51.372549019607845,
39.21568627450981,
27.058823529411764,
50.19607843137255
],
[
43.92156862745098,
26.666666666666668,
40.78431372549019,
35.294117647058826
],
[
46.27450980392157,
20.784313725490197,
24.313725490196077,
40.78431372549019
],
[
51.76470588235294,
28.627450980392158,
14.901960784313726,
57.64705882352941
],
[
56.86274509803921,
40,
21.96078431372549,
68.62745098039215
],
[
62.35294117647059,
44.31372549019608,
19.607843137254903,
74.50980392156863
],
[
64.31372549019608,
44.31372549019608,
19.607843137254903,
74.50980392156863
],
[
65.49019607843137,
50.19607843137255,
28.627450980392158,
76.07843137254902
],
[
62.745098039215684,
56.470588235294116,
16.470588235294116,
82.3529411764706
],
[
52.94117647058823,
40.3921568627451,
8.235294117647058,
60
],
[
41.1764705882353,
26.666666666666668,
29.41176470588235,
30.980392156862745
],
[
22.352941176470587,
18.03921568627451,
69.41176470588235,
11.76470588235294
],
[
11.76470588235294,
14.117647058823529,
89.80392156862744,
7.0588235294117645
],
[
24.313725490196077,
23.52941176470588,
71.37254901960785,
17.647058823529413
],
[
35.294117647058826,
32.94117647058823,
51.372549019607845,
33.333333333333336
],
[
33.333333333333336,
30.19607843137255,
59.6078431372549,
26.666666666666668
],
[
25.098039215686274,
23.52941176470588,
72.54901960784314,
16.862745098039216
],
[
14.117647058823529,
17.254901960784313,
78.0392156862745,
12.941176470588236
],
[
10.588235294117647,
15.294117647058822,
80,
15.686274509803921
],
[
12.549019607843137,
14.117647058823529,
81.56862745098039,
19.607843137254903
],
[
17.647058823529413,
14.117647058823529,
82.3529411764706,
21.96078431372549
],
[
9.411764705882353,
14.117647058823529,
93.33333333333333,
23.52941176470588
],
[
27.84313725490196,
14.509803921568627,
80.7843137254902,
37.64705882352941
],
[
65.09803921568627,
16.470588235294116,
40.3921568627451,
54.509803921568626
],
[
54.509803921568626,
16.470588235294116,
57.64705882352941,
46.666666666666664
],
[
58.431372549019606,
16.862745098039216,
59.2156862745098,
55.68627450980392
],
[
41.96078431372549,
22.745098039215687,
79.6078431372549,
53.72549019607843
]
],
[
[
20.392156862745097,
18.03921568627451,
92.94117647058823,
40.3921568627451
],
[
19.215686274509803,
9.019607843137255,
95.29411764705883,
20.392156862745097
],
[
56.86274509803921,
5.098039215686274,
49.80392156862745,
41.1764705882353
],
[
69.01960784313725,
12.156862745098039,
25.49019607843137,
61.96078431372549
],
[
66.66666666666667,
15.294117647058822,
16.07843137254902,
64.70588235294117
],
[
68.23529411764706,
15.294117647058822,
10.980392156862745,
65.09803921568627
],
[
67.05882352941177,
18.431372549019606,
25.49019607843137,
60
],
[
31.764705882352942,
17.647058823529413,
79.6078431372549,
30.588235294117645
],
[
14.509803921568627,
17.254901960784313,
89.41176470588235,
27.058823529411764
],
[
16.862745098039216,
15.294117647058822,
87.05882352941177,
25.49019607843137
],
[
29.41176470588235,
21.96078431372549,
72.54901960784314,
25.88235294117647
],
[
45.09803921568627,
32.549019607843135,
43.92156862745098,
35.294117647058826
],
[
38.8235294117647,
26.666666666666668,
52.549019607843135,
24.705882352941178
],
[
37.254901960784316,
25.88235294117647,
57.64705882352941,
22.745098039215687
],
[
41.1764705882353,
32.15686274509804,
46.666666666666664,
30.980392156862745
],
[
48.23529411764706,
41.1764705882353,
31.372549019607842,
52.549019607843135
],
[
51.372549019607845,
39.6078431372549,
24.705882352941178,
57.64705882352941
],
[
49.01960784313725,
30.19607843137255,
28.235294117647058,
47.450980392156865
],
[
45.490196078431374,
25.88235294117647,
31.764705882352942,
39.6078431372549
],
[
44.31372549019608,
31.764705882352942,
23.137254901960784,
44.705882352941174
],
[
40,
33.333333333333336,
29.80392156862745,
36.86274509803921
],
[
30.19607843137255,
25.098039215686274,
61.17647058823529,
15.686274509803921
],
[
12.156862745098039,
16.470588235294116,
85.09803921568627,
5.88235294117647
],
[
7.8431372549019605,
14.901960784313726,
86.66666666666667,
8.235294117647058
],
[
28.235294117647058,
25.49019607843137,
64.70588235294117,
18.431372549019606
],
[
38.03921568627451,
30.588235294117645,
50.19607843137255,
23.52941176470588
],
[
35.68627450980392,
31.764705882352942,
51.76470588235294,
26.666666666666668
],
[
39.21568627450981,
32.15686274509804,
47.450980392156865,
31.764705882352942
],
[
45.490196078431374,
34.509803921568626,
31.764705882352942,
44.705882352941174
],
[
51.372549019607845,
30.980392156862745,
29.019607843137255,
38.03921568627451
],
[
48.23529411764706,
25.098039215686274,
45.88235294117647,
28.235294117647058
],
[
23.92156862745098,
18.03921568627451,
76.86274509803921,
20
],
[
14.509803921568627,
16.862745098039216,
82.74509803921569,
20.392156862745097
],
[
14.901960784313726,
14.117647058823529,
84.70588235294117,
21.96078431372549
],
[
13.333333333333334,
12.941176470588236,
92.94117647058823,
25.098039215686274
],
[
45.490196078431374,
18.823529411764707,
58.8235294117647,
44.31372549019608
],
[
60,
18.431372549019606,
45.88235294117647,
54.90196078431372
],
[
43.529411764705884,
20.392156862745097,
74.11764705882352,
47.84313725490196
],
[
38.03921568627451,
25.49019607843137,
83.13725490196079,
52.94117647058823
]
],
[
[
32.549019607843135,
20.392156862745097,
81.56862745098039,
37.64705882352941
],
[
36.07843137254902,
26.666666666666668,
70.98039215686275,
41.1764705882353
],
[
59.6078431372549,
38.8235294117647,
30.980392156862745,
70.19607843137254
],
[
65.09803921568627,
41.568627450980394,
24.705882352941178,
78.0392156862745
],
[
62.745098039215684,
40.78431372549019,
29.019607843137255,
76.07843137254902
],
[
70.58823529411765,
39.21568627450981,
10.980392156862745,
81.96078431372548
],
[
52.94117647058823,
25.098039215686274,
47.05882352941176,
48.627450980392155
],
[
21.96078431372549,
16.470588235294116,
88.23529411764706,
22.745098039215687
],
[
12.549019607843137,
13.72549019607843,
89.80392156862744,
26.666666666666668
],
[
14.901960784313726,
13.333333333333334,
85.09803921568627,
21.96078431372549
],
[
24.313725490196077,
19.215686274509803,
78.43137254901961,
25.098039215686274
],
[
32.15686274509804,
24.313725490196077,
69.41176470588235,
24.705882352941178
],
[
34.11764705882353,
24.705882352941178,
64.70588235294117,
21.176470588235293
],
[
33.333333333333336,
24.313725490196077,
65.49019607843137,
21.96078431372549
],
[
34.90196078431372,
25.88235294117647,
61.96078431372549,
24.705882352941178
],
[
41.96078431372549,
32.549019607843135,
46.666666666666664,
32.549019607843135
],
[
42.35294117647059,
29.80392156862745,
48.23529411764706,
31.764705882352942
],
[
42.745098039215684,
29.41176470588235,
46.27450980392157,
30.980392156862745
],
[
44.705882352941174,
36.470588235294116,
34.90196078431372,
40.3921568627451
],
[
41.1764705882353,
36.07843137254902,
43.13725490196078,
37.64705882352941
],
[
30.980392156862745,
24.705882352941178,
67.05882352941177,
16.470588235294116
],
[
16.07843137254902,
16.862745098039216,
82.74509803921569,
9.803921568627452
],
[
12.941176470588236,
16.07843137254902,
81.17647058823529,
13.333333333333334
],
[
24.705882352941178,
21.96078431372549,
70.58823529411765,
16.470588235294116
],
[
27.058823529411764,
23.92156862745098,
67.45098039215686,
16.470588235294116
],
[
21.176470588235293,
20.784313725490197,
72.94117647058823,
10.980392156862745
],
[
37.254901960784316,
26.274509803921568,
53.72549019607843,
21.176470588235293
],
[
56.86274509803921,
34.11764705882353,
20.392156862745097,
50.19607843137255
],
[
62.745098039215684,
36.86274509803921,
9.019607843137255,
56.86274509803921
],
[
47.05882352941176,
25.098039215686274,
39.21568627450981,
33.72549019607843
],
[
26.666666666666668,
17.254901960784313,
68.23529411764706,
21.176470588235293
],
[
9.803921568627452,
11.76470588235294,
85.88235294117646,
16.470588235294116
],
[
7.0588235294117645,
12.156862745098039,
85.88235294117646,
19.607843137254903
],
[
25.49019607843137,
18.823529411764707,
77.25490196078431,
25.88235294117647
],
[
18.431372549019606,
16.470588235294116,
87.45098039215686,
27.45098039215686
],
[
25.88235294117647,
17.254901960784313,
80.7843137254902,
37.254901960784316
],
[
58.03921568627451,
27.45098039215686,
46.666666666666664,
58.03921568627451
],
[
39.6078431372549,
26.274509803921568,
74.11764705882352,
50.98039215686274
],
[
34.509803921568626,
25.098039215686274,
87.05882352941177,
51.372549019607845
]
],
[
[
42.745098039215684,
29.41176470588235,
69.80392156862744,
50.19607843137255
],
[
52.94117647058823,
36.07843137254902,
40.3921568627451,
57.254901960784316
],
[
56.470588235294116,
49.80392156862745,
29.80392156862745,
74.50980392156863
],
[
57.64705882352941,
51.372549019607845,
30.19607843137255,
76.07843137254902
],
[
64.31372549019608,
55.68627450980392,
18.03921568627451,
83.92156862745098
],
[
57.254901960784316,
47.84313725490196,
30.588235294117645,
72.54901960784314
],
[
27.45098039215686,
23.52941176470588,
75.29411764705883,
29.80392156862745
],
[
19.215686274509803,
17.254901960784313,
86.66666666666667,
24.705882352941178
],
[
24.313725490196077,
18.03921568627451,
83.52941176470588,
32.15686274509804
],
[
20.784313725490197,
15.686274509803921,
85.88235294117646,
29.019607843137255
],
[
16.07843137254902,
16.07843137254902,
87.45098039215686,
29.80392156862745
],
[
23.137254901960784,
19.607843137254903,
80.7843137254902,
23.92156862745098
],
[
32.549019607843135,
24.705882352941178,
67.05882352941177,
22.352941176470587
],
[
30.588235294117645,
21.56862745098039,
69.80392156862744,
21.176470588235293
],
[
28.235294117647058,
21.96078431372549,
72.15686274509804,
21.176470588235293
],
[
37.254901960784316,
27.45098039215686,
60.3921568627451,
24.313725490196077
],
[
34.11764705882353,
23.52941176470588,
66.27450980392157,
20.392156862745097
],
[
41.96078431372549,
32.15686274509804,
46.666666666666664,
33.72549019607843
],
[
43.529411764705884,
33.72549019607843,
41.96078431372549,
35.68627450980392
],
[
38.03921568627451,
30.980392156862745,
56.470588235294116,
25.49019607843137
],
[
23.52941176470588,
20,
74.90196078431373,
16.862745098039216
],
[
13.72549019607843,
13.333333333333334,
81.96078431372548,
13.72549019607843
],
[
18.03921568627451,
17.254901960784313,
77.25490196078431,
14.117647058823529
],
[
16.862745098039216,
18.03921568627451,
78.0392156862745,
15.686274509803921
],
[
12.941176470588236,
18.823529411764707,
82.74509803921569,
16.07843137254902
],
[
29.80392156862745,
27.45098039215686,
61.96078431372549,
24.313725490196077
],
[
51.372549019607845,
29.019607843137255,
40,
32.549019607843135
],
[
50.588235294117645,
27.058823529411764,
41.1764705882353,
34.90196078431372
],
[
33.333333333333336,
21.56862745098039,
58.431372549019606,
23.92156862745098
],
[
14.901960784313726,
12.549019607843137,
84.70588235294117,
9.411764705882353
],
[
9.411764705882353,
10.980392156862745,
87.45098039215686,
11.76470588235294
],
[
9.803921568627452,
9.411764705882353,
85.49019607843137,
19.607843137254903
],
[
3.9215686274509802,
8.627450980392156,
89.80392156862744,
23.92156862745098
],
[
22.745098039215687,
19.215686274509803,
78.82352941176471,
30.19607843137255
],
[
29.80392156862745,
21.96078431372549,
79.2156862745098,
32.94117647058823
],
[
18.03921568627451,
17.254901960784313,
89.80392156862744,
34.509803921568626
],
[
47.450980392156865,
31.764705882352942,
52.549019607843135,
53.333333333333336
],
[
51.372549019607845,
35.294117647058826,
47.450980392156865,
59.6078431372549
],
[
41.96078431372549,
30.19607843137255,
67.84313725490196,
52.94117647058823
]
],
[
[
36.86274509803921,
32.549019607843135,
77.6470588235294,
56.07843137254902
],
[
39.6078431372549,
25.49019607843137,
64.31372549019608,
37.254901960784316
],
[
44.705882352941174,
33.333333333333336,
54.509803921568626,
43.529411764705884
],
[
47.450980392156865,
36.86274509803921,
46.27450980392157,
48.627450980392155
],
[
40,
26.666666666666668,
59.6078431372549,
37.64705882352941
],
[
23.137254901960784,
16.470588235294116,
85.88235294117646,
23.92156862745098
],
[
11.76470588235294,
14.117647058823529,
94.90196078431373,
24.313725490196077
],
[
29.41176470588235,
21.56862745098039,
75.29411764705883,
33.72549019607843
],
[
45.88235294117647,
29.80392156862745,
57.254901960784316,
37.64705882352941
],
[
35.68627450980392,
22.745098039215687,
69.80392156862744,
30.980392156862745
],
[
21.176470588235293,
16.07843137254902,
83.92156862745098,
25.49019607843137
],
[
20.392156862745097,
16.07843137254902,
81.56862745098039,
22.745098039215687
],
[
19.607843137254903,
16.470588235294116,
78.82352941176471,
18.431372549019606
],
[
23.52941176470588,
18.823529411764707,
76.47058823529412,
20.392156862745097
],
[
25.49019607843137,
21.176470588235293,
75.68627450980392,
21.96078431372549
],
[
28.235294117647058,
22.745098039215687,
72.15686274509804,
20
],
[
34.509803921568626,
25.88235294117647,
63.13725490196078,
25.098039215686274
],
[
44.31372549019608,
30.19607843137255,
48.23529411764706,
31.764705882352942
],
[
41.568627450980394,
29.41176470588235,
52.15686274509804,
25.88235294117647
],
[
28.235294117647058,
24.313725490196077,
68.62745098039215,
21.176470588235293
],
[
15.686274509803921,
15.294117647058822,
82.74509803921569,
19.215686274509803
],
[
16.470588235294116,
14.901960784313726,
80.3921568627451,
14.509803921568627
],
[
15.686274509803921,
18.431372549019606,
76.86274509803921,
13.333333333333334
],
[
9.411764705882353,
16.07843137254902,
80.3921568627451,
14.509803921568627
],
[
11.76470588235294,
18.823529411764707,
78.82352941176471,
15.686274509803921
],
[
36.07843137254902,
28.627450980392158,
56.86274509803921,
21.56862745098039
],
[
32.94117647058823,
20.784313725490197,
63.13725490196078,
17.254901960784313
],
[
12.941176470588236,
12.941176470588236,
84.70588235294117,
11.372549019607844
],
[
8.627450980392156,
11.76470588235294,
88.62745098039215,
9.019607843137255
],
[
21.96078431372549,
14.509803921568627,
78.43137254901961,
12.941176470588236
],
[
23.137254901960784,
13.333333333333334,
78.0392156862745,
12.941176470588236
],
[
15.294117647058822,
11.76470588235294,
81.96078431372548,
16.470588235294116
],
[
4.313725490196078,
10.588235294117647,
88.23529411764706,
25.88235294117647
],
[
13.72549019607843,
15.686274509803921,
85.49019607843137,
27.45098039215686
],
[
18.823529411764707,
18.431372549019606,
83.13725490196079,
28.627450980392158
],
[
10.980392156862745,
14.509803921568627,
89.80392156862744,
30.588235294117645
],
[
16.07843137254902,
15.294117647058822,
92.94117647058823,
34.11764705882353
],
[
32.15686274509804,
21.176470588235293,
80.3921568627451,
39.6078431372549
],
[
39.21568627450981,
26.274509803921568,
72.15686274509804,
46.27450980392157
]
],
[
[
39.6078431372549,
31.372549019607842,
71.37254901960785,
50.19607843137255
],
[
45.88235294117647,
30.588235294117645,
56.470588235294116,
40.3921568627451
],
[
40.78431372549019,
31.764705882352942,
58.431372549019606,
40.3921568627451
],
[
25.88235294117647,
21.176470588235293,
76.47058823529412,
31.372549019607842
],
[
23.137254901960784,
18.823529411764707,
86.27450980392156,
27.45098039215686
],
[
29.80392156862745,
21.176470588235293,
77.6470588235294,
27.84313725490196
],
[
30.588235294117645,
22.745098039215687,
75.29411764705883,
32.15686274509804
],
[
36.07843137254902,
24.313725490196077,
71.76470588235294,
32.549019607843135
],
[
43.92156862745098,
27.84313725490196,
55.68627450980392,
35.68627450980392
],
[
45.09803921568627,
27.45098039215686,
54.90196078431372,
32.15686274509804
],
[
39.21568627450981,
21.176470588235293,
65.09803921568627,
21.176470588235293
],
[
23.52941176470588,
14.509803921568627,
77.6470588235294,
16.470588235294116
],
[
14.901960784313726,
12.156862745098039,
83.13725490196079,
15.686274509803921
],
[
19.607843137254903,
17.254901960784313,
80.3921568627451,
19.215686274509803
],
[
20.392156862745097,
17.647058823529413,
79.6078431372549,
19.607843137254903
],
[
25.098039215686274,
18.431372549019606,
76.47058823529412,
18.823529411764707
],
[
40.3921568627451,
30.19607843137255,
53.72549019607843,
30.980392156862745
],
[
41.568627450980394,
29.80392156862745,
52.549019607843135,
29.80392156862745
],
[
29.019607843137255,
21.176470588235293,
70.58823529411765,
19.607843137254903
],
[
14.509803921568627,
13.72549019607843,
84.31372549019608,
15.294117647058822
],
[
18.03921568627451,
17.254901960784313,
80.3921568627451,
18.03921568627451
],
[
20,
18.03921568627451,
77.25490196078431,
16.862745098039216
],
[
11.76470588235294,
14.901960784313726,
80.3921568627451,
15.294117647058822
],
[
9.019607843137255,
15.686274509803921,
80.3921568627451,
14.509803921568627
],
[
16.470588235294116,
20.784313725490197,
74.90196078431373,
14.901960784313726
],
[
20.784313725490197,
21.176470588235293,
71.76470588235294,
13.333333333333334
],
[
4.705882352941177,
12.156862745098039,
81.96078431372548,
9.803921568627452
],
[
7.450980392156863,
11.372549019607844,
83.52941176470588,
12.941176470588236
],
[
26.274509803921568,
14.509803921568627,
76.47058823529412,
15.294117647058822
],
[
25.49019607843137,
14.509803921568627,
75.68627450980392,
12.941176470588236
],
[
15.294117647058822,
12.941176470588236,
79.6078431372549,
12.549019607843137
],
[
18.03921568627451,
14.509803921568627,
77.6470588235294,
11.372549019607844
],
[
10.196078431372548,
11.76470588235294,
84.31372549019608,
19.607843137254903
],
[
15.686274509803921,
16.862745098039216,
84.70588235294117,
28.627450980392158
],
[
18.03921568627451,
18.03921568627451,
83.52941176470588,
27.84313725490196
],
[
12.941176470588236,
15.686274509803921,
87.05882352941177,
29.019607843137255
],
[
19.215686274509803,
17.254901960784313,
89.01960784313725,
35.68627450980392
],
[
36.470588235294116,
23.52941176470588,
78.82352941176471,
42.745098039215684
],
[
43.13725490196078,
28.235294117647058,
69.41176470588235,
47.450980392156865
]
],
[
[
47.450980392156865,
33.333333333333336,
59.2156862745098,
51.372549019607845
],
[
41.568627450980394,
22.352941176470587,
61.17647058823529,
32.549019607843135
],
[
25.098039215686274,
17.254901960784313,
81.56862745098039,
28.627450980392158
],
[
25.88235294117647,
19.607843137254903,
83.52941176470588,
29.80392156862745
],
[
25.88235294117647,
17.254901960784313,
81.17647058823529,
26.666666666666668
],
[
31.372549019607842,
15.294117647058822,
72.54901960784314,
30.980392156862745
],
[
36.07843137254902,
15.686274509803921,
64.70588235294117,
29.019607843137255
],
[
34.509803921568626,
16.07843137254902,
67.84313725490196,
25.88235294117647
],
[
35.68627450980392,
18.431372549019606,
64.31372549019608,
26.666666666666668
],
[
24.705882352941178,
14.117647058823529,
78.43137254901961,
18.823529411764707
],
[
31.764705882352942,
18.431372549019606,
73.72549019607843,
17.647058823529413
],
[
21.56862745098039,
12.549019607843137,
78.82352941176471,
14.509803921568627
],
[
11.372549019607844,
7.450980392156863,
87.84313725490196,
14.117647058823529
],
[
15.294117647058822,
10.588235294117647,
85.49019607843137,
16.470588235294116
],
[
13.72549019607843,
12.156862745098039,
84.31372549019608,
15.294117647058822
],
[
30.19607843137255,
22.352941176470587,
69.41176470588235,
23.137254901960784
],
[
40,
29.80392156862745,
56.86274509803921,
27.45098039215686
],
[
30.588235294117645,
21.96078431372549,
72.15686274509804,
21.96078431372549
],
[
19.215686274509803,
14.117647058823529,
84.31372549019608,
17.254901960784313
],
[
16.470588235294116,
13.72549019607843,
81.17647058823529,
15.686274509803921
],
[
17.254901960784313,
16.470588235294116,
78.82352941176471,
15.686274509803921
],
[
14.901960784313726,
16.07843137254902,
80,
16.470588235294116
],
[
11.372549019607844,
14.117647058823529,
81.96078431372548,
16.470588235294116
],
[
9.019607843137255,
13.72549019607843,
80.7843137254902,
15.294117647058822
],
[
14.509803921568627,
18.431372549019606,
77.25490196078431,
14.901960784313726
],
[
6.2745098039215685,
14.117647058823529,
80.7843137254902,
12.941176470588236
],
[
3.1372549019607843,
11.372549019607844,
81.56862745098039,
11.76470588235294
],
[
18.823529411764707,
13.333333333333334,
78.43137254901961,
12.549019607843137
],
[
29.019607843137255,
14.117647058823529,
75.29411764705883,
13.333333333333334
],
[
30.980392156862745,
14.117647058823529,
71.37254901960785,
13.72549019607843
],
[
29.41176470588235,
15.686274509803921,
72.15686274509804,
15.686274509803921
],
[
14.901960784313726,
14.117647058823529,
78.82352941176471,
10.980392156862745
],
[
13.333333333333334,
12.156862745098039,
81.17647058823529,
14.901960784313726
],
[
14.117647058823529,
14.509803921568627,
85.09803921568627,
25.88235294117647
],
[
12.549019607843137,
14.509803921568627,
85.49019607843137,
25.88235294117647
],
[
12.156862745098039,
14.901960784313726,
87.45098039215686,
29.019607843137255
],
[
16.862745098039216,
15.294117647058822,
89.80392156862744,
34.11764705882353
],
[
41.96078431372549,
25.098039215686274,
72.54901960784314,
45.88235294117647
],
[
48.23529411764706,
32.549019607843135,
66.27450980392157,
53.72549019607843
]
],
[
[
49.01960784313725,
32.15686274509804,
60.3921568627451,
49.01960784313725
],
[
23.92156862745098,
12.156862745098039,
81.96078431372548,
24.313725490196077
],
[
17.254901960784313,
12.549019607843137,
90.19607843137254,
29.019607843137255
],
[
23.92156862745098,
14.901960784313726,
85.49019607843137,
27.84313725490196
],
[
32.549019607843135,
12.941176470588236,
70.98039215686275,
27.84313725490196
],
[
49.80392156862745,
20.392156862745097,
45.490196078431374,
44.31372549019608
],
[
55.68627450980392,
24.705882352941178,
31.764705882352942,
50.588235294117645
],
[
53.72549019607843,
22.352941176470587,
35.68627450980392,
42.745098039215684
],
[
53.72549019607843,
24.705882352941178,
34.11764705882353,
47.450980392156865
],
[
41.96078431372549,
18.03921568627451,
52.94117647058823,
37.254901960784316
],
[
21.176470588235293,
7.8431372549019605,
82.3529411764706,
15.686274509803921
],
[
12.156862745098039,
6.2745098039215685,
85.49019607843137,
9.019607843137255
],
[
12.156862745098039,
7.8431372549019605,
83.52941176470588,
18.823529411764707
],
[
13.333333333333334,
5.098039215686274,
84.70588235294117,
11.76470588235294
],
[
13.333333333333334,
7.8431372549019605,
87.84313725490196,
3.9215686274509802
],
[
13.333333333333334,
11.76470588235294,
87.84313725490196,
6.666666666666667
],
[
14.509803921568627,
11.76470588235294,
87.05882352941177,
10.196078431372548
],
[
18.431372549019606,
13.333333333333334,
82.74509803921569,
15.686274509803921
],
[
17.647058823529413,
12.941176470588236,
81.56862745098039,
18.431372549019606
],
[
14.901960784313726,
12.156862745098039,
82.74509803921569,
16.862745098039216
],
[
12.549019607843137,
13.333333333333334,
81.56862745098039,
15.686274509803921
],
[
12.549019607843137,
15.294117647058822,
80.7843137254902,
15.686274509803921
],
[
9.411764705882353,
14.509803921568627,
80,
14.117647058823529
],
[
7.0588235294117645,
13.333333333333334,
80.3921568627451,
14.117647058823529
],
[
6.2745098039215685,
12.549019607843137,
81.56862745098039,
14.509803921568627
],
[
4.705882352941177,
13.72549019607843,
80.3921568627451,
13.72549019607843
],
[
9.803921568627452,
13.333333333333334,
80.3921568627451,
14.117647058823529
],
[
19.215686274509803,
13.333333333333334,
77.6470588235294,
12.941176470588236
],
[
21.96078431372549,
12.941176470588236,
77.6470588235294,
13.333333333333334
],
[
25.098039215686274,
13.333333333333334,
75.68627450980392,
12.941176470588236
],
[
24.313725490196077,
13.333333333333334,
76.07843137254902,
12.941176470588236
],
[
14.117647058823529,
11.372549019607844,
81.17647058823529,
13.333333333333334
],
[
9.411764705882353,
11.76470588235294,
81.96078431372548,
14.901960784313726
],
[
9.411764705882353,
11.76470588235294,
83.92156862745098,
19.607843137254903
],
[
10.980392156862745,
13.333333333333334,
85.49019607843137,
23.137254901960784
],
[
12.156862745098039,
13.72549019607843,
87.05882352941177,
27.45098039215686
],
[
7.0588235294117645,
11.372549019607844,
91.37254901960785,
30.19607843137255
],
[
23.52941176470588,
16.470588235294116,
83.52941176470588,
34.90196078431372
],
[
39.21568627450981,
29.80392156862745,
74.90196078431373,
49.80392156862745
]
],
[
[
39.21568627450981,
24.313725490196077,
72.15686274509804,
43.529411764705884
],
[
13.72549019607843,
8.627450980392156,
93.33333333333333,
29.80392156862745
],
[
11.76470588235294,
11.372549019607844,
92.94117647058823,
32.94117647058823
],
[
9.803921568627452,
6.2745098039215685,
94.50980392156863,
25.88235294117647
],
[
40,
17.254901960784313,
65.09803921568627,
32.15686274509804
],
[
65.09803921568627,
30.980392156862745,
21.96078431372549,
57.254901960784316
],
[
60.3921568627451,
32.94117647058823,
25.49019607843137,
60.3921568627451
],
[
57.254901960784316,
28.627450980392158,
33.333333333333336,
53.333333333333336
],
[
53.72549019607843,
25.098039215686274,
41.1764705882353,
50.19607843137255
],
[
57.64705882352941,
26.274509803921568,
30.588235294117645,
52.94117647058823
],
[
54.11764705882353,
36.470588235294116,
33.72549019607843,
61.96078431372549
],
[
66.66666666666667,
61.96078431372549,
43.92156862745098,
81.96078431372548
],
[
76.47058823529412,
68.62745098039215,
37.64705882352941,
91.37254901960785
],
[
65.88235294117646,
52.15686274509804,
30.588235294117645,
80.3921568627451
],
[
51.372549019607845,
37.64705882352941,
40.78431372549019,
59.6078431372549
],
[
33.333333333333336,
23.52941176470588,
61.96078431372549,
39.6078431372549
],
[
20,
12.549019607843137,
79.2156862745098,
25.49019607843137
],
[
4.313725490196078,
0.7843137254901961,
95.29411764705883,
7.450980392156863
],
[
0,
0,
100,
5.490196078431373
],
[
3.1372549019607843,
5.490196078431373,
92.94117647058823,
16.470588235294116
],
[
10.196078431372548,
10.980392156862745,
85.49019607843137,
20.392156862745097
],
[
8.235294117647058,
10.980392156862745,
83.52941176470588,
18.431372549019606
],
[
4.313725490196078,
11.372549019607844,
81.17647058823529,
14.509803921568627
],
[
4.705882352941177,
10.980392156862745,
81.96078431372548,
15.294117647058822
],
[
4.313725490196078,
9.803921568627452,
83.92156862745098,
17.254901960784313
],
[
5.88235294117647,
12.549019607843137,
82.3529411764706,
15.686274509803921
],
[
9.019607843137255,
10.980392156862745,
82.74509803921569,
15.686274509803921
],
[
11.372549019607844,
8.235294117647058,
84.70588235294117,
16.862745098039216
],
[
21.96078431372549,
10.588235294117647,
81.56862745098039,
17.647058823529413
],
[
27.45098039215686,
11.76470588235294,
78.0392156862745,
15.686274509803921
],
[
13.72549019607843,
8.235294117647058,
83.13725490196079,
13.72549019607843
],
[
9.803921568627452,
9.803921568627452,
83.13725490196079,
16.07843137254902
],
[
5.490196078431373,
9.019607843137255,
84.31372549019608,
17.647058823529413
],
[
3.9215686274509802,
7.8431372549019605,
88.23529411764706,
23.92156862745098
],
[
14.117647058823529,
12.549019607843137,
86.66666666666667,
25.88235294117647
],
[
13.72549019607843,
9.803921568627452,
88.23529411764706,
25.88235294117647
],
[
7.8431372549019605,
8.235294117647058,
91.37254901960785,
31.372549019607842
],
[
9.019607843137255,
11.372549019607844,
93.72549019607843,
32.94117647058823
],
[
19.607843137254903,
21.96078431372549,
91.37254901960785,
45.490196078431374
]
],
[
[
32.94117647058823,
21.96078431372549,
74.90196078431373,
41.568627450980394
],
[
9.411764705882353,
6.2745098039215685,
97.6470588235294,
29.019607843137255
],
[
16.07843137254902,
10.980392156862745,
90.58823529411765,
34.509803921568626
],
[
5.098039215686274,
5.098039215686274,
95.68627450980392,
28.627450980392158
],
[
29.019607843137255,
15.686274509803921,
76.47058823529412,
27.45098039215686
],
[
51.372549019607845,
25.49019607843137,
51.76470588235294,
40
],
[
51.76470588235294,
21.176470588235293,
48.627450980392155,
44.705882352941174
],
[
52.15686274509804,
20.784313725490197,
47.84313725490196,
40.3921568627451
],
[
50.19607843137255,
18.823529411764707,
52.549019607843135,
36.86274509803921
],
[
50.19607843137255,
20.784313725490197,
45.09803921568627,
41.96078431372549
],
[
72.15686274509804,
57.64705882352941,
13.333333333333334,
88.23529411764706
],
[
90.58823529411765,
84.31372549019608,
14.901960784313726,
100
],
[
84.70588235294117,
76.86274509803921,
23.92156862745098,
100
],
[
84.31372549019608,
75.29411764705883,
20.784313725490197,
100
],
[
84.70588235294117,
72.94117647058823,
15.294117647058822,
100
],
[
80.7843137254902,
65.49019607843137,
13.333333333333334,
100
],
[
76.47058823529412,
58.8235294117647,
16.470588235294116,
97.6470588235294
],
[
55.294117647058826,
35.294117647058826,
36.07843137254902,
68.62745098039215
],
[
26.274509803921568,
19.215686274509803,
64.31372549019608,
40.78431372549019
],
[
7.0588235294117645,
6.2745098039215685,
82.74509803921569,
19.607843137254903
],
[
0,
4.313725490196078,
96.47058823529412,
11.372549019607844
],
[
0,
7.450980392156863,
94.90196078431373,
11.76470588235294
],
[
0,
5.88235294117647,
94.90196078431373,
6.2745098039215685
],
[
0,
7.0588235294117645,
94.50980392156863,
6.2745098039215685
],
[
0,
9.019607843137255,
93.33333333333333,
10.588235294117647
],
[
0,
10.980392156862745,
91.37254901960785,
11.372549019607844
],
[
0,
10.588235294117647,
91.37254901960785,
8.235294117647058
],
[
1.1764705882352942,
8.235294117647058,
91.37254901960785,
11.372549019607844
],
[
6.666666666666667,
7.8431372549019605,
91.37254901960785,
14.901960784313726
],
[
16.470588235294116,
7.8431372549019605,
85.88235294117646,
17.647058823529413
],
[
12.549019607843137,
6.2745098039215685,
83.52941176470588,
15.294117647058822
],
[
6.666666666666667,
7.8431372549019605,
86.27450980392156,
20.784313725490197
],
[
6.2745098039215685,
9.803921568627452,
87.05882352941177,
23.52941176470588
],
[
9.019607843137255,
10.196078431372548,
87.45098039215686,
25.49019607843137
],
[
13.72549019607843,
10.980392156862745,
89.01960784313725,
29.80392156862745
],
[
11.76470588235294,
8.627450980392156,
89.41176470588235,
28.235294117647058
],
[
13.333333333333334,
9.411764705882353,
90.58823529411765,
31.372549019607842
],
[
14.117647058823529,
12.549019607843137,
92.15686274509804,
35.68627450980392
],
[
20.784313725490197,
19.607843137254903,
88.62745098039215,
42.35294117647059
]
],
[
[
38.431372549019606,
21.56862745098039,
71.37254901960785,
42.745098039215684
],
[
7.8431372549019605,
5.490196078431373,
93.72549019607843,
24.313725490196077
],
[
15.686274509803921,
9.803921568627452,
86.27450980392156,
23.92156862745098
],
[
5.490196078431373,
5.490196078431373,
90.19607843137254,
24.705882352941178
],
[
4.313725490196078,
4.705882352941177,
90.19607843137254,
21.56862745098039
],
[
24.313725490196077,
12.549019607843137,
84.70588235294117,
18.823529411764707
],
[
34.11764705882353,
13.333333333333334,
74.50980392156863,
21.176470588235293
],
[
35.68627450980392,
14.117647058823529,
71.37254901960785,
23.52941176470588
],
[
40.78431372549019,
20.784313725490197,
66.66666666666667,
28.627450980392158
],
[
36.07843137254902,
16.07843137254902,
69.41176470588235,
23.52941176470588
],
[
47.84313725490196,
23.92156862745098,
52.15686274509804,
40.3921568627451
],
[
55.294117647058826,
30.19607843137255,
33.72549019607843,
58.8235294117647
],
[
61.96078431372549,
39.21568627450981,
20.392156862745097,
75.68627450980392
],
[
71.76470588235294,
56.07843137254902,
15.294117647058822,
95.29411764705883
],
[
75.68627450980392,
62.745098039215684,
20.392156862745097,
98.43137254901961
],
[
75.29411764705883,
62.745098039215684,
23.52941176470588,
98.82352941176471
],
[
77.6470588235294,
64.70588235294117,
14.509803921568627,
99.6078431372549
],
[
83.13725490196079,
63.529411764705884,
4.313725490196078,
100
],
[
81.56862745098039,
57.254901960784316,
5.490196078431373,
97.6470588235294
],
[
74.50980392156863,
52.549019607843135,
14.117647058823529,
91.76470588235294
],
[
41.568627450980394,
23.137254901960784,
45.88235294117647,
45.09803921568627
],
[
14.509803921568627,
16.07843137254902,
69.41176470588235,
17.254901960784313
],
[
27.058823529411764,
25.098039215686274,
50.98039215686274,
35.294117647058826
],
[
27.84313725490196,
21.96078431372549,
51.76470588235294,
36.07843137254902
],
[
28.627450980392158,
14.509803921568627,
60.3921568627451,
23.137254901960784
],
[
43.13725490196078,
21.176470588235293,
33.72549019607843,
39.6078431372549
],
[
43.529411764705884,
21.96078431372549,
30.980392156862745,
42.35294117647059
],
[
40,
16.862745098039216,
49.01960784313725,
28.235294117647058
],
[
32.15686274509804,
15.294117647058822,
59.2156862745098,
21.56862745098039
],
[
10.980392156862745,
11.372549019607844,
82.74509803921569,
12.549019607843137
],
[
8.235294117647058,
9.019607843137255,
85.88235294117646,
14.509803921568627
],
[
10.980392156862745,
7.450980392156863,
84.31372549019608,
16.862745098039216
],
[
15.686274509803921,
18.431372549019606,
90.58823529411765,
40.78431372549019
],
[
18.823529411764707,
18.823529411764707,
87.84313725490196,
36.07843137254902
],
[
10.980392156862745,
9.019607843137255,
86.66666666666667,
22.352941176470587
],
[
7.8431372549019605,
10.588235294117647,
88.62745098039215,
28.235294117647058
],
[
12.156862745098039,
12.549019607843137,
89.41176470588235,
32.15686274509804
],
[
14.117647058823529,
11.76470588235294,
90.19607843137254,
30.588235294117645
],
[
21.56862745098039,
17.647058823529413,
86.27450980392156,
33.72549019607843
]
],
[
[
35.294117647058826,
16.07843137254902,
74.90196078431373,
39.6078431372549
],
[
6.2745098039215685,
5.490196078431373,
91.37254901960785,
23.137254901960784
],
[
7.8431372549019605,
5.098039215686274,
88.23529411764706,
19.607843137254903
],
[
4.705882352941177,
5.098039215686274,
87.45098039215686,
20
],
[
0,
3.5294117647058822,
90.19607843137254,
21.96078431372549
],
[
3.5294117647058822,
5.88235294117647,
89.41176470588235,
21.56862745098039
],
[
9.803921568627452,
7.8431372549019605,
86.66666666666667,
14.901960784313726
],
[
11.76470588235294,
9.411764705882353,
85.88235294117646,
15.686274509803921
],
[
12.156862745098039,
9.411764705882353,
90.58823529411765,
15.294117647058822
],
[
17.254901960784313,
14.117647058823529,
85.09803921568627,
21.96078431372549
],
[
41.568627450980394,
25.49019607843137,
53.333333333333336,
38.431372549019606
],
[
57.64705882352941,
38.03921568627451,
36.86274509803921,
60.78431372549019
],
[
63.13725490196078,
41.96078431372549,
23.137254901960784,
75.68627450980392
],
[
64.31372549019608,
35.294117647058826,
12.941176470588236,
74.90196078431373
],
[
68.62745098039215,
45.490196078431374,
9.411764705882353,
87.45098039215686
],
[
70.98039215686275,
51.372549019607845,
12.549019607843137,
93.33333333333333
],
[
71.76470588235294,
51.372549019607845,
12.156862745098039,
92.15686274509804
],
[
68.62745098039215,
46.666666666666664,
17.254901960784313,
84.70588235294117
],
[
66.27450980392157,
41.96078431372549,
24.313725490196077,
75.29411764705883
],
[
69.80392156862744,
40,
21.96078431372549,
70.58823529411765
],
[
72.94117647058823,
29.41176470588235,
9.411764705882353,
73.72549019607843
],
[
69.80392156862744,
25.098039215686274,
2.3529411764705883,
72.15686274509804
],
[
70.58823529411765,
33.333333333333336,
0,
70.58823529411765
],
[
68.62745098039215,
25.49019607843137,
0.7843137254901961,
59.6078431372549
],
[
70.98039215686275,
19.215686274509803,
0.7843137254901961,
57.254901960784316
],
[
70.98039215686275,
18.03921568627451,
1.9607843137254901,
55.68627450980392
],
[
69.01960784313725,
19.607843137254903,
0.7843137254901961,
56.470588235294116
],
[
67.05882352941177,
15.686274509803921,
11.372549019607844,
46.666666666666664
],
[
65.49019607843137,
13.333333333333334,
27.45098039215686,
31.764705882352942
],
[
48.23529411764706,
13.333333333333334,
51.372549019607845,
20.784313725490197
],
[
11.76470588235294,
11.372549019607844,
81.96078431372548,
11.372549019607844
],
[
3.9215686274509802,
9.803921568627452,
83.92156862745098,
13.72549019607843
],
[
13.72549019607843,
14.509803921568627,
84.70588235294117,
25.098039215686274
],
[
14.509803921568627,
13.72549019607843,
85.88235294117646,
26.666666666666668
],
[
7.0588235294117645,
8.627450980392156,
87.05882352941177,
22.745098039215687
],
[
5.098039215686274,
8.627450980392156,
89.41176470588235,
27.058823529411764
],
[
7.0588235294117645,
9.019607843137255,
89.80392156862744,
25.88235294117647
],
[
18.823529411764707,
10.588235294117647,
84.70588235294117,
25.49019607843137
],
[
32.94117647058823,
18.03921568627451,
81.17647058823529,
33.333333333333336
]
],
[
[
10.196078431372548,
7.8431372549019605,
93.33333333333333,
30.588235294117645
],
[
7.450980392156863,
5.88235294117647,
88.62745098039215,
21.96078431372549
],
[
9.019607843137255,
8.627450980392156,
87.45098039215686,
23.52941176470588
],
[
8.627450980392156,
7.450980392156863,
86.27450980392156,
20
],
[
10.588235294117647,
7.450980392156863,
86.66666666666667,
20.784313725490197
],
[
12.941176470588236,
8.627450980392156,
85.88235294117646,
20
],
[
10.196078431372548,
8.627450980392156,
84.70588235294117,
17.647058823529413
],
[
1.9607843137254901,
6.666666666666667,
88.23529411764706,
12.941176470588236
],
[
3.5294117647058822,
5.88235294117647,
86.66666666666667,
14.117647058823529
],
[
52.94117647058823,
27.84313725490196,
27.84313725490196,
58.8235294117647
],
[
71.37254901960785,
43.92156862745098,
3.9215686274509802,
83.92156862745098
],
[
72.54901960784314,
60,
14.117647058823529,
98.43137254901961
],
[
73.72549019607843,
64.31372549019608,
18.431372549019606,
100
],
[
63.92156862745098,
36.86274509803921,
16.470588235294116,
74.50980392156863
],
[
61.17647058823529,
25.49019607843137,
16.470588235294116,
63.13725490196078
],
[
65.88235294117646,
36.470588235294116,
5.490196078431373,
78.43137254901961
],
[
67.84313725490196,
43.13725490196078,
8.627450980392156,
83.92156862745098
],
[
69.01960784313725,
45.88235294117647,
12.941176470588236,
85.09803921568627
],
[
66.66666666666667,
42.745098039215684,
15.294117647058822,
78.82352941176471
],
[
61.96078431372549,
27.45098039215686,
10.588235294117647,
63.92156862745098
],
[
59.6078431372549,
16.07843137254902,
21.56862745098039,
45.88235294117647
],
[
60.3921568627451,
13.72549019607843,
31.764705882352942,
44.705882352941174
],
[
60.3921568627451,
14.509803921568627,
23.92156862745098,
41.568627450980394
],
[
54.11764705882353,
15.686274509803921,
31.764705882352942,
28.235294117647058
],
[
54.90196078431372,
16.862745098039216,
27.84313725490196,
34.11764705882353
],
[
60,
16.470588235294116,
16.07843137254902,
41.1764705882353
],
[
55.294117647058826,
14.509803921568627,
34.509803921568626,
26.666666666666668
],
[
52.94117647058823,
13.72549019607843,
39.6078431372549,
21.96078431372549
],
[
48.627450980392155,
12.156862745098039,
49.80392156862745,
18.431372549019606
],
[
52.549019607843135,
10.588235294117647,
55.68627450980392,
18.823529411764707
],
[
27.058823529411764,
13.72549019607843,
70.58823529411765,
10.980392156862745
],
[
4.313725490196078,
15.686274509803921,
79.6078431372549,
8.627450980392156
],
[
7.8431372549019605,
13.72549019607843,
76.86274509803921,
7.8431372549019605
],
[
6.2745098039215685,
10.196078431372548,
82.3529411764706,
14.901960784313726
],
[
7.0588235294117645,
11.76470588235294,
83.92156862745098,
20
],
[
7.8431372549019605,
10.980392156862745,
85.49019607843137,
21.56862745098039
],
[
7.8431372549019605,
10.196078431372548,
90.19607843137254,
23.137254901960784
],
[
27.45098039215686,
12.941176470588236,
78.82352941176471,
27.45098039215686
],
[
51.372549019607845,
17.647058823529413,
61.568627450980394,
36.86274509803921
]
],
[
[
7.0588235294117645,
6.2745098039215685,
90.58823529411765,
27.058823529411764
],
[
2.7450980392156863,
5.098039215686274,
86.27450980392156,
17.647058823529413
],
[
7.8431372549019605,
7.8431372549019605,
85.49019607843137,
18.03921568627451
],
[
12.156862745098039,
7.450980392156863,
85.88235294117646,
18.823529411764707
],
[
14.901960784313726,
8.627450980392156,
83.92156862745098,
17.647058823529413
],
[
17.254901960784313,
11.76470588235294,
81.17647058823529,
16.07843137254902
],
[
14.901960784313726,
9.803921568627452,
82.74509803921569,
16.470588235294116
],
[
8.235294117647058,
7.0588235294117645,
90.98039215686275,
13.72549019607843
],
[
25.49019607843137,
12.549019607843137,
74.11764705882352,
21.56862745098039
],
[
70.98039215686275,
26.274509803921568,
12.156862745098039,
62.35294117647059
],
[
65.49019607843137,
34.11764705882353,
14.509803921568627,
71.37254901960785
],
[
66.66666666666667,
47.450980392156865,
12.941176470588236,
85.49019607843137
],
[
74.90196078431373,
56.86274509803921,
3.5294117647058822,
100
],
[
65.49019607843137,
34.90196078431372,
12.941176470588236,
72.94117647058823
],
[
56.07843137254902,
18.431372549019606,
34.11764705882353,
41.96078431372549
],
[
53.72549019607843,
18.431372549019606,
38.03921568627451,
38.431372549019606
],
[
57.254901960784316,
21.96078431372549,
27.058823529411764,
46.666666666666664
],
[
65.09803921568627,
29.019607843137255,
20,
62.745098039215684
],
[
59.2156862745098,
21.176470588235293,
23.92156862745098,
50.19607843137255
],
[
59.6078431372549,
18.823529411764707,
28.627450980392158,
49.01960784313725
],
[
63.92156862745098,
22.745098039215687,
16.07843137254902,
62.745098039215684
],
[
51.76470588235294,
14.509803921568627,
39.6078431372549,
30.588235294117645
],
[
36.07843137254902,
13.333333333333334,
66.66666666666667,
7.450980392156863
],
[
41.96078431372549,
15.686274509803921,
60,
14.117647058823529
],
[
35.68627450980392,
14.901960784313726,
68.62745098039215,
9.019607843137255
],
[
34.90196078431372,
16.07843137254902,
66.66666666666667,
10.980392156862745
],
[
36.07843137254902,
16.862745098039216,
61.96078431372549,
13.72549019607843
],
[
34.90196078431372,
16.470588235294116,
67.84313725490196,
10.588235294117647
],
[
31.764705882352942,
16.07843137254902,
70.98039215686275,
9.411764705882353
],
[
20.784313725490197,
16.07843137254902,
79.2156862745098,
6.2745098039215685
],
[
14.901960784313726,
15.686274509803921,
76.07843137254902,
7.8431372549019605
],
[
10.588235294117647,
16.862745098039216,
74.90196078431373,
7.8431372549019605
],
[
9.411764705882353,
14.509803921568627,
77.25490196078431,
9.411764705882353
],
[
8.627450980392156,
11.76470588235294,
81.17647058823529,
14.117647058823529
],
[
12.156862745098039,
12.549019607843137,
81.96078431372548,
16.470588235294116
],
[
12.549019607843137,
11.372549019607844,
82.74509803921569,
17.254901960784313
],
[
16.862745098039216,
12.941176470588236,
87.05882352941177,
23.92156862745098
],
[
27.45098039215686,
13.72549019607843,
81.17647058823529,
28.627450980392158
],
[
47.05882352941176,
16.470588235294116,
65.49019607843137,
32.94117647058823
]
],
[
[
10.196078431372548,
7.8431372549019605,
87.05882352941177,
22.352941176470587
],
[
7.0588235294117645,
6.666666666666667,
85.09803921568627,
17.254901960784313
],
[
12.156862745098039,
6.666666666666667,
85.49019607843137,
18.431372549019606
],
[
12.941176470588236,
9.019607843137255,
84.70588235294117,
18.431372549019606
],
[
10.588235294117647,
9.411764705882353,
83.52941176470588,
16.862745098039216
],
[
9.803921568627452,
9.019607843137255,
82.74509803921569,
15.294117647058822
],
[
10.980392156862745,
8.627450980392156,
83.52941176470588,
15.294117647058822
],
[
16.07843137254902,
10.196078431372548,
83.13725490196079,
15.686274509803921
],
[
22.745098039215687,
13.333333333333334,
83.52941176470588,
17.254901960784313
],
[
39.21568627450981,
12.549019607843137,
68.62745098039215,
23.92156862745098
],
[
61.568627450980394,
21.56862745098039,
24.313725490196077,
53.333333333333336
],
[
70.98039215686275,
39.21568627450981,
0,
83.13725490196079
],
[
55.294117647058826,
22.745098039215687,
32.549019607843135,
45.09803921568627
],
[
48.23529411764706,
14.117647058823529,
52.549019607843135,
22.745098039215687
],
[
43.92156862745098,
17.254901960784313,
58.03921568627451,
23.52941176470588
],
[
41.1764705882353,
14.509803921568627,
63.13725490196078,
18.03921568627451
],
[
45.88235294117647,
17.254901960784313,
52.94117647058823,
21.96078431372549
],
[
48.23529411764706,
16.07843137254902,
49.80392156862745,
24.313725490196077
],
[
46.27450980392157,
16.862745098039216,
53.333333333333336,
25.49019607843137
],
[
42.745098039215684,
13.72549019607843,
61.96078431372549,
16.07843137254902
],
[
37.64705882352941,
12.549019607843137,
68.23529411764706,
15.294117647058822
],
[
32.15686274509804,
12.941176470588236,
67.84313725490196,
20.392156862745097
],
[
15.686274509803921,
12.941176470588236,
82.74509803921569,
7.0588235294117645
],
[
17.647058823529413,
14.509803921568627,
78.82352941176471,
7.0588235294117645
],
[
14.117647058823529,
14.901960784313726,
78.43137254901961,
7.8431372549019605
],
[
10.588235294117647,
14.509803921568627,
81.17647058823529,
7.450980392156863
],
[
10.980392156862745,
14.509803921568627,
82.3529411764706,
7.8431372549019605
],
[
12.941176470588236,
14.901960784313726,
80.3921568627451,
7.8431372549019605
],
[
12.549019607843137,
16.07843137254902,
78.0392156862745,
7.450980392156863
],
[
10.196078431372548,
17.254901960784313,
76.07843137254902,
7.450980392156863
],
[
10.980392156862745,
17.647058823529413,
74.50980392156863,
6.666666666666667
],
[
12.549019607843137,
17.647058823529413,
74.11764705882352,
6.666666666666667
],
[
12.156862745098039,
14.509803921568627,
76.86274509803921,
9.019607843137255
],
[
16.862745098039216,
12.941176470588236,
79.2156862745098,
12.156862745098039
],
[
14.509803921568627,
11.76470588235294,
81.56862745098039,
14.901960784313726
],
[
18.03921568627451,
10.588235294117647,
81.96078431372548,
17.254901960784313
],
[
22.352941176470587,
12.156862745098039,
81.56862745098039,
19.215686274509803
],
[
22.352941176470587,
12.156862745098039,
83.13725490196079,
21.56862745098039
],
[
29.41176470588235,
12.156862745098039,
81.96078431372548,
24.705882352941178
]
],
[
[
10.588235294117647,
6.2745098039215685,
88.23529411764706,
22.745098039215687
],
[
10.196078431372548,
6.666666666666667,
86.27450980392156,
19.215686274509803
],
[
12.941176470588236,
7.450980392156863,
85.88235294117646,
20
],
[
12.549019607843137,
9.803921568627452,
83.52941176470588,
17.647058823529413
],
[
10.588235294117647,
9.803921568627452,
82.3529411764706,
14.901960784313726
],
[
12.156862745098039,
9.019607843137255,
83.52941176470588,
16.862745098039216
],
[
14.901960784313726,
10.196078431372548,
83.52941176470588,
16.862745098039216
],
[
18.03921568627451,
10.980392156862745,
80.3921568627451,
14.509803921568627
],
[
14.117647058823529,
9.803921568627452,
82.74509803921569,
14.901960784313726
],
[
10.980392156862745,
7.450980392156863,
94.90196078431373,
7.0588235294117645
],
[
42.35294117647059,
13.333333333333334,
60,
23.92156862745098
],
[
58.8235294117647,
15.294117647058822,
34.11764705882353,
37.254901960784316
],
[
32.94117647058823,
7.450980392156863,
78.82352941176471,
7.0588235294117645
],
[
34.509803921568626,
12.156862745098039,
76.47058823529412,
12.549019607843137
],
[
36.07843137254902,
15.686274509803921,
69.80392156862744,
15.686274509803921
],
[
33.333333333333336,
17.254901960784313,
69.01960784313725,
18.03921568627451
],
[
40.3921568627451,
18.823529411764707,
64.70588235294117,
20
],
[
39.21568627450981,
20.784313725490197,
64.31372549019608,
20.392156862745097
],
[
30.980392156862745,
16.862745098039216,
73.72549019607843,
13.72549019607843
],
[
24.705882352941178,
14.117647058823529,
78.0392156862745,
8.235294117647058
],
[
22.352941176470587,
14.117647058823529,
79.2156862745098,
8.235294117647058
],
[
21.56862745098039,
13.333333333333334,
81.17647058823529,
9.019607843137255
],
[
18.03921568627451,
13.72549019607843,
78.0392156862745,
10.980392156862745
],
[
12.156862745098039,
14.117647058823529,
79.2156862745098,
9.019607843137255
],
[
11.372549019607844,
16.07843137254902,
77.25490196078431,
7.8431372549019605
],
[
9.019607843137255,
16.470588235294116,
75.68627450980392,
7.8431372549019605
],
[
8.235294117647058,
16.07843137254902,
75.68627450980392,
8.235294117647058
],
[
8.627450980392156,
15.686274509803921,
75.68627450980392,
8.235294117647058
],
[
8.627450980392156,
15.686274509803921,
76.47058823529412,
8.627450980392156
],
[
10.980392156862745,
17.254901960784313,
75.29411764705883,
7.450980392156863
],
[
11.372549019607844,
18.03921568627451,
74.11764705882352,
6.666666666666667
],
[
10.980392156862745,
18.431372549019606,
73.72549019607843,
5.88235294117647
],
[
7.0588235294117645,
15.294117647058822,
76.86274509803921,
9.411764705882353
],
[
14.509803921568627,
11.372549019607844,
79.6078431372549,
14.117647058823529
],
[
24.705882352941178,
13.333333333333334,
76.86274509803921,
13.72549019607843
],
[
16.862745098039216,
13.333333333333334,
80.3921568627451,
13.72549019607843
],
[
16.470588235294116,
10.196078431372548,
82.74509803921569,
16.470588235294116
],
[
17.254901960784313,
9.411764705882353,
84.70588235294117,
20.784313725490197
],
[
22.745098039215687,
10.980392156862745,
84.31372549019608,
25.098039215686274
]
],
[
[
8.627450980392156,
5.88235294117647,
88.23529411764706,
21.56862745098039
],
[
9.411764705882353,
7.450980392156863,
83.52941176470588,
15.294117647058822
],
[
8.627450980392156,
9.019607843137255,
83.52941176470588,
16.470588235294116
],
[
7.450980392156863,
10.588235294117647,
80,
12.156862745098039
],
[
11.372549019607844,
9.803921568627452,
81.56862745098039,
13.72549019607843
],
[
10.980392156862745,
10.196078431372548,
82.74509803921569,
16.07843137254902
],
[
11.372549019607844,
10.980392156862745,
81.17647058823529,
14.509803921568627
],
[
10.980392156862745,
11.372549019607844,
80.3921568627451,
12.549019607843137
],
[
14.509803921568627,
10.980392156862745,
80.3921568627451,
12.156862745098039
],
[
21.56862745098039,
11.372549019607844,
79.6078431372549,
14.117647058823529
],
[
27.84313725490196,
11.372549019607844,
78.43137254901961,
12.549019607843137
],
[
29.41176470588235,
10.588235294117647,
78.43137254901961,
8.627450980392156
],
[
21.56862745098039,
11.76470588235294,
79.6078431372549,
9.803921568627452
],
[
16.470588235294116,
10.588235294117647,
80.7843137254902,
10.196078431372548
],
[
24.313725490196077,
12.941176470588236,
76.07843137254902,
11.76470588235294
],
[
28.627450980392158,
14.901960784313726,
73.33333333333333,
12.941176470588236
],
[
26.274509803921568,
13.72549019607843,
74.90196078431373,
12.156862745098039
],
[
19.215686274509803,
12.941176470588236,
78.0392156862745,
9.803921568627452
],
[
12.941176470588236,
14.117647058823529,
78.43137254901961,
8.627450980392156
],
[
11.76470588235294,
16.470588235294116,
75.68627450980392,
8.235294117647058
],
[
11.372549019607844,
16.470588235294116,
75.68627450980392,
8.235294117647058
],
[
9.803921568627452,
16.07843137254902,
76.07843137254902,
9.019607843137255
],
[
10.196078431372548,
16.862745098039216,
75.68627450980392,
8.235294117647058
],
[
12.549019607843137,
17.647058823529413,
74.90196078431373,
7.0588235294117645
],
[
12.549019607843137,
18.431372549019606,
74.11764705882352,
6.2745098039215685
],
[
10.980392156862745,
19.215686274509803,
73.33333333333333,
5.88235294117647
],
[
10.196078431372548,
18.431372549019606,
74.11764705882352,
6.666666666666667
],
[
10.588235294117647,
17.647058823529413,
74.50980392156863,
7.450980392156863
],
[
11.372549019607844,
18.03921568627451,
73.72549019607843,
6.2745098039215685
],
[
11.76470588235294,
20,
72.94117647058823,
5.098039215686274
],
[
11.76470588235294,
19.215686274509803,
73.33333333333333,
5.490196078431373
],
[
10.980392156862745,
18.823529411764707,
73.33333333333333,
6.2745098039215685
],
[
9.803921568627452,
18.823529411764707,
73.72549019607843,
5.88235294117647
],
[
13.72549019607843,
16.470588235294116,
75.68627450980392,
7.8431372549019605
],
[
27.45098039215686,
14.509803921568627,
72.94117647058823,
11.372549019607844
],
[
16.470588235294116,
16.862745098039216,
74.90196078431373,
8.235294117647058
],
[
14.509803921568627,
13.72549019607843,
79.2156862745098,
10.588235294117647
],
[
14.509803921568627,
9.803921568627452,
83.52941176470588,
18.431372549019606
],
[
19.607843137254903,
10.980392156862745,
83.13725490196079,
19.607843137254903
]
],
[
[
9.803921568627452,
6.666666666666667,
85.49019607843137,
17.647058823529413
],
[
10.196078431372548,
10.196078431372548,
80.3921568627451,
12.156862745098039
],
[
9.411764705882353,
10.588235294117647,
80,
12.156862745098039
],
[
10.196078431372548,
10.588235294117647,
80.7843137254902,
12.941176470588236
],
[
12.549019607843137,
10.196078431372548,
80.7843137254902,
13.333333333333334
],
[
10.196078431372548,
11.372549019607844,
79.6078431372549,
11.372549019607844
],
[
11.372549019607844,
12.156862745098039,
78.82352941176471,
10.588235294117647
],
[
19.607843137254903,
11.76470588235294,
79.2156862745098,
12.156862745098039
],
[
24.705882352941178,
11.372549019607844,
77.6470588235294,
10.588235294117647
],
[
21.56862745098039,
11.76470588235294,
77.25490196078431,
9.803921568627452
],
[
15.294117647058822,
12.156862745098039,
79.6078431372549,
10.588235294117647
],
[
11.372549019607844,
12.549019607843137,
80.3921568627451,
8.627450980392156
],
[
14.901960784313726,
13.72549019607843,
77.6470588235294,
9.019607843137255
],
[
16.862745098039216,
12.156862745098039,
79.2156862745098,
9.803921568627452
],
[
23.52941176470588,
11.76470588235294,
76.47058823529412,
9.803921568627452
],
[
26.666666666666668,
11.76470588235294,
74.50980392156863,
9.019607843137255
],
[
11.76470588235294,
14.117647058823529,
77.6470588235294,
6.666666666666667
],
[
10.980392156862745,
14.509803921568627,
78.43137254901961,
7.450980392156863
],
[
11.372549019607844,
15.686274509803921,
76.47058823529412,
7.450980392156863
],
[
9.019607843137255,
17.254901960784313,
74.50980392156863,
7.0588235294117645
],
[
9.411764705882353,
18.431372549019606,
73.72549019607843,
5.88235294117647
],
[
9.803921568627452,
18.03921568627451,
73.72549019607843,
6.2745098039215685
],
[
9.019607843137255,
18.431372549019606,
73.33333333333333,
6.2745098039215685
],
[
13.72549019607843,
18.431372549019606,
73.72549019607843,
5.88235294117647
],
[
14.509803921568627,
18.823529411764707,
73.33333333333333,
5.490196078431373
],
[
10.588235294117647,
20,
71.76470588235294,
3.9215686274509802
],
[
10.980392156862745,
18.823529411764707,
72.94117647058823,
5.490196078431373
],
[
11.372549019607844,
19.215686274509803,
73.33333333333333,
5.88235294117647
],
[
12.156862745098039,
20,
71.76470588235294,
3.9215686274509802
],
[
13.72549019607843,
19.607843137254903,
72.94117647058823,
4.705882352941177
],
[
13.333333333333334,
19.607843137254903,
73.33333333333333,
4.705882352941177
],
[
12.156862745098039,
20.392156862745097,
72.15686274509804,
4.313725490196078
],
[
11.76470588235294,
20.392156862745097,
72.54901960784314,
4.313725490196078
],
[
13.72549019607843,
18.431372549019606,
74.11764705882352,
5.490196078431373
],
[
18.823529411764707,
17.254901960784313,
74.90196078431373,
7.0588235294117645
],
[
19.215686274509803,
17.254901960784313,
74.50980392156863,
7.0588235294117645
],
[
15.686274509803921,
18.03921568627451,
74.50980392156863,
6.666666666666667
],
[
17.254901960784313,
15.294117647058822,
76.86274509803921,
9.803921568627452
],
[
18.431372549019606,
9.019607843137255,
81.17647058823529,
13.333333333333334
]
],
[
[
7.8431372549019605,
8.627450980392156,
86.27450980392156,
21.96078431372549
],
[
6.666666666666667,
7.8431372549019605,
82.3529411764706,
13.72549019607843
],
[
9.019607843137255,
9.411764705882353,
81.96078431372548,
14.117647058823529
],
[
7.450980392156863,
9.019607843137255,
82.3529411764706,
14.901960784313726
],
[
8.235294117647058,
9.803921568627452,
81.96078431372548,
14.901960784313726
],
[
8.235294117647058,
10.196078431372548,
81.56862745098039,
14.509803921568627
],
[
12.941176470588236,
9.803921568627452,
82.3529411764706,
15.294117647058822
],
[
18.03921568627451,
9.803921568627452,
81.96078431372548,
14.901960784313726
],
[
16.07843137254902,
10.196078431372548,
82.3529411764706,
16.470588235294116
],
[
12.549019607843137,
10.196078431372548,
82.74509803921569,
16.862745098039216
],
[
9.019607843137255,
9.803921568627452,
82.3529411764706,
13.72549019607843
],
[
7.450980392156863,
10.588235294117647,
81.56862745098039,
14.117647058823529
],
[
12.156862745098039,
10.588235294117647,
80.3921568627451,
12.156862745098039
],
[
17.647058823529413,
10.196078431372548,
80.3921568627451,
12.549019607843137
],
[
23.92156862745098,
10.588235294117647,
78.0392156862745,
13.72549019607843
],
[
24.313725490196077,
9.019607843137255,
78.82352941176471,
14.901960784313726
],
[
13.333333333333334,
12.549019607843137,
80,
12.549019607843137
],
[
13.333333333333334,
12.156862745098039,
79.2156862745098,
11.76470588235294
],
[
11.76470588235294,
12.156862745098039,
79.2156862745098,
11.76470588235294
],
[
9.411764705882353,
12.941176470588236,
78.82352941176471,
11.372549019607844
],
[
9.411764705882353,
14.117647058823529,
77.25490196078431,
9.803921568627452
],
[
10.980392156862745,
14.509803921568627,
77.6470588235294,
10.588235294117647
],
[
10.588235294117647,
15.294117647058822,
77.25490196078431,
10.196078431372548
],
[
15.294117647058822,
13.333333333333334,
78.0392156862745,
9.803921568627452
],
[
14.117647058823529,
14.117647058823529,
77.6470588235294,
9.803921568627452
],
[
9.803921568627452,
16.470588235294116,
76.47058823529412,
10.588235294117647
],
[
9.019607843137255,
16.07843137254902,
75.68627450980392,
8.627450980392156
],
[
9.411764705882353,
16.862745098039216,
74.50980392156863,
7.450980392156863
],
[
9.803921568627452,
16.470588235294116,
75.29411764705883,
8.235294117647058
],
[
12.941176470588236,
15.686274509803921,
76.07843137254902,
8.235294117647058
],
[
11.76470588235294,
16.862745098039216,
74.90196078431373,
7.0588235294117645
],
[
10.196078431372548,
17.647058823529413,
74.11764705882352,
6.666666666666667
],
[
9.803921568627452,
17.254901960784313,
74.50980392156863,
7.450980392156863
],
[
11.372549019607844,
17.254901960784313,
74.50980392156863,
7.0588235294117645
],
[
14.901960784313726,
18.823529411764707,
73.72549019607843,
5.098039215686274
],
[
16.470588235294116,
16.07843137254902,
74.90196078431373,
7.8431372549019605
],
[
11.76470588235294,
14.117647058823529,
77.25490196078431,
9.411764705882353
],
[
10.980392156862745,
11.76470588235294,
78.0392156862745,
9.411764705882353
],
[
10.196078431372548,
10.588235294117647,
84.31372549019608,
19.607843137254903
]
]
]
function trianglePoints(radius, centreAngle, angleSize) {
var halfRadius = radius * 0.5;
var points = [];
var innerPoint = [-halfRadius * cos(centreAngle), -halfRadius * sin(centreAngle)];
points.push(innerPoint);
var innerAngleSize = angleSize * 0.5;
var pointB = [innerPoint[0] + radius * cos(centreAngle - innerAngleSize), innerPoint[1] + radius * sin(centreAngle - innerAngleSize)];
points.push(pointB);
var pointC = [innerPoint[0] + radius * cos(centreAngle + innerAngleSize), innerPoint[1] + radius * sin(centreAngle + innerAngleSize)];
points.push(pointC);
return points;
}
/*
* val4 is an array of 4 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a round grawscale glpyh within the bounding box
*/
function glyph4(values, size) {
push();
scale(size, size);
strokeWeight(1.0/size, 1.0/size);
var fillColour = color(100 - values[0]);
var backgroundColour = color(155 + values[0]);
fill(backgroundColour);
ellipse(0.5, 0.5, 1.0);
noFill();
stroke(fillColour);
var ringWeight = map(values[2], 0, 100, 0.1, 1.25);
strokeWeight(0.5/8.0 * ringWeight);
for (var i = 0; i < 4; i += 1) {
var diameter = 0.2 + 0.25 * i;
ellipse(0.5, 0.5, diameter);
}
var triangleStroke = map(values[3], 0, 100, 0.005, 0.065);
strokeWeight(triangleStroke);
var triangleSpacing = map(values[3], 0, 100, 0.02, 0.15);
var triangleAngle = map(values[1], 0, 100, radians(45), radians(100));
for (var i = 0; i < 3; i++) {
var centreAngle = 0.3 + radians(120) * i;
var startAngle = centreAngle - triangleAngle * 0.5;
var endAngle = centreAngle + triangleAngle * 0.5;
{
push();
stroke(fillColour);
var triangleCentreX = 0.5 + 0.22 * cos(centreAngle);
var triangleCentreY = 0.5 + 0.22 * sin(centreAngle);
translate(triangleCentreX, triangleCentreY);
var pointsOuter = trianglePoints(0.44, centreAngle, triangleAngle);
triangle(pointsOuter[0][0], pointsOuter[0][1], pointsOuter[1][0], pointsOuter[1][1], pointsOuter[2][0], pointsOuter[2][1]);
var pointsInner = trianglePoints(0.44 - 2 * triangleSpacing, centreAngle, triangleAngle);
triangle(pointsInner[0][0], pointsInner[0][1], pointsInner[1][0], pointsInner[1][1], pointsInner[2][0], pointsInner[2][1]);
strokeWeight(triangleStroke * 0.8);
stroke(backgroundColour);
var pointsMiddle = trianglePoints(0.44 - triangleSpacing, centreAngle, triangleAngle);
triangle(pointsMiddle[0][0], pointsMiddle[0][1], pointsMiddle[1][0], pointsMiddle[1][1], pointsMiddle[2][0], pointsMiddle[2][1]);
pop();
}
}
pop();
}
/*
* val8 is an array of 8 numbers that range from [0,100]
* size is the number of pixels for width and height
* use p5.js to draw a square color glpyh within the bounding box
*/
function glyph8(values, size) {
//values[0] is rotation of triangles.
//values[1] is the triangle spread
//values[2] is square stroke weight
//values[3] is the triangle weight
//values[4] is the saturation of the background.
//values[5] is the saturation of the triangles
//values[7] is the triangle rotation
push();
colorMode(HSL);
rectMode(CENTER);
scale(size, size);
strokeWeight(1.0/size, 1.0/size);
var backgroundColour = color(359, values[4], 43);
var ringColour = color(0, 0, 0);
var triangleColour = color(215, 0.88 * values[5], 55);
fill(backgroundColour);
rect(0.5, 0.5, 1.0, 1.0);
noFill();
stroke(ringColour);
var ringWeight = map(values[2], 0, 100, 0.1, 1.25);
strokeWeight(0.5/8.0 * ringWeight);
var goldenRatio = 1.61803398875;
var exponentialStopStep = 1.0 / 17.94427191000132; //to make the last stop be at 1.
var exponentialStop = exponentialStopStep;
for (var i = 0; i < 4; i += 1) {
var linearStop = 0.2 + 0.2666666667 * i; //to make the last stop be at 1.
var diameter = lerp(linearStop, exponentialStop, values[7] * 0.01);
rect(0.5, 0.5, diameter, diameter);
exponentialStop += exponentialStop * goldenRatio;
}
var triangleStroke = map(values[3], 0, 100, 0.005, 0.065);
strokeWeight(triangleStroke);
var triangleSpacing = map(values[3], 0, 100, 0.02, 0.15);
var triangleAngle = map(values[1], 0, 100, radians(45), radians(100));
var scaleXY = map(values[0], 0, 100, 0.6, 1.0);
var translation = (1 - scaleXY) * 0.5;
translate(translation, translation);
scale(scaleXY, scaleXY);
for (var i = 0; i < 4; i++) {
var centreAngle = radians(45) + radians(90) * i;
var startAngle = centreAngle - triangleAngle * 0.5;
var endAngle = centreAngle + triangleAngle * 0.5;
var triangleRotationOffset = values[6] * PI * 0.005;
{
push();
stroke(ringColour);
var triangleCentreX = 0.5 + 0.25 * cos(centreAngle);
var triangleCentreY = 0.5 + 0.25 * sin(centreAngle);
translate(triangleCentreX, triangleCentreY);
var adjustedCentreAngle = centreAngle + triangleRotationOffset;
var pointsOuter = trianglePoints(0.44, adjustedCentreAngle, triangleAngle);
triangle(pointsOuter[0][0], pointsOuter[0][1], pointsOuter[1][0], pointsOuter[1][1], pointsOuter[2][0], pointsOuter[2][1]);
var pointsInner = trianglePoints(0.44 - 2 * triangleSpacing, adjustedCentreAngle, triangleAngle);
triangle(pointsInner[0][0], pointsInner[0][1], pointsInner[1][0], pointsInner[1][1], pointsInner[2][0], pointsInner[2][1]);
strokeWeight(triangleStroke * 0.8);
stroke(triangleColour);
var pointsMiddle = trianglePoints(0.44 - triangleSpacing, adjustedCentreAngle, triangleAngle);
triangle(pointsMiddle[0][0], pointsMiddle[0][1], pointsMiddle[1][0], pointsMiddle[1][1], pointsMiddle[2][0], pointsMiddle[2][1]);
pop();
}
}
pop();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment