mirror of
https://github.com/chartjs/Chart.js.git
synced 2026-03-04 23:44:05 +01:00
90 lines
1.8 KiB
JavaScript
90 lines
1.8 KiB
JavaScript
/*!
|
|
* Chart.js
|
|
* http://chartjs.org/
|
|
* Version: {{ version }}
|
|
*
|
|
* Copyright 2015 Nick Downie
|
|
* Released under the MIT license
|
|
* https://github.com/nnnick/Chart.js/blob/master/LICENSE.md
|
|
*/
|
|
|
|
|
|
(function() {
|
|
|
|
"use strict";
|
|
|
|
var root = this,
|
|
Chart = root.Chart,
|
|
helpers = Chart.helpers;
|
|
|
|
Chart.defaults.global.elements.point = {
|
|
radius: 3,
|
|
backgroundColor: Chart.defaults.global.defaultColor,
|
|
borderWidth: 1,
|
|
borderColor: Chart.defaults.global.defaultColor,
|
|
// Hover
|
|
hitRadius: 1,
|
|
hoverRadius: 4,
|
|
hoverBorderWidth: 1,
|
|
};
|
|
|
|
|
|
Chart.elements.Point = Chart.Element.extend({
|
|
inRange: function(mouseX, mouseY) {
|
|
var vm = this._view;
|
|
|
|
if (vm) {
|
|
var hoverRange = vm.hitRadius + vm.radius;
|
|
return ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(hoverRange, 2));
|
|
} else {
|
|
return false;
|
|
}
|
|
},
|
|
inLabelRange: function(mouseX) {
|
|
var vm = this._view;
|
|
|
|
if (vm) {
|
|
return (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hitRadius, 2));
|
|
} else {
|
|
return false;
|
|
}
|
|
},
|
|
tooltipPosition: function() {
|
|
var vm = this._view;
|
|
return {
|
|
x: vm.x,
|
|
y: vm.y,
|
|
padding: vm.radius + vm.borderWidth
|
|
};
|
|
},
|
|
draw: function() {
|
|
|
|
var vm = this._view;
|
|
var ctx = this._chart.ctx;
|
|
|
|
|
|
if (vm.skip) {
|
|
return;
|
|
}
|
|
|
|
if (vm.radius > 0 || vm.borderWidth > 0) {
|
|
|
|
ctx.beginPath();
|
|
|
|
ctx.arc(vm.x, vm.y, vm.radius || Chart.defaults.global.elements.point.radius, 0, Math.PI * 2);
|
|
ctx.closePath();
|
|
|
|
ctx.strokeStyle = vm.borderColor || Chart.defaults.global.defaultColor;
|
|
ctx.lineWidth = vm.borderWidth || Chart.defaults.global.elements.point.borderWidth;
|
|
|
|
ctx.fillStyle = vm.backgroundColor || Chart.defaults.global.defaultColor;
|
|
|
|
ctx.fill();
|
|
ctx.stroke();
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
}).call(this);
|