summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2012-06-01 17:25:20 +0300
committerYuval Adam <yuv.adm@gmail.com>2012-06-01 17:25:20 +0300
commitc44cbb3b0e01be0dfa869307c224a0c26f289d8a (patch)
tree64353499cc1a3721aa38cf2adf01c37b2771d743
parent54a4fd32ece3165408de9f95280160096a179346 (diff)
added matrix_mult()
-rw-r--r--lsys.js26
1 files changed, 24 insertions, 2 deletions
diff --git a/lsys.js b/lsys.js
index 27646c6..831baf0 100644
--- a/lsys.js
+++ b/lsys.js
@@ -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;