CTX.translate(CENTER.getX(), CENTER.getY());
CTX.rotate(-90 + ROTATION_OFFSET);
CTX.translate(-CENTER.getX(), -CENTER.getY());
for (int i = 0, size = STOPS.length - 1; i < size; i++) {
for (double angle = STOPS[i].getOffset() * 360; Double.compare(angle,STOPS[i + 1].getOffset() * 360) <= 0; angle += 0.1) {
CTX.beginPath();
CTX.moveTo(CENTER.getX() - RADIUS, CENTER.getY() - RADIUS);
CTX.setFill(COLOR_LOOKUP.getColorAt(angle / 360));
if (RADIUS > 0) {
CTX.fillArc(CENTER.getX() - RADIUS, CENTER.getY() - RADIUS, 2 * RADIUS, 2 * RADIUS, angle, ANGLE_STEP, ArcType.ROUND);
} else {