Kiss and overlap detection -- Michael Buen
Was tasked to detect kiss or overlap between points
HTML
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
JavaScript
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'scatter',
zoomType: 'xy'
},
title: {
text: 'Height Versus Weight of 507 Individuals by Gender'
},
subtitle: {
text: 'Source: Heinz 2003'
},
xAxis: {
title: {
enabled: true,
text: 'Height (cm)'
},
startOnTick: true,
endOnTick: true,
showLastLabel: true
},
yAxis: {
title: {
text: 'Weight (kg)'
}
},
tooltip: {
formatter: function() {
// console.log(this);
// Michael Buen is here
var search = this.series.chart.series[0].data;
var a = this.point;
var overlapCount = 0;
for(var i in search) {
var b = search[i];
var d = getDistance(a, b);
// choose an overlap threshold
var kiss = 5 * 2;
var halfOverlap = 5;
var fullOverlap = 2.5;
if (d <= kiss) {
++overlapCount;
}
}
return this.x +' cm, '+ this.y +' kg' + a.plotX + ' <br/><b>Overlaps:</b> ' + overlapCount;
}
...