diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2011-10-27 11:59:22 +0200 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2011-10-27 11:59:22 +0200 |
| commit | e263daa376ed8b6be58d3c7d311e4b896666d8fc (patch) | |
| tree | 5b908017b3bbcfaebc7b0a5b373e58972474ef20 /lsys/app.js | |
| parent | ce999c4277bafa656af28bf62c173837787fe9e9 (diff) | |
added lsys
Diffstat (limited to 'lsys/app.js')
| -rw-r--r-- | lsys/app.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/lsys/app.js b/lsys/app.js new file mode 100644 index 0000000..3c5e696 --- /dev/null +++ b/lsys/app.js @@ -0,0 +1,60 @@ +/* Based on http://www.robotacid.com/PBeta/LSystem/index.html */ + +var lsystem = new LSystem(); + +var width = 1200; +var height = 600; + +var HALF_PI = 3.141592 / 2; + +function setup(axiom, ruleset, iterations) { + lsystem = new LSystem(axiom, ruleset); + lsystem.iterate(iterations); +} + +function saveImage() { + console.log("save"); + window.open(c.toDataURL()); +} + +function draw(x, y, axiom, ruleset, iterations, angle, zoom, drawtype) { + a.fillStyle = "#fff"; + a.fillRect(0, 0, width, height); + + var angle_radians = parseFloat(angle) * (Math.PI / 360); + + lsystem.draw(x, y, zoom, angle_radians, drawtype); + + a.fillStyle = "#666"; + a.fillRect(0, 0, width, 20); + a.fillStyle = "#fff"; + a.font = "bold 10px 'Lucida Grande', Helvetica"; + + var str = "axiom: " + axiom + " "; + str += "ruleset: " + ruleset + " "; + str += "angle: " + angle + "ยบ "; + str += "iterations: " + iterations + " "; + str += "zoom: " + zoom + " "; + str += "x: " + x + " "; + str += "y: " + y + " "; + str += "drawtype: " + drawtype; + a.fillText(str, 5, 13); +} + +function generate() { + var axiom = document.getElementById("axiom").value; + var ruleset = document.getElementById("ruleset").value; + var angle = document.getElementById("angle").value; + var iterations = document.getElementById("iterations").value; + var zoom = document.getElementById("zoom").value; + + var x = document.getElementById("x").value; + var y = document.getElementById("y").value; + + var drawtype = document.getElementById("drawtype").value; + + setup(axiom, ruleset, iterations); + draw(x, y, axiom, ruleset, iterations, angle, zoom, drawtype); +} + +generate(); |
