Gilbert Leadlight 🪟

Mixed my Leadlight 🪟 with Gilbert tessellation by @reinder

Added text
Added borders
Added hexagonal angle

#tessellation

turtletoy.net/turtle/search/leadlight

Log in to post a comment.

// Gilbert tessellation. Created by Reinder Nijhoff 2023 - @reindernijhoff
//
// https://turtletoy.net/turtle/4823100ba2
//

const poissonRadius = 10; // min=5, max=50, step=1
const angle = 0; // min=0, max=3, step=1 (Free, ∟, ∠, Hex)
const border = 10; //min=0, max=50, step=1

const lines = [];
const disc = PoissonDisc([[0,0]], poissonRadius);
const points = disc.addPoints((300/poissonRadius) **2, 50, 0, 1);

class lineSegment {
    constructor(center, delta, index) {
        this.index = index;
        this.center =[...center];
        this.delta = [...delta];
        this.end = add(center, scale(delta, 0.1));
        this.turtle = new Turtle(center);
        this.done = false;
    }
    
    grow(dt, lines, ignoreIntersections = false) {
        if (this.done) return;
        let end = add(this.end, scale(this.delta, dt));
        let done = Math.abs(end[0]) > 100-border || Math.abs(end[1]) > 100-border;
        
        lines.forEach( (line, index) => {
            if (index === this.index || ignoreIntersections) return;

            const intersection = segment_intersect(this.end, end, line.start.end, line.end.end);
            if (intersection) {
                done = true;
                end = intersection;
            }
        });
        
        this.done = done || ignoreIntersections;
        this.turtle.goto(end);
        this.end = end;
    }
}

class line {
    constructor(start, delta, index, instant = false) {
        this.start = new lineSegment(start, scale(delta,  1), index);
        this.end   = new lineSegment(start, scale(delta, -1), index);
        this.instant = instant;
    }
    
    grow(dt, lines) {
        this.start.grow(this.instant?.9:dt, lines, this.instant);
        this.end.grow(this.instant?.9:dt, lines, this.instant);
    }
}

const drawInstant = (v, i, a) => { [scale(sub(a[(i+1)%a.length], v), .5)].forEach(direction => lines.push(new line(add(v, direction), direction, i, true))); };
fontOutput()/* .map(l => l.map(p => scale(p, Math.min(1, (100-border)/90)))) */.forEach(l => l.forEach(drawInstant));
[[border-100, border-100], [border-100, 100-border], [100-border, 100-border], [100-border, border-100]].forEach(drawInstant);

points.filter(p => Math.abs(p[0]) < 100-border && Math.abs(p[1]) < 100-border).forEach( point => {
    const r = angle == 0 ? Math.random() : angle == 1 ?  (Math.random() * 4 | 0) / 4 : angle == 2? (Math.random() * 8 | 0) / 8: (Math.random() * 6 | 0) / 6;
    const a = r * Math.PI * 2;
    lines.push(new line(point, [Math.sin(a), Math.cos(a)], lines.length));
});

function walk(i) {
    lines.forEach(line => line.grow(1, lines));
    return lines.find(a => !a.start.done || !a.end.done);
}

