react-speedometer
Version:
Cool speedometer for React
15 lines (14 loc) • 673 B
JavaScript
export const polarToCartesian = (centerX, centerY, radius, angleInDegrees) => {
const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180.0;
return {
x: centerX + radius * Math.cos(angleInRadians),
y: centerY + radius * Math.sin(angleInRadians),
};
};
export const getCirclePath = (x, y, radius, startAngle, endAngle) => {
const start = polarToCartesian(x, y, radius, endAngle * 0.9999);
const end = polarToCartesian(x, y, radius, startAngle);
const largeArcFlag = endAngle - startAngle <= 180 ? '0' : '1';
const d = ['M', start.x, start.y, 'A', radius, radius, 0, largeArcFlag, 0, end.x, end.y];
return d.join(' ');
};