1
0
Fork 0

Changes to PythagorasTree implementation, still not working

Changes to the implementation, is still not workin
This commit is contained in:
Jan Christian Grünhage 2015-02-10 18:13:13 +01:00
parent dfd1841e2f
commit f73687b6d6
8 changed files with 73 additions and 73 deletions

View File

@ -46,11 +46,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="PythagorasTree.java" pinned="false" current-in-tab="true">
<file leaf-file-name="PythagorasTree.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/PythagorasTree.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.13016845" vertical-offset="357" max-vertical-offset="1496">
<caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="204" max-vertical-offset="1309">
<caret line="46" column="61" selection-start-line="46" selection-start-column="61" selection-end-line="46" selection-end-column="61" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@ -61,8 +61,8 @@
<file leaf-file-name="TurtleState.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/TurtleState.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="374">
<caret line="13" column="35" selection-start-line="13" selection-start-column="35" selection-end-line="13" selection-end-column="35" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="476">
<caret line="16" column="27" selection-start-line="16" selection-start-column="27" selection-end-line="16" selection-end-column="27" />
<folding />
</state>
</provider>
@ -80,11 +80,11 @@
</provider>
</entry>
</file>
<file leaf-file-name="PythagorasTreeQueue.java" pinned="false" current-in-tab="false">
<file leaf-file-name="PythagorasTreeQueue.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/PythagorasTreeQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="374">
<caret line="12" column="12" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="12" />
<state vertical-scroll-proportion="0.36447167" vertical-offset="0" max-vertical-offset="653">
<caret line="14" column="53" selection-start-line="14" selection-start-column="53" selection-end-line="14" selection-end-column="53" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@ -139,9 +139,9 @@
<option value="$PROJECT_DIR$/src/PythagorasTriangleList.java" />
<option value="$PROJECT_DIR$/src/Main.java" />
<option value="$PROJECT_DIR$/src/DrawingTools.java" />
<option value="$PROJECT_DIR$/src/PythagorasTreeQueue.java" />
<option value="$PROJECT_DIR$/src/TurtleState.java" />
<option value="$PROJECT_DIR$/src/PythagorasTree.java" />
<option value="$PROJECT_DIR$/src/PythagorasTreeQueue.java" />
</list>
</option>
</component>
@ -230,6 +230,9 @@
<property name="recentsLimit" value="5" />
<property name="restartRequiresConfirmation" value="true" />
<property name="dynamic.classpath" value="false" />
<property name="options.lastSelected" value="project.propVCSSupport.Mappings" />
<property name="options.splitter.main.proportions" value="0.3" />
<property name="options.splitter.details.proportions" value="0.2" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
@ -512,16 +515,16 @@
<created>1423576956527</created>
<option name="number" value="Default" />
<updated>1423576956527</updated>
<workItem from="1423576961426" duration="8044000" />
<workItem from="1423576961426" duration="9364000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="8044000" />
<option name="totallyTimeSpent" value="9364000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1456" height="939" extended-state="6" />
<editor active="true" />
<editor active="false" />
<layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@ -534,7 +537,7 @@
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16385542" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16385542" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.1875" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
@ -611,14 +614,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/DrawingTools.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="306">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/PythagorasTriangle.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="914" max-vertical-offset="1445">
@ -649,26 +644,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="805" max-vertical-offset="3536">
<caret line="59" column="124" selection-start-line="59" selection-start-column="124" selection-end-line="59" selection-end-column="124" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/PythagorasTreeQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="374">
<caret line="12" column="12" selection-start-line="12" selection-start-column="12" selection-end-line="12" selection-end-column="12" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/aplu5.jar!/ch/aplu/turtle/Turtle.class">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-3.7777777" vertical-offset="30226" max-vertical-offset="36686">
@ -679,16 +654,44 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/TurtleState.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="374">
<caret line="13" column="35" selection-start-line="13" selection-start-column="35" selection-end-line="13" selection-end-column="35" />
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="476">
<caret line="16" column="27" selection-start-line="16" selection-start-column="27" selection-end-line="16" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="805" max-vertical-offset="3536">
<caret line="59" column="124" selection-start-line="59" selection-start-column="124" selection-end-line="59" selection-end-column="124" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/DrawingTools.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="306">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/PythagorasTree.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.13016845" vertical-offset="357" max-vertical-offset="1496">
<caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="204" max-vertical-offset="1309">
<caret line="46" column="61" selection-start-line="46" selection-start-column="61" selection-end-line="46" selection-end-column="61" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/PythagorasTreeQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.36447167" vertical-offset="0" max-vertical-offset="653">
<caret line="14" column="53" selection-start-line="14" selection-start-column="53" selection-end-line="14" selection-end-column="53" />
<folding>
<element signature="imports" expanded="true" />
</folding>

Binary file not shown.

View File

@ -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) {

View File

@ -9,8 +9,10 @@ public class PythagorasTreeQueue extends LinkedList<PythagorasTree> {
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);
}
}
}

View File

@ -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);
}
}