blob: 3677f6835faf2bfdaaa019c0ab401ac2649a4b81 [file] [log] [blame]
// *********** HERE STARTS circle-mode.js *************
circleMode = false;
function initCircleMode() {
document.querySelector("#circle-mode").addEventListener('click', function() {
circleMode = !circleMode;
document.querySelector("#circle-mode i").innerText = (circleMode ? "scatter_plot" : "trip_origin");
s.graph.nodes().forEach(function(n) {
n.x = (circleMode ? n.circleX : n.originalX);
n.y = (circleMode ? n.circleY : n.originalY);
n.size = 10;
});
s.refresh();
});
}
function isInRect(x, y, rect) {
if (x < -10000 || x > 10000) return true;
if (y < -10000 || y > 10000) return true;
var ans = true;
var c = crossProd(rect[0], rect[1], x, y);
for (var i = 1; i < 4; i++) {
var temp = crossProd(rect[i], rect[(i+1)%4], x, y);
if (c*temp < 0) ans = false;
}
return ans;
}
function crossProd(r1, r2, x, y) {
return r1[0]*r2[1] + r2[0]*y + x*r1[1] - r1[0]*y - r2[0]*r1[1] - x*r2[1];
}