From 9c867b3c21276e6558337ca3842cf13f38410958 Mon Sep 17 00:00:00 2001 From: Martin Sarsale Date: Sat, 14 Apr 2012 17:30:55 -0300 Subject: [PATCH 1/9] raphael included --- index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/index.html b/index.html index 15f3ac4..731b48d 100644 --- a/index.html +++ b/index.html @@ -23,6 +23,7 @@ + From 9e4b751ee5d2c7ddaab8bbac538112817bc7a28b Mon Sep 17 00:00:00 2001 From: Martin Sarsale Date: Sat, 14 Apr 2012 17:31:08 -0300 Subject: [PATCH 2/9] mergeSegments bugfix --- javascripts/preprocess.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/javascripts/preprocess.js b/javascripts/preprocess.js index b82cd72..871c5e1 100644 --- a/javascripts/preprocess.js +++ b/javascripts/preprocess.js @@ -15,7 +15,7 @@ function preprocessData(data) { var eventList = {}; for (d in data) { if (!eventList[data[d].character]) { - eventList[data[d].character] = []; + eventList[data[d].character] = {}; } eventList[data[d].character].name = data[d].character; if (!eventList[data[d].character].position) { @@ -51,11 +51,12 @@ function mergeSegments(events, places_position){ var current = [pos_x, pos_y] character_time['segments'].push({'start': current}); if(prev != null) { - positions[position - 1]['end'] = current; + character_time['segments'][character_time['segments'].length - 2]['end'] = current; } prev = current; } character_time['name'] = character['name']; + character_time['segments'].pop(); result.push(character_time); } return result; From a6652f0febd6c91cd1ac5339588547f8e7d08473 Mon Sep 17 00:00:00 2001 From: Martin Sarsale Date: Sat, 14 Apr 2012 17:50:49 -0300 Subject: [PATCH 3/9] merge_segments bugfix --- javascripts/preprocess.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascripts/preprocess.js b/javascripts/preprocess.js index 871c5e1..8ec13a9 100644 --- a/javascripts/preprocess.js +++ b/javascripts/preprocess.js @@ -49,7 +49,7 @@ function mergeSegments(events, places_position){ pos_y = places_position[positions[position]['group']]; pos_x = positions[position]['orderBox']; var current = [pos_x, pos_y] - character_time['segments'].push({'start': current}); + character_time['segments'].push({'start': current, "attributes":{"color": "#bbffbb"}}); if(prev != null) { character_time['segments'][character_time['segments'].length - 2]['end'] = current; } From 791c4faf6cc9f2458416387fa366df7a0e64ee27 Mon Sep 17 00:00:00 2001 From: Martin Sarsale Date: Sat, 14 Apr 2012 17:56:00 -0300 Subject: [PATCH 4/9] casi anda.. --- index.html | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index 731b48d..f89676c 100644 --- a/index.html +++ b/index.html @@ -72,7 +72,7 @@

Visualiza tu timeline aca

- +

@@ -81,7 +81,7 @@

Visualiza tu timeline aca

-
+
@@ -137,14 +137,20 @@

Visualiza tu timeline aca

var optimizer = new TAOptimizer(p, params); var redraw = function(o) { - //console.log("Redraw called!"); + console.log("Redraw called!"); var grafico = new Graficador('graph', { - width: 1100, - height: 1000, - kx: 4, - ky: 4 - }); - grafico.loadData(o.solution); + width: 1100,//px + height: 1000,//px + 'margin-top': 50,//px + 'margin-right': 50,//px + 'margin-bottom': 50,//px + 'margin-left': 50,//px + textoffset: 5, // -textoffset px + kx: 50, + ky: 50 + }); + console.log(o.solution) + grafico.loadData(o.solution ); } optimizer.callback = redraw @@ -157,7 +163,7 @@

Visualiza tu timeline aca

r = optimizer.step(2000); if (r) { console.log(optimizer.instance.energy()) - window.setTimeout(doLoop, 1) +// window.setTimeout(doLoop, 1) } }; doLoop(); From a0b2ebcdf26c9418598e6f8d108afcff28495e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Miquel?= Date: Sat, 14 Apr 2012 18:02:41 -0300 Subject: [PATCH 5/9] more bugfixing --- javascripts/timelineproblem.js | 15 +++++---------- src/timelineproblem.coffee | 24 +++++++++++++++--------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/javascripts/timelineproblem.js b/javascripts/timelineproblem.js index 52d5d36..5053c8f 100644 --- a/javascripts/timelineproblem.js +++ b/javascripts/timelineproblem.js @@ -82,16 +82,11 @@ delta = (Math.random() - 0.5) * (0.2 * 100.0 / this.numGroups); numOperations = 2; op = Math.round(Math.random() * numOperations); - if (op === 0) { - from = this.groupNames[i]; - to = this.groupNames[j]; - prevPos = this.groupPosition[to]; - this.groupPosition[to] = this.groupPosition[from]; - this.groupPosition[from] = prevPos; - } else if (op === 1) { - from = this.groupNames[i]; - this.groupPosition[from] += delta; - } + from = this.groupNames[i]; + to = this.groupNames[j]; + prevPos = this.groupPosition[to]; + this.groupPosition[to] = this.groupPosition[from]; + this.groupPosition[from] = prevPos; this.solution = mergeSegments(this.problem.eventList, this.groupPosition); return this.solution; }; diff --git a/src/timelineproblem.coffee b/src/timelineproblem.coffee index ae949fa..8672537 100644 --- a/src/timelineproblem.coffee +++ b/src/timelineproblem.coffee @@ -85,15 +85,21 @@ class TimeLineProblem extends ProblemInstance # Determine what to do numOperations = 2 op = Math.round( Math.random() * numOperations ) - if op == 0 - from = @groupNames[i] - to = @groupNames[j] - prevPos = @groupPosition[to] - @groupPosition[to] = @groupPosition[from] - @groupPosition[from] = prevPos - else if op == 1 - from = @groupNames[i] - @groupPosition[from] += delta + from = @groupNames[i] + to = @groupNames[j] + prevPos = @groupPosition[to] + @groupPosition[to] = @groupPosition[from] + @groupPosition[from] = prevPos + + #if op == 0 + # from = @groupNames[i] + # to = @groupNames[j] + # prevPos = @groupPosition[to] + # @groupPosition[to] = @groupPosition[from] + # @groupPosition[from] = prevPos + #else if op == 1 + # from = @groupNames[i] + # @groupPosition[from] += delta @solution = mergeSegments(@problem.eventList, @groupPosition) return @solution From a20fb8374222abce610699f0da76c559dd289df8 Mon Sep 17 00:00:00 2001 From: Martin Sarsale Date: Sat, 14 Apr 2012 18:03:59 -0300 Subject: [PATCH 6/9] lower ky --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index f89676c..35a6095 100644 --- a/index.html +++ b/index.html @@ -147,7 +147,7 @@

Visualiza tu timeline aca

'margin-left': 50,//px textoffset: 5, // -textoffset px kx: 50, - ky: 50 + ky: 10 }); console.log(o.solution) grafico.loadData(o.solution ); @@ -163,7 +163,7 @@

Visualiza tu timeline aca

r = optimizer.step(2000); if (r) { console.log(optimizer.instance.energy()) -// window.setTimeout(doLoop, 1) + window.setTimeout(doLoop, 1) } }; doLoop(); From f2d04ee67dc5bbd4ae44bf69622fd24cc93218e6 Mon Sep 17 00:00:00 2001 From: Nicolas Cisco Date: Sat, 14 Apr 2012 18:03:44 -0300 Subject: [PATCH 7/9] Graficador: ahora borra =) --- javascripts/graficador.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/javascripts/graficador.js b/javascripts/graficador.js index 6a872f0..747a94e 100644 --- a/javascripts/graficador.js +++ b/javascripts/graficador.js @@ -114,6 +114,7 @@ function testValues() { var Graficador = function(div, config) { this.divId = div; this.config = config || {}; + $(this.divId).empty(); this.paper = new Raphael(this.divId, this.config.width, this.config.height); }; @@ -144,9 +145,6 @@ Graficador.prototype.loadData = function (data) { } }; -Graficador.prototype.makeRoundStringLine = function(arr) { - var string = ''; -} Graficador.prototype.joinLine = function(segments) { var ret = [], line = 0, @@ -167,6 +165,10 @@ Graficador.prototype.joinLine = function(segments) { return [ret, attr]; }; +Graficador.prototype.makeRoundStringLine = function(arr) { + var string = ''; +}; + Graficador.prototype.makeStringLine = function(arr) { var string = ''; for (var i=0; i < arr.length; i++) { From df5c2a12da9dbcb834a4c65cfb72fba52319ab14 Mon Sep 17 00:00:00 2001 From: Nicolas Cisco Date: Sat, 14 Apr 2012 18:13:18 -0300 Subject: [PATCH 8/9] graficador: fixed bug scrollear --- javascripts/graficador.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/javascripts/graficador.js b/javascripts/graficador.js index 747a94e..b194208 100644 --- a/javascripts/graficador.js +++ b/javascripts/graficador.js @@ -125,6 +125,7 @@ Graficador.prototype.defaultText = { Graficador.prototype.defaultLine = {}; Graficador.prototype.loadData = function (data) { + this.paper.clear(); for (var i=0; i< data.length; i++) { this.writeText(data[i]); var linesAndData = this.joinLine(data[i].segments); @@ -186,10 +187,10 @@ Graficador.prototype.writeText = function(tHash) { tHash.name ), opts = {}; - for (key in this.defaultText) - opts[key] = this.defaultText[key]; + for (key in this.defaultText) + opts[key] = this.defaultText[key]; for (key in (tHash.attributes || {} )){ - if (['fill', 'fill-opacity', 'font', 'font-family', 'font-size', 'font-weight', 'stroke', 'text-anchor'].indexOf(key)) + if (['fill', 'fill-opacity', 'font', 'font-family', 'font-size', 'font-weight', 'stroke', 'text-anchor'].indexOf(key) > -1) opts[key] = tHash.attributes[key]; } thisText.attr(opts); From f65a198dc03dc9cf95babf6bf7cc2bf66e7f689b Mon Sep 17 00:00:00 2001 From: Nicolas Cisco Date: Sat, 14 Apr 2012 18:24:03 -0300 Subject: [PATCH 9/9] Graficador, mas cosas --- javascripts/graficador.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/javascripts/graficador.js b/javascripts/graficador.js index b194208..212e514 100644 --- a/javascripts/graficador.js +++ b/javascripts/graficador.js @@ -167,7 +167,25 @@ Graficador.prototype.joinLine = function(segments) { }; Graficador.prototype.makeRoundStringLine = function(arr) { + function midPoint(Ax, Ay, Bx, By) { + var Zx = (Ax-Bx)/2 + Bx; + var Zy = (Ay-By)/2 + By; + return [Zx, Zy]; + } var string = ''; + for (var i=0; i < arr.length; i++) { + string += (i == 0)? 'M' : 'L'; + + Z = midPoint(point[X], point[Y], next[X], next[Y]); + path_string += " "+Z[X]+","+Z[Y]; + path_string += "Q"+next[X]+","+next[Y]; + + string += (arr[i][0]*this.config.kx+this.config['margin-left'])+','+(arr[i][1]*this.config.ky+this.config['margin-top']); + + + + + } }; Graficador.prototype.makeStringLine = function(arr) {