colorjs.io
Version:
Let’s get serious about color
45 lines (39 loc) • 679 B
JavaScript
export function constrain (angle) {
return ((angle % 360) + 360) % 360;
}
export function adjust (arc, angles) {
if (arc === "raw") {
return angles;
}
let [a1, a2] = angles.map(constrain);
let angleDiff = a2 - a1;
if (arc === "increasing") {
if (angleDiff < 0) {
a2 += 360;
}
}
else if (arc === "decreasing") {
if (angleDiff > 0) {
a1 += 360;
}
}
else if (arc === "longer") {
if (-180 < angleDiff && angleDiff < 180) {
if (angleDiff > 0) {
a2 += 360;
}
else {
a1 += 360;
}
}
}
else if (arc === "shorter") {
if (angleDiff > 180) {
a1 += 360;
}
else if (angleDiff < -180) {
a2 += 360;
}
}
return [a1, a2];
}