UNPKG

angular-sunburst-radar-chart

Version:
31 lines 5.52 kB
export function polarToCartesian(centerX, centerY, radius, angleInDegrees) { const adjustedViewPortAngle = (angleInDegrees - 90); const angleInRadians = adjustedViewPortAngle * Math.PI / 180.0; return { x: centerX + (radius * Math.cos(angleInRadians)), y: centerY + (radius * Math.sin(angleInRadians)) }; } export function getLargeArcFlag(startAngle, endAngle) { return (endAngle - startAngle) <= 180 ? '0' : '1'; } export function distanceBetweenTwoPoints(centerX, centerY, radius, startAngle, endAngle) { const startPoint = polarToCartesian(centerX, centerY, radius, startAngle); const endPoint = polarToCartesian(centerX, centerY, radius, endAngle); const distFromStartToEnd = Math.sqrt(Math.pow((startPoint.x - endPoint.x), 2) + Math.pow((startPoint.y - endPoint.y), 2)); return Math.abs(distFromStartToEnd); } export function calculateAngleRadian({ x, y, centerX, centerY, maxRad }) { let angleInRadian = Math.atan2(x - centerY, y - centerX); angleInRadian = adjustAngleRadianDifference(angleInRadian, maxRad); return angleInRadian; } export function adjustAngleRadianDifference(input, maxRad) { let angleInRadian = input; angleInRadian += maxRad / 4; if (angleInRadian < 0) { angleInRadian += maxRad; } return angleInRadian; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ25vbWV0cnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXN1bmJ1cnN0LXJhZGFyLWNoYXJ0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3RyaWdub21ldHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjO0lBRXZFLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEQsTUFBTSxjQUFjLEdBQUcscUJBQXFCLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFL0QsT0FBTztRQUNMLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDakQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFVBQVUsRUFBRSxRQUFRO0lBR2xELE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRO0lBRXJGLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBR3RFLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUgsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFHdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUM7SUFFbkUsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUV6RCxhQUFhLEdBQUcsMkJBQTJCLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRW5FLE9BQU8sYUFBYSxDQUFDO0FBRXZCLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsS0FBSyxFQUFFLE1BQU07SUFDdkQsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzFCLGFBQWEsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRTVCLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRTtRQUNyQixhQUFhLElBQUksTUFBTSxDQUFDO0tBRXpCO0lBQ0QsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBwb2xhclRvQ2FydGVzaWFuKGNlbnRlclgsIGNlbnRlclksIHJhZGl1cywgYW5nbGVJbkRlZ3JlZXMpIHtcclxuXHJcbiAgY29uc3QgYWRqdXN0ZWRWaWV3UG9ydEFuZ2xlID0gKGFuZ2xlSW5EZWdyZWVzIC0gOTApO1xyXG4gIGNvbnN0IGFuZ2xlSW5SYWRpYW5zID0gYWRqdXN0ZWRWaWV3UG9ydEFuZ2xlICogTWF0aC5QSSAvIDE4MC4wO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgeDogY2VudGVyWCArIChyYWRpdXMgKiBNYXRoLmNvcyhhbmdsZUluUmFkaWFucykpLFxyXG4gICAgeTogY2VudGVyWSArIChyYWRpdXMgKiBNYXRoLnNpbihhbmdsZUluUmFkaWFucykpXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExhcmdlQXJjRmxhZyhzdGFydEFuZ2xlLCBlbmRBbmdsZSkge1xyXG5cclxuXHJcbiAgcmV0dXJuIChlbmRBbmdsZSAtIHN0YXJ0QW5nbGUpIDw9IDE4MCA/ICcwJyA6ICcxJztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRpc3RhbmNlQmV0d2VlblR3b1BvaW50cyhjZW50ZXJYLCBjZW50ZXJZLCByYWRpdXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKSB7XHJcblxyXG4gIGNvbnN0IHN0YXJ0UG9pbnQgPSBwb2xhclRvQ2FydGVzaWFuKGNlbnRlclgsIGNlbnRlclksIHJhZGl1cywgc3RhcnRBbmdsZSk7XHJcbiAgY29uc3QgZW5kUG9pbnQgPSBwb2xhclRvQ2FydGVzaWFuKGNlbnRlclgsIGNlbnRlclksIHJhZGl1cywgZW5kQW5nbGUpO1xyXG5cclxuXHJcbiAgY29uc3QgZGlzdEZyb21TdGFydFRvRW5kID0gTWF0aC5zcXJ0KE1hdGgucG93KChzdGFydFBvaW50LnggLSBlbmRQb2ludC54KSwgMikgKyBNYXRoLnBvdygoc3RhcnRQb2ludC55IC0gZW5kUG9pbnQueSksIDIpKTtcclxuICByZXR1cm4gTWF0aC5hYnMoZGlzdEZyb21TdGFydFRvRW5kKTtcclxuXHJcblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQW5nbGVSYWRpYW4oe3gsIHksIGNlbnRlclgsIGNlbnRlclksIG1heFJhZH0pIHtcclxuXHJcbiAgbGV0IGFuZ2xlSW5SYWRpYW4gPSBNYXRoLmF0YW4yKHggLSBjZW50ZXJZLCB5IC0gY2VudGVyWCk7XHJcblxyXG4gIGFuZ2xlSW5SYWRpYW4gPSBhZGp1c3RBbmdsZVJhZGlhbkRpZmZlcmVuY2UoYW5nbGVJblJhZGlhbiwgbWF4UmFkKTtcclxuXHJcbiAgcmV0dXJuIGFuZ2xlSW5SYWRpYW47XHJcblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0QW5nbGVSYWRpYW5EaWZmZXJlbmNlKGlucHV0LCBtYXhSYWQpIHtcclxuICBsZXQgYW5nbGVJblJhZGlhbiA9IGlucHV0O1xyXG4gIGFuZ2xlSW5SYWRpYW4gKz0gbWF4UmFkIC8gNDtcclxuXHJcbiAgaWYgKGFuZ2xlSW5SYWRpYW4gPCAwKSB7XHJcbiAgICBhbmdsZUluUmFkaWFuICs9IG1heFJhZDtcclxuXHJcbiAgfVxyXG4gIHJldHVybiBhbmdsZUluUmFkaWFuO1xyXG59XHJcblxyXG5cclxuIl19