let clear_arrows = function() {
for (let i = 0; i < arrows.length; ++i) {
if (arrows[i].svg) {
- if (arrows[i].svg.parentElement) {
- arrows[i].svg.parentElement.removeChild(arrows[i].svg);
- }
+ arrows[i].svg.remove();
delete arrows[i].svg;
}
}
return;
}
- let zoom_factor = document.getElementById("board").getBoundingClientRect().width / 400.0;
+ let board_width = parseInt(document.querySelector(".board-b72b1").style.width, 10);
+ let zoom_factor = board_width / 400.0;
let line_width = arrow.line_width * zoom_factor;
let arrow_size = arrow.arrow_size * zoom_factor;
- let square_width = document.querySelector(".square-a8").getBoundingClientRect().width;
+ let square_width = board_width / 8;
let from_y, to_y, from_x, to_x;
if (board.orientation() === 'black') {
from_y = (arrow.from_row + 0.5)*square_width;
let SVG_NS = "http://www.w3.org/2000/svg";
let XHTML_NS = "http://www.w3.org/1999/xhtml";
let svg = document.createElementNS(SVG_NS, "svg");
- svg.setAttribute("width", /** @type{number} */ (document.getElementById("board").getBoundingClientRect().width));
- svg.setAttribute("height", /** @type{number} */ (document.getElementById("board").getBoundingClientRect().height));
+ svg.setAttribute("width", board_width);
+ svg.setAttribute("height", board_width);
svg.setAttribute("style", "position: absolute");
svg.setAttribute("position", "absolute");
svg.setAttribute("version", "1.1");
let max_score = 1;
let last_score = null;
let scores = [];
- let scores_missing = [];
for (let halfmove_num = first_move_num; halfmove_num <= last_move_num; ++halfmove_num) {
if (data['score_history'][halfmove_num]) {
let score = compute_plot_score(data['score_history'][halfmove_num]);
last_score = score;
if (score < min_score) min_score = score;
if (score > max_score) max_score = score;
- scores_missing.push(false);
- } else {
- scores_missing.push(true);
}
scores.push(last_score);
}
if (score < min_score) min_score = score;
if (score > max_score) max_score = score;
}
+ if (max_score - min_score < 100) {
+ if (Math.abs(max_score) >= Math.abs(min_score)) {
+ max_score = min_score + 100;
+ } else {
+ min_score = max_score - 100;
+ }
+ }
const h = scorespark.getBoundingClientRect().height;
hlcolor[1] = Math.min(hlcolor[1] * 1.4, 1.0);
hlcolor[2] = Math.min(hlcolor[2] * 1.4, 1.0);
}
- let alpha = scores_missing[i] ? 50 : 100;
- rect.style.fill = 'rgba(' + color[0]*100.0 + '%, ' + color[1]*100.0 + '%, ' + color[2]*100.0 + '%, ' + alpha + '%)';
+ rect.style.fill = 'rgb(' + color[0]*100.0 + '%, ' + color[1]*100.0 + '%, ' + color[2]*100.0 + '%)';
// score_history contains the Nth _position_, but format_tooltip
// wants to format the Nth _move_; thus the -1.