From f73687b6d6f6a24cc2dfb41b1ad7fef1d1f685b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Tue, 10 Feb 2015 18:13:13 +0100 Subject: [PATCH] Changes to PythagorasTree implementation, still not working Changes to the implementation, is still not workin --- .idea/workspace.xml | 93 +++++++++--------- ...PythagorasTree$PythagorasTreeVariant.class | Bin 1616 -> 1616 bytes out/production/Fractals/PythagorasTree.class | Bin 2566 -> 2591 bytes .../Fractals/PythagorasTreeQueue.class | Bin 1070 -> 1189 bytes out/production/Fractals/TurtleState.class | Bin 0 -> 727 bytes src/PythagorasTree.java | 39 +++----- src/PythagorasTreeQueue.java | 8 +- src/TurtleState.java | 6 ++ 8 files changed, 73 insertions(+), 73 deletions(-) create mode 100644 out/production/Fractals/TurtleState.class diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a5801a7..e9cd0cb 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -46,11 +46,11 @@ - + - - + + @@ -61,8 +61,8 @@ - - + + @@ -80,11 +80,11 @@ - + - - + + @@ -139,9 +139,9 @@ @@ -230,6 +230,9 @@ + + + @@ -512,16 +515,16 @@ 1423576956527 - - + @@ -534,7 +537,7 @@ - + @@ -611,14 +614,6 @@ - - - - - - - - @@ -649,26 +644,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -679,16 +654,44 @@ - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + diff --git a/out/production/Fractals/PythagorasTree$PythagorasTreeVariant.class b/out/production/Fractals/PythagorasTree$PythagorasTreeVariant.class index 9e59bd925fd2dffed9eb7302bdf158020bc5950c..576f4e8ffb60a4b9026eda8319d5cc0b2a051c18 100644 GIT binary patch delta 43 wcmcb>bAe~W4i-kI$vau}f#gdTJ0PjS`jgk0L7l;cA&bG4p@P9_vL2ff05b0j@c;k- delta 43 wcmcb>bAe~W4i-l5$vau}f#gdTJ0PjS`jgj(L7l;uA&bF}p@PACvL2ff05^&ZFaQ7m diff --git a/out/production/Fractals/PythagorasTree.class b/out/production/Fractals/PythagorasTree.class index 20467c3d8edce14009f9390cc401f4aac23f2206..784452faf43543b95d25e7b64be91730d2bb00e9 100644 GIT binary patch literal 2591 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 diff --git a/out/production/Fractals/PythagorasTreeQueue.class b/out/production/Fractals/PythagorasTreeQueue.class index c8fcd6ca4b32ad644ae8cc36a14a32f37ff9cdaf..6ebc61d6e61374bf450899884f7546f255d04555 100644 GIT binary patch delta 475 zcmW-d%T5$Q6o$X*!Kvz|K>=r&MpO_K7%!t-hKpc)0TUA@E{L0UXdS`?$xO3wh%Ags!#5Nzwz_z>o;JPodCye%bfs^y8)Ja zd1&O@`<4fmWkY%U;OHQIWLX*PoMzumZSe2cl6$FQzmx16%${LnH;vnePvYZN{Gyu_ zf38?oEo<3t6EFHS4Wm!rq@DQH>t5V%^^zpSXC!2ujgU>YLLRc6wY_JiI(S#D87l2g zBR=k)G}4n^+D#g*B4wvue{PRiP3d$6kbf?uII7)W0xf7}aVdIRYPyPh&t&}z7k=Pv z`H?RyH{HkcKcCfA;-cb>LMdQ~VIo4Nr8XE_a*c99*F{$KDQ0BnGzMbtTqS3jv&>s=T5gq$k#bE+ W3+nJ#WU0t?jfyU7^mzi$f|Xw+4A{f~b!n#8{~AR_S%f`qiPkf3Q4V;U?CIuD?AX`^S~o>6Vu?VT*-d~vR?>f!M@ zgFnC@ML2gLg$H<;d(X_Cd(NFZ`~TwnAAk>dUx0^d0ULOdM-fj2Z3=oO=((U5f?i5^ zCE>M;nv1%E`pMPe`la9wj6MzHzQWwcFb>mC3Tw4?ZxHD3(KtxQNgA1;W7BT^SRuPN zJT(f7?Jzb6<8NJ)baXf3Nx41j>F8J|q3o{@v*{olDa^O86pm7znq695=_;(;Avmc6A>6YBqnf{?YJVe7q)59CQ^)QbG4_ks31(gJq1O?dkup^;_ zcM8Q@I#d;fRa#Q3jaHlAo+_;tL Z1J>r*YMEZ^^to~JXHNdiX`Orr{w2o@f<6EM literal 0 HcmV?d00001 diff --git a/src/PythagorasTree.java b/src/PythagorasTree.java index c4128f1..24f6df7 100644 --- a/src/PythagorasTree.java +++ b/src/PythagorasTree.java @@ -15,6 +15,7 @@ public class PythagorasTree { private double size; private int momentaryDepth; private int maximalDepth; + private TurtleState turtleState; public PythagorasTree(PythagorasTreeVariant variant, PythagorasTriangleList triangles, Turtle turtle, double size, int momentaryDepth, int maximalDepth) { this.variant = variant; @@ -23,41 +24,29 @@ public class PythagorasTree { this.size = size; this.momentaryDepth = momentaryDepth; this.maximalDepth = maximalDepth; + this.turtleState = new TurtleState(turtle); } - public void addPythagorasTree(PythagorasTreeQueue queue) { - if (momentaryDepth + 1 >= maximalDepth) return; - - turtle.forward(size); - + public void addSubTrees(PythagorasTreeQueue queue) { turtle.pushState(); turtle.right(triangles.getLeftAngle(momentaryDepth)); - PythagorasTree treeOne = queue.remove(); - treeOne.drawPythagorasTree(queue); - - - turtle.popState(); - - - - turtle.setPenColor(drawColor(momentaryDepth, maximalDepth)); - - turtle.left(triangles.getRightAngle(momentaryDepth)); - turtle.forward(size * triangles.getRightSizeFactor(momentaryDepth)); - PythagorasTree treeTwo = queue.remove(); - treeTwo.drawPythagorasTree(queue); - treeOne.addPythagorasTree(queue); - treeTwo.addPythagorasTree(queue); - } - - public void drawPythagorasTree(PythagorasTreeQueue queue) { rightSubTree = new PythagorasTree(variant, triangles, turtle, size * triangles.getRightSizeFactor(momentaryDepth), momentaryDepth + 1, maximalDepth); queue.add(rightSubTree); + + turtle.popState(); + turtle.left(triangles.getRightAngle(momentaryDepth)); + turtle.forward(size * triangles.getRightSizeFactor(momentaryDepth)); leftSubTree = new PythagorasTree(variant, triangles, turtle, size * triangles.getLeftSizeFactor(momentaryDepth), momentaryDepth + 1, maximalDepth); queue.add(leftSubTree); + } + public boolean drawPythagorasTree(PythagorasTreeQueue queue) { + turtle.setPenColor(drawColor(momentaryDepth, maximalDepth)); + turtleState.returnToState(turtle); DrawingTools.drawSquare(turtle, size); - + if (momentaryDepth + 1 >= maximalDepth) return false; + addSubTrees(queue); + return true; } public static Color drawColor(int momentaryDepth, int maximalDepth) { diff --git a/src/PythagorasTreeQueue.java b/src/PythagorasTreeQueue.java index 61cb404..19cde44 100644 --- a/src/PythagorasTreeQueue.java +++ b/src/PythagorasTreeQueue.java @@ -9,8 +9,10 @@ public class PythagorasTreeQueue extends LinkedList { public PythagorasTreeQueue(PythagorasTree.PythagorasTreeVariant variant, PythagorasTriangleList triangles, Turtle turtle, double size, int momentaryDepth, int maximalDepth) { super(); add(new PythagorasTree(variant, triangles, turtle, size, momentaryDepth, maximalDepth)); - PythagorasTree tree = remove(); - tree.drawPythagorasTree(this); - tree.addPythagorasTree(this); + boolean finished = false; + while (!finished) { + PythagorasTree tree = remove(); + finished = tree.drawPythagorasTree(this); + } } } diff --git a/src/TurtleState.java b/src/TurtleState.java index 87579c0..6e69140 100644 --- a/src/TurtleState.java +++ b/src/TurtleState.java @@ -13,4 +13,10 @@ public class TurtleState { y = turtle.getY(); heading = turtle.heading(); } + + public void returnToState(Turtle turtle) { + turtle.setX(x); + turtle.setY(y); + turtle.heading(heading); + } }