From 1f1ae141e72f24328dc82b37f3d9f6881a207b5c Mon Sep 17 00:00:00 2001 From: Frederic Date: Sat, 1 Jun 2019 16:35:06 +0200 Subject: [PATCH] use a CompoundPath --- lindenmayer-system/lindenmeyer-system.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lindenmayer-system/lindenmeyer-system.js b/lindenmayer-system/lindenmeyer-system.js index 7d78d88..d7e5961 100644 --- a/lindenmayer-system/lindenmeyer-system.js +++ b/lindenmayer-system/lindenmeyer-system.js @@ -53,11 +53,15 @@ function draw_initstate(state) { function draw_forward() { return function(p, state) { draw_initstate(state); - if(p.length == 0) { - p.add(new paper.Point(0, 0)); + if(p.children.length == 0) { + p.addChild(new paper.Path()); } - var lastp = p.segments[p.segments.length - 1].point; - p.add(lastp.add( + var pp = p.lastChild; + if(pp.length == 0) { + pp.add(new paper.Point(0, 0)); + } + var lastp = pp.segments[pp.segments.length - 1].point; + pp.add(lastp.add( new paper.Point(Math.sin(state.dir), Math.cos(state.dir)) )); } @@ -95,7 +99,7 @@ function draw_angle_add(delta) { function draw(word, actions) { - var p = new paper.Path(); + var p = new paper.CompoundPath(); var state = {}; for(let w of word) { if(w in actions) {