var sumOfSquaredPauses = 0;
var benchmarkStartTime = void 0;
var benchmarkTimeLimit = void 0;
+var autoScale = void 0;
var pauseDistribution = [];
}
-function PausePlot(width, height, size) {
+function PausePlot(width, height, size, scale) {
var canvas = document.createElement("canvas");
canvas.width = this.width = width;
canvas.height = this.height = height;
this.ctx = canvas.getContext('2d');
- this.maxPause = 0;
+ if (typeof scale !== "number") {
+ this.autoScale = true;
+ this.maxPause = 0;
+ } else {
+ this.autoScale = false;
+ this.maxPause = scale;
+ }
+
this.size = size;
// Initialize cyclic buffer for pauses.
PausePlot.prototype.draw = function () {
var first = null;
- this.iteratePauses(function (i, v) {
- if (first === null) {
- first = v;
- }
- this.maxPause = Math.max(v, this.maxPause);
- });
+
+ if (this.autoScale) {
+ this.iteratePauses(function (i, v) {
+ if (first === null) {
+ first = v;
+ }
+ this.maxPause = Math.max(v, this.maxPause);
+ });
+ }
var dx = this.width / this.size;
var dy = this.height / this.maxPause;
this.ctx.save();
- this.ctx.clearRect(0, 0, 480, 240);
+ this.ctx.clearRect(0, 0, this.width, this.height);
this.ctx.beginPath();
this.ctx.moveTo(1, dy * this.pauses[this.start]);
var p = first;
}
-function renderForm() {
- form = document.createElement("form");
- form.setAttribute("action", "javascript:start()");
- var label = document.createTextNode("Time limit in seconds ");
- var input = document.createElement("input");
- input.setAttribute("id", "timelimit");
- input.setAttribute("value", "60");
- var button = document.createElement("input");
+function Form() {
+ function create(tag) { return document.createElement(tag); }
+ function text(value) { return document.createTextNode(value); }
+
+ this.form = create("form");
+ this.form.setAttribute("action", "javascript:start()");
+
+ var table = create("table");
+ table.setAttribute("style", "margin-left: auto; margin-right: auto;");
+
+ function col(a) {
+ var td = create("td");
+ td.appendChild(a);
+ return td;
+ }
+
+ function row(a, b) {
+ var tr = create("tr");
+ tr.appendChild(col(a));
+ tr.appendChild(col(b));
+ return tr;
+ }
+
+ this.timelimit = create("input");
+ this.timelimit.setAttribute("value", "60");
+
+ table.appendChild(row(text("Time limit in seconds"), this.timelimit));
+
+ this.autoscale = create("input");
+ this.autoscale.setAttribute("type", "checkbox");
+ this.autoscale.setAttribute("checked", "true");
+ table.appendChild(row(text("Autoscale pauses plot"), this.autoscale));
+
+ var button = create("input");
button.setAttribute("type", "submit");
button.setAttribute("value", "Start");
- form.appendChild(label);
- form.appendChild(input);
- form.appendChild(button);
- document.body.appendChild(form);
+ this.form.appendChild(table);
+ this.form.appendChild(button);
+
+ document.body.appendChild(this.form);
}
+Form.prototype.remove = function () {
+ document.body.removeChild(this.form);
+};
+
+
function init() {
livePoints = new PointsList;
dyingPoints = new PointsList;
div = document.createElement("div");
document.body.appendChild(div);
- pausePlot = new PausePlot(480, 240, 160);
+ pausePlot = new PausePlot(480, autoScale ? 240 : 500, 160, autoScale ? void 0 : 500);
}
function start() {
- benchmarkTimeLimit = document.getElementById("timelimit").value * 1000;
- document.body.removeChild(form);
+ benchmarkTimeLimit = form.timelimit.value * 1000;
+ autoScale = form.autoscale.checked;
+ form.remove();
init();
render();
}
-renderForm();
+var form = new Form();