UNPKG

@formant/ava-react

Version:

React components of AVA.

19 lines 635 B
/** * 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; }