////////////////////////////////////////////////////////////////
// Poisson-Disc utility code. Created by Reinder Nijhoff 2019
// https://turtletoy.net/turtle/b5510898dc
////////////////////////////////////////////////////////////////
function PoissonDisc(startPoints, radius) {
    class PoissonDiscGrid {
        constructor(sp, radius) {
            this.cellSize = 1/Math.sqrt(2)/radius;
            this.radius2 = radius*radius;
            this.cells = [];
            sp.forEach( p => this.insert(p) );
        }
        insert(p) {
            const x = p[0]*this.cellSize|0, y=p[1]*this.cellSize|0;
            for (let xi = x-1; xi<=x+1; xi++) {
                for (let yi = y-1; yi<=y+1; yi++) {
                    const ps = this.cell(xi,yi);
                    for (let i=0; i<ps.length; i++) {
                        if ((ps[i][0]-p[0])**2 + (ps[i][1]-p[1])**2 < this.radius2) {
                            return false;
                        }
                    }
                }       
            }
            this.cell(x, y).push(p);
            return true;
        }
        cell(x,y) {
            const c = this.cells;
            return (c[x]?c[x]:c[x]=[])[y]?c[x][y]:c[x][y]=[];
        }
    }
    class PoissonDisc {
        constructor(sp, radius) {
            this.result = [...sp];
            this.active = [...sp];
            this.grid = new PoissonDiscGrid(sp, radius);
        }
        addPoints(count, maxTries=16, loosePacking=0, randomGrowOrder=0) {
        	mainLoop: while (this.active.length > 0 && count > 0) {
        		const index = (Math.random() * this.active.length * randomGrowOrder) | 0;
        		const point = this.active[index];
        		for (let i=0; i < maxTries; i++) {
        			const a = Math.random() * 2 * Math.PI;
        			const d = (Math.random()*loosePacking + 1) * radius;
        			const p = [point[0] + Math.cos(a)*d, point[1] + Math.sin(a)*d, point];
        			if (this.grid.insert(p)) {
            			this.result.push(p);
            			this.active.push(p);
            			count--;
            			continue mainLoop;
        			}
        		}
    		    this.active.splice(index, 1);
        	}
        	return this.result;
        }
    }
    return new PoissonDisc(startPoints, radius);
}

////////////////////////////////////////////////////////////////
// 2D math functions
////////////////////////////////////////////////////////////////

function scale(a,b) { return [a[0]*b,a[1]*b]; }
function add(a,b) { return [a[0]+b[0],a[1]+b[1]]; }
function sub(a,b) { return [a[0]-b[0],a[1]-b[1]]; }
function segment_intersect(l1p1, l1p2, l2p1, l2p2) {
	const d   = (l2p2[1] - l2p1[1]) * (l1p2[0] - l1p1[0]) - (l2p2[0] - l2p1[0]) * (l1p2[1] - l1p1[1]);
	if (d === 0) return false;
	const n_a = (l2p2[0] - l2p1[0]) * (l1p1[1] - l2p1[1]) - (l2p2[1] - l2p1[1]) * (l1p1[0] - l2p1[0]);
	const n_b = (l1p2[0] - l1p1[0]) * (l1p1[1] - l2p1[1]) - (l1p2[1] - l1p1[1]) * (l1p1[0] - l2p1[0]);
	const ua = n_a / d;
	const ub = n_b / d;
	if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {
		return [l1p1[0] + ua * (l1p2[0] - l1p1[0]), l1p1[1] + ua * (l1p2[1] - l1p1[1])];
	}
	return false;
}

function fontOutput() { return [[[-77,-35.6],[-77,-40],[-62.62292754540243,-40],[-62.62292754540243,-35.6],[-67.61146377270121,-35.6],[-67.61146377270121,-20],[-72.01146377270122,-20],[-72.01146377270122,-35.6]],[[-50.645855090804865,-40],[-46.24585509080487,-40],[-46.24585509080487,-26.666666666666664],[-46.268014948940944,-26.143606028481035],[-46.33435790045488,-25.623770233065127],[-46.444474918989314,-25.110364240960628],[-46.597687096507364,-24.606553370833684],[-46.793049828986405,-24.115443784232735],[-47.029358640215996,-23.640063335069687],[-47.305156607794274,-23.183342901893674],[-47.61874334553897,-22.74809831805018],[-47.96818548693372,-22.337013011132107],[-48.35132860497552,-21.95262145875635],[-48.76581049493363,-21.597293562666458],[-49.209075738127254,-21.27322003750035],[-49.678391456931436,-20.982398904306052],[-50.17086416387644,-20.72662317207755],[-50.68345760096016,-20.507469783258088],[-51.21301145918836,-20.326289891365644],[-51.75626086293053,-20.184200530682155],[-52.309856498963846,-20.08207772936575],[-52.870385266102936,-20.02055110844581],[-53.43439131810365,-20],[-53.998397370104364,-20.02055110844581],[-54.55892613724346,-20.08207772936575],[-55.11252177327677,-20.184200530682155],[-55.65577117701894,-20.326289891365644],[-56.18532503524714,-20.507469783258088],[-56.69791847233086,-20.72662317207755],[-57.19039117927586,-20.982398904306052],[-57.659706898080046,-21.27322003750035],[-58.10297214127367,-21.597293562666458],[-58.51745403123178,-21.95262145875635],[-58.90059714927359,-22.337013011132107],[-59.25003929066833,-22.74809831805018],[-59.56362602841303,-23.183342901893674],[-59.839423995991304,-23.640063335069687],[-60.0757328072209,-24.115443784232735],[-60.271095539699935,-24.606553370833684],[-60.424307717217985,-25.110364240960628],[-60.53442473575242,-25.623770233065127],[-60.600767687266355,-26.14360602848103],[-60.62292754540243,-26.666666666666664],[-60.62292754540243,-40],[-56.222927545402435,-40],[-56.222927545402435,-26.666666666666664],[-56.21433141884059,-26.48882604968355],[-56.18859603713381,-26.312081879242143],[-56.145880067468205,-26.137523841926615],[-56.08644686800126,-25.966228146083452],[-56.01066286417124,-25.79925088663913],[-55.91899528956248,-25.637621533923692],[-55.812009305255025,-25.48233658664385],[-55.690364515418565,-25.33435342813706],[-55.55481090063345,-25.194584423784917],[-55.40618419401097,-25.063891295977157],[-55.24540072862086,-24.943079811306596],[-55.073451787993164,-24.83289481275012],[-54.89139749452569,-24.734015627464057],[-54.70036027347685,-24.647051878506367],[-54.50151793284075,-24.57253972630775],[-54.29609640176918,-24.510938563064318],[-54.08536217231079,-24.462628180431935],[-53.87061449106644,-24.427906427984354],[-53.65317734890185,-24.406987376871577],[-53.43439131810365,-24.4],[-53.21560528730545,-24.406987376871577],[-52.99816814514086,-24.427906427984354],[-52.78342046389651,-24.462628180431935],[-52.57268623443812,-24.510938563064318],[-52.36726470336656,-24.57253972630775],[-52.168422362730446,-24.647051878506367],[-51.97738514168161,-24.734015627464057],[-51.795330848214135,-24.83289481275012],[-51.62338190758644,-24.943079811306596],[-51.46259844219633,-25.063891295977157],[-51.31397173557385,-25.194584423784917],[-51.178418120788734,-25.33435342813706],[-51.056773330952275,-25.48233658664385],[-50.94978734664482,-25.637621533923692],[-50.85811977203606,-25.79925088663913],[-50.78233576820604,-25.966228146083452],[-50.722902568739094,-26.137523841926615],[-50.680186599073494,-26.312081879242143],[-50.65445121736671,-26.488826049683553],[-50.645855090804865,-26.666666666666664]],[[-44.24585509080487,-40],[-44.24585509080487,-20],[-39.84585509080487,-20],[-39.84585509080487,-27.8],[-38.40678987112092,-27.8],[-34.50678987112092,-20],[-29.8687826362073,-20],[-33.94386817100639,-28.150171069598183],[-33.19944058779606,-28.464860202450957],[-32.78154139144001,-28.698894997440036],[-32.38329259722321,-28.964996334312822],[-32.00714954139318,-29.26152360983981],[-31.65543127096936,-29.58664863476206],[-31.33030624604711,-29.93836690518588],[-31.03377897052012,-30.314509961015915],[-30.767677633647338,-30.712758755232713],[-30.533642838658253,-31.130657951588763],[-30.33311748788845,-31.56563106257295],[-30.167337886806862,-32.01499633431282],[-30.037326121781472,-32.47598328047898],[-29.94388375857696,-32.94574976325459],[-29.887586900435217,-33.42139951606015],[-29.8687826362073,-33.9],[-29.887586900435217,-34.378600483939856],[-29.94388375857696,-34.85425023674541],[-30.037326121781472,-35.32401671952102],[-30.167337886806862,-35.78500366568718],[-30.33311748788845,-36.23436893742705],[-30.533642838658253,-36.66934204841124],[-30.767677633647338,-37.087241244767284],[-31.03377897052012,-37.48549003898408],[-31.33030624604711,-37.86163309481412],[-31.65543127096936,-38.21335136523794],[-32.00714954139318,-38.538476390160184],[-32.38329259722322,-38.83500366568718],[-32.78154139144001,-39.10110500255996],[-33.19944058779606,-39.33513979754905],[-33.63441369878025,-39.53566514831885],[-34.08377897052012,-39.70144474940044],[-34.54476591668627,-39.831456514425824],[-35.01453239946189,-39.92489887763034],[-35.490182152267444,-39.981195735772076],[-35.9687826362073,-40]],    [[-39.84585509080487,-32.2],[-39.84585509080487,-35.6],[-35.9687826362073,-35.599999999999994],[-35.835402173469966,-35.59475946734632],[-35.702844045638905,-35.57907017901174],[-35.57192551765226,-35.55302886467605],[-35.44345374576989,-35.516796077701756],[-35.31822080118665,-35.470595205269184],[-35.19699878665007,-35.414711091120225],[-35.08053507619019,-35.34948827940195],[-34.9695477073101,-35.27532889043741],[-34.864720954045985,-35.19269014152005],[-34.76670110819017,-35.10208152801713],[-34.676092494687246,-35.00406168216131],[-34.59345374576989,-34.8992349288972],[-34.51929435680535,-34.78824756001711],[-34.454071545087075,-34.67178384955723],[-34.39818743093811,-34.55056183502065],[-34.35198655850554,-34.42532889043741],[-34.31575377153125,-34.29685711855504],[-34.28971245719556,-34.16593859056839],[-34.27402316886098,-34.033380462737334],[-34.2687826362073,-33.9],[-34.27402316886098,-33.76661953726266],[-34.28971245719556,-33.63406140943161],[-34.31575377153125,-33.50314288144496],[-34.35198655850554,-33.374671109562584],[-34.39818743093811,-33.249438164979345],[-34.454071545087075,-33.12821615044277],[-34.51929435680535,-33.011752439982885],[-34.59345374576989,-32.900765071102796],[-34.676092494687246,-32.79593831783869],[-34.76670110819017,-32.69791847198287],[-34.864720954045985,-32.60730985847995],[-34.96954770731009,-32.52467110956259],[-35.08053507619019,-32.450511720598044],[-35.19699878665007,-32.38528890887977],[-35.31822080118665,-32.32940479473081],[-35.44345374576989,-32.28320392229824],[-35.57192551765226,-32.246971135323946],[-35.702844045638905,-32.22092982098826],[-35.835402173469966,-32.20524053265368],[-35.9687826362073,-32.2]],[[-27.8687826362073,-35.6],[-27.8687826362073,-40],[-13.491710181609733,-40],[-13.491710181609733,-35.6],[-18.480246408908517,-35.6],[-18.480246408908517,-20],[-22.880246408908516,-20],[-22.880246408908516,-35.6]],[[-11.491710181609733,-20],[2.885362272987834,-20],[2.885362272987834,-24.4],[-7.0917101816097325,-24.4],[-7.0917101816097325,-40],[-11.491710181609733,-40]],[[4.885362272987834,-20],[4.885362272987834,-40],[19.2624347275854,-40],[19.2624347275854,-35.6],[9.285362272987834,-35.6],[9.285362272987834,-32.2],[16.473898500286616,-32.2],[16.473898500286616,-27.8],[9.285362272987834,-27.8],[9.285362272987834,-24.4],[19.2624347275854,-24.4],[19.2624347275854,-20]],[[21.2624347275854,-35.6],[21.2624347275854,-40],[35.63950718218297,-40],[35.63950718218297,-35.6],[30.650970954884183,-35.6],[30.650970954884183,-20],[26.250970954884185,-20],[26.250970954884185,-35.6]],[[55.610847750429926,-30],[55.50021923836741,-28.435655349597692],[55.1710577433018,-26.909830056250527],[54.631468313666005,-25.460095002604533],[53.8947374320123,-24.122147477075266],[52.97900585771661,-22.928932188134524],[51.906821941276945,-21.909830056250527],[50.70458640909046,-21.08993475811632],[49.40190228995056,-20.489434837048464],[48.0308459902312,-20.12311659404862],[46.62517746630645,-20],[45.21950894238169,-20.123116594048625],[43.84845264266233,-20.489434837048464],[42.54576852352243,-21.08993475811632],[41.34353299133595,-21.909830056250527],[40.271349074896285,-22.928932188134524],[39.35561750060059,-24.122147477075266],[38.61888661894688,-25.460095002604533],[38.079297189311085,-26.909830056250527],[37.750135694245486,-28.43565534959769],[37.63950718218297,-30],[37.750135694245486,-31.564344650402308],[38.079297189311085,-33.09016994374947],[38.61888661894688,-34.53990499739547],[39.35561750060059,-35.87785252292473],[40.27134907489628,-37.071067811865476],[41.34353299133595,-38.09016994374947],[42.54576852352243,-38.91006524188368],[43.84845264266233,-39.510565162951536],[45.21950894238169,-39.876883405951375],[46.62517746630645,-40],[48.0308459902312,-39.876883405951375],[49.40190228995056,-39.510565162951536],[50.70458640909045,-38.91006524188368],[51.906821941276945,-38.09016994374947],[52.97900585771661,-37.071067811865476],[53.8947374320123,-35.877852522924734],[54.631468313666005,-34.53990499739547],[55.1710577433018,-33.09016994374947],[55.50021923836741,-31.56434465040231],[55.610847750429926,-30]],[[51.21084775042992,-30],[51.154390539748796,-29.12396699577471],[50.98640907160313,-28.269504831500292],[50.71103960723719,-27.457653201458537],[50.33506265676253,-26.708402587162148],[49.8677360204958,-26.040202025355335],[49.320566831190064,-25.469504831500295],[48.70702821023645,-25.01036346454514],[48.0422275147008,-24.674083508747138],[47.34253434405419,-24.46894529266723],[46.62517746630645,-24.4],[45.90782058855871,-24.46894529266723],[45.208127417912095,-24.674083508747138],[44.543326722376435,-25.01036346454514],[43.92978810142283,-25.469504831500295],[43.382618912117096,-26.040202025355335],[42.91529227585036,-26.708402587162148],[42.5393153253757,-27.457653201458537],[42.263945861009766,-28.269504831500292],[42.0959643928641,-29.12396699577471],[42.039507182182966,-30],[42.09596439286409,-30.87603300422529],[42.263945861009766,-31.730495168499708],[42.539315325375696,-32.54234679854146],[42.915292275850355,-33.29159741283785],[43.38261891211709,-33.959797974644665],[43.92978810142283,-34.530495168499705],[44.543326722376435,-34.98963653545486],[45.208127417912095,-35.32591649125286],[45.90782058855871,-35.53105470733277],[46.62517746630645,-35.6],[47.34253434405419,-35.53105470733277],[48.04222751470079,-35.32591649125286],[48.70702821023645,-34.98963653545486],[49.320566831190064,-34.530495168499705],[49.8677360204958,-33.959797974644665],[50.33506265676253,-33.29159741283785],[50.71103960723719,-32.542346798541466],[50.98640907160313,-31.730495168499708],[51.154390539748796,-30.87603300422529],[51.21084775042992,-30]],[[57.610847750429926,-40],[62.898989621110445,-40],[66.92158535243685,-33.966106403010386],[70.94418108376325,-40],[76.23232295444377,-40],[69.12158535243685,-29.33389359698961],[69.12158535243685,-20],[64.72158535243685,-20],[64.72158535243685,-29.33389359698961]],[[-45,20],[-41.666666666666664,10],[-39.34766304920986,10],[-36.01432971587652,20],[-38.333333333333336,20],[-39.07777777777778,17.766666666666666],[-41.936551938098745,17.766666666666666],[-42.680996382543185,20]],[[-40.507164857938264,13.478505426185219],[-39.81111111111111,15.566666666666666],[-41.20321860476541,15.566666666666666]],[[-32.81432971587652,20],[-35.01432971587652,20],[-35.01432971587652,10],[-32.81432971587652,10],[-30.547663049209852,14.615735660036739],[-30.547663049209852,10],[-28.347663049209856,10],[-28.347663049209856,20],[-30.547663049209852,20],[-32.81432971587652,15.384264339963263]],[[-25.147663049209857,20],[-27.347663049209856,20],[-27.347663049209856,10],[-25.147663049209857,10],[-22.880996382543188,14.615735660036739],[-22.880996382543188,10],[-20.680996382543192,10],[-20.680996382543192,20],[-22.880996382543188,20],[-25.147663049209857,15.384264339963263]],[[-10.695326098419715,15],[-10.750640354450972,15.782172325201154],[-10.915221101983775,16.545084971874736],[-11.185015816801672,17.269952498697734],[-11.553381257628526,17.938926261462367],[-12.011247044776372,18.535533905932738],[-12.547339002996205,19.045084971874736],[-13.148456769089446,19.45503262094184],[-13.799798828659394,19.755282581475768],[-14.485326978519076,19.938441702975688],[-15.188161240481453,20],[-15.890995502443833,19.938441702975688],[-16.57652365230351,19.755282581475768],[-17.22786571187346,19.45503262094184],[-17.828983477966702,19.045084971874736],[-18.365075436186533,18.535533905932738],[-18.822941223334382,17.938926261462367],[-19.191306664161235,17.269952498697734],[-19.461101378979134,16.545084971874736],[-19.625682126511933,15.782172325201156],[-19.680996382543192,15],[-19.625682126511933,14.217827674798846],[-19.461101378979134,13.454915028125262],[-19.191306664161235,12.730047501302268],[-18.822941223334382,12.061073738537635],[-18.365075436186537,11.464466094067262],[-17.828983477966702,10.954915028125264],[-17.22786571187346,10.54496737905816],[-16.57652365230351,10.244717418524232],[-15.890995502443833,10.06155829702431],[-15.188161240481453,10],[-14.485326978519076,10.06155829702431],[-13.799798828659394,10.244717418524232],[-13.148456769089448,10.54496737905816],[-12.547339002996205,10.954915028125264],[-12.011247044776372,11.464466094067262],[-11.553381257628526,12.061073738537633],[-11.185015816801672,12.730047501302266],[-10.915221101983775,13.454915028125262],[-10.750640354450974,14.217827674798844],[-10.695326098419715,15]],[[-12.895326098419714,15],[-12.923554703760278,15.438016502112646],[-13.007545437833112,15.865247584249854],[-13.145230170016081,16.27117339927073],[-13.33321864525341,16.645798706418926],[-13.566881963386777,16.979898987322333],[-13.840466558039646,17.265247584249853],[-14.14723586851645,17.49481826772743],[-14.479636216284279,17.66295824562643],[-14.829482801607583,17.765527353666386],[-15.188161240481453,17.8],[-15.546839679355323,17.765527353666386],[-15.896686264678628,17.66295824562643],[-16.22908661244646,17.49481826772743],[-16.53585592292326,17.265247584249853],[-16.809440517576128,16.979898987322333],[-17.043103835709495,16.645798706418926],[-17.231092310946824,16.27117339927073],[-17.368777043129793,15.865247584249854],[-17.452767777202627,15.438016502112646],[-17.480996382543193,15],[-17.45276777720263,14.561983497887354],[-17.368777043129793,14.134752415750146],[-17.231092310946828,13.72882660072927],[-17.0431038357095,13.354201293581074],[-16.80944051757613,13.020101012677667],[-16.53585592292326,12.734752415750147],[-16.22908661244646,12.50518173227257],[-15.896686264678628,12.337041754373569],[-15.546839679355323,12.234472646333614],[-15.188161240481453,12.2],[-14.829482801607583,12.234472646333614],[-14.47963621628428,12.337041754373569],[-14.14723586851645,12.50518173227257],[-13.840466558039646,12.734752415750147],[-13.566881963386777,13.020101012677667],[-13.33321864525341,13.354201293581074],[-13.145230170016081,13.728826600729267],[-13.007545437833112,14.134752415750146],[-12.923554703760278,14.561983497887354],[-12.895326098419714,15]],[[0.6932101288790689,10],[-1.5067898711209313,10],[-1.5067898711209313,20],[0.6932101288790689,20],[0.6932101288790689,16.957010852370434],[1.7075398447555905,20],[4.026543462212402,20],[5.040873178088924,16.957010852370434],[5.040873178088924,20],[7.240873178088924,20],[7.240873178088924,10],[5.040873178088924,10],[2.867041653483996,16.52149457381478]],[[10.440873178088925,10],[8.240873178088924,10],[8.240873178088924,20],[10.440873178088925,20],[10.440873178088925,16.957010852370434],[11.455202893965446,20],[13.774206511422257,20],[14.78853622729878,16.957010852370434],[14.78853622729878,20],[16.98853622729878,20],[16.98853622729878,10],[14.78853622729878,10],[12.614704702693851,16.52149457381478]],[[17.98853622729878,10],[20.63260716263904,10],[22.643905028302242,13.016946798494807],[24.655202893965445,10],[27.299273829305704,10],[23.965940495972372,15],[27.299273829305704,20],[24.655202893965445,20],[22.643905028302242,16.983053201505193],[20.63260716263904,20],[17.98853622729878,20],[21.321869560632113,15]],[[10.440873178088925,10],[8.240873178088924,10],[8.240873178088924,20],[10.440873178088925,20],[10.440873178088925,16.957010852370434],[11.455202893965446,20],[13.774206511422257,20],[14.78853622729878,16.957010852370434],[14.78853622729878,20],[16.98853622729878,20],[16.98853622729878,10],[14.78853622729878,10],[12.614704702693851,16.52149457381478]],[[17.98853622729878,10],[20.63260716263904,10],[22.643905028302242,13.016946798494807],[24.655202893965445,10],[27.299273829305704,10],[23.965940495972372,15],[27.299273829305704,20],[24.655202893965445,20],[22.643905028302242,16.983053201505193],[20.63260716263904,20],[17.98853622729878,20],[21.321869560632113,15]],[[28.299273829305704,10],[31.632607162639037,20],[33.95161078009585,20],[37.284944113429184,10],[34.96594049597237,10],[32.79210897136744,16.52149457381478],[30.618277446762516,10]],[[38.284944113429184,20],[38.284944113429184,10],[40.48494411342919,10],[40.48494411342919,20]],[[41.48494411342919,20],[41.48494411342919,10],[43.68494411342919,10],[43.68494411342919,20]],[[44.68494411342919,20],[44.68494411342919,10],[46.88494411342919,10],[46.88494411342919,20]]];}