diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2012-06-01 17:25:20 +0300 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2012-06-01 17:25:20 +0300 |
| commit | c44cbb3b0e01be0dfa869307c224a0c26f289d8a (patch) | |
| tree | 64353499cc1a3721aa38cf2adf01c37b2771d743 | |
| parent | 54a4fd32ece3165408de9f95280160096a179346 (diff) | |
added matrix_mult()
| -rw-r--r-- | lsys.js | 26 |
1 files changed, 24 insertions, 2 deletions
@@ -37,6 +37,29 @@ function LSystem(axiom, rules, draw_constants) { ]; }; + this.matrix_mult = function(a, b) { + var ah = a.length, aw = a[0].length; + var bh = b.length, bw = b[0].length; + var res = []; + + if (aw != bh) { + throw 'Dimension error'; + } + + for (var i=0; i<ah; i++) { + res[i] = []; + for (var j=0; j<bw; j++) { + var sum = 0; + for (var k=0; k<aw; k++) { + sum += a[i][k] * b[k][j]; + } + res[i][j] = sum; + } + } + + return res; + }; + this.iterate = function(n) { for (var i=0; i<n; i++) { this.tree = this.tree.replace(/\w/g, function(c) { @@ -72,8 +95,7 @@ function LSystem(axiom, rules, draw_constants) { } switch(c) { case '+': - U += alpha; - RUu = true; + break; case '-': U -= alpha; |
