private void drawTickMarks(final GraphicsContext CTX) {
CTX.clearRect(0, 0, size, size);
double sinValue;
double cosValue;
double startAngle = getSkinnable().getStartAngle();
Point2D center = new Point2D(size * 0.5, size * 0.5);
double stdLineWidth = size * 0.003;
double rangeLineWidth = size * 0.007;
for (double angle = 0, counter = getSkinnable().getMinValue() ; Double.compare(counter, getSkinnable().getMaxValue()) <= 0 ; angle -= angleStep / 3, counter+= 0.33333) {
sinValue = Math.sin(Math.toRadians(angle + startAngle));
cosValue = Math.cos(Math.toRadians(angle + startAngle));
Point2D innerPoint = new Point2D(center.getX() + size * 0.368 * sinValue, center.getY() + size * 0.368 * cosValue);
Point2D outerPoint = new Point2D(center.getX() + size * 0.457 * sinValue, center.getY() + size * 0.457 * cosValue);
CTX.setStroke(getSkinnable().getTickMarkFill());
if (getSkinnable().isTargetEnabled() &&
counter > getSkinnable().getValue() && counter < getSkinnable().getTarget() ||
counter > getSkinnable().getTarget() && counter < getSkinnable().getValue()) {
CTX.setLineWidth(rangeLineWidth);
} else {
CTX.setLineWidth(stdLineWidth);
}
CTX.setLineCap(StrokeLineCap.ROUND);
CTX.strokeLine(innerPoint.getX(), innerPoint.getY(), outerPoint.getX(), outerPoint.getY());
}
}