@formant/ava-react
Version:
React components of AVA.
19 lines • 635 B
JavaScript
/**
* make data between 0 ~ 1
*/
function normalizeProportion(data) {
if (typeof data !== 'number') return 0;
if (data > 1) return 1;
if (data < 0) return 0;
return data;
}
export function getArcPath(size, data) {
var cx = size / 2;
var cy = size / 2;
var r = size / 2;
var angle = normalizeProportion(data) * 2 * Math.PI;
var dx = cx + r * Math.sin(angle);
var dy = cy - r * Math.cos(angle);
var path = "\n M".concat(cx, " ", 0, "\n A ").concat(cx, " ").concat(cy, " 0 ").concat(angle > Math.PI ? 1 : 0, " 1 ").concat(dx, " ").concat(dy, "\n L ").concat(cx, " ").concat(cy, " Z\n ");
return path;
}