diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2012-06-08 12:14:57 +0300 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2012-06-08 12:14:57 +0300 |
| commit | b5f792b3f1562c3b824c441b60577c9048cccd9b (patch) | |
| tree | bc48f0f28566ff1454c7973eaaadb176154949ca | |
| parent | cefdcb00b30a828d2403e3b0cd62d4ea083ea5a2 (diff) | |
[H,L,U]' is now a single forward step vector
| -rw-r--r-- | lsys.js | 41 |
1 files changed, 21 insertions, 20 deletions
@@ -85,11 +85,12 @@ function LSystem(axiom, rules, draw_constants) { var x = 0, y = 0, z = 0; // cartesian coordinates var nx = 0, ny = 1, nz = 0; // next step delta - var H = [1,0,0]; - var L = [0,1,0]; - var U = [0,0,1]; + var H = 0; + var L = 1; + var U = 0; for (var i=0; i<this.tree.length; i++) { + console.log(H, L, U); var c = this.tree.charAt(i); if (this.draw_constants.indexOf(c) != -1) { @@ -98,32 +99,32 @@ function LSystem(axiom, rules, draw_constants) { var _HLU; switch(c) { case '+': - _HLU = this.matrix_mult([H,L,U], this.R_U(alpha)); - H = _HLU[0], L = _HLU[1], U = _HLU[2]; + _HLU = this.matrix_mult(this.R_U(alpha), [[H],[L],[U]]); + H = _HLU[0][0], L = _HLU[1][0], U = _HLU[2][0]; break; case '-': - _HLU = this.matrix_mult([H,L,U], this.R_U(-alpha)); - H = _HLU[0], L = _HLU[1], U = _HLU[2]; + _HLU = this.matrix_mult(this.R_U(-alpha), [[H],[L],[U]]); + H = _HLU[0][0], L = _HLU[1][0], U = _HLU[2][0]; break; case '&': - _HLU = this.matrix_mult([H,L,U], this.R_L(alpha)); - H = _HLU[0], L = _HLU[1], U = _HLU[2]; + _HLU = this.matrix_mult(this.R_L(alpha), [[H],[L],[U]]); + H = _HLU[0][0], L = _HLU[1][0], U = _HLU[2][0]; break; case '^': - _HLU = this.matrix_mult([H,L,U], this.R_L(-alpha)); - H = _HLU[0], L = _HLU[1], U = _HLU[2]; + _HLU = this.matrix_mult(this.R_L(-alpha), [[H],[L],[U]]); + H = _HLU[0][0], L = _HLU[1][0], U = _HLU[2][0]; break; case '<': - _HLU = this.matrix_mult([H,L,U], this.R_H(alpha)); - H = _HLU[0], L = _HLU[1], U = _HLU[2]; + _HLU = this.matrix_mult(this.R_H(alpha), [[H],[L],[U]]); + H = _HLU[0][0], L = _HLU[1][0], U = _HLU[2][0]; break; case '>': - _HLU = this.matrix_mult([H,L,U], this.R_H(-alpha)); - H = _HLU[0], L = _HLU[1], U = _HLU[2]; + _HLU = this.matrix_mult(this.R_H(-alpha), [[H],[L],[U]]); + H = _HLU[0][0], L = _HLU[1][0], U = _HLU[2][0]; break; case '|': - _HLU = this.matrix_mult([H,L,U], this.R_U(Math.PI)); - H = _HLU[0], L = _HLU[1], U = _HLU[2]; + _HLU = this.matrix_mult(this.R_U(Math.PI), [[H],[L],[U]]); + H = _HLU[0][0], L = _HLU[1][0], U = _HLU[2][0]; break; case '[': stack.push(x, y, z, H, L, U, geometry); @@ -145,9 +146,9 @@ function LSystem(axiom, rules, draw_constants) { nx = 0, ny = 1, nz = 0; nc = this.tree.charAt(i+1); - x += nx; - y += ny; - z += nz; + x += H; + y += L; + z += U; geometry.push([x,y,z]); break; |
