Как правильно нарисовать равноудаленные точки круга от центра?

Задача состоит в том, чтобы нарисовать 7 равноудаленных точек от центра круга. Но получается немного криво. Помогите подкорректировать код (см. ниже):

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    setUpDrawingArea();
    paint.setAntiAlias(true);
    float centerX = width / 2;
    float centerY = height / 2;

    for (int i = 0; i < colours.size(); i++) {
        paint.setColor(colours.get(i));
        float stat = stats.get(i) / 100f;
        percent = (width * 1f) * stat;
        int arcLeft = 50;
        int arcTop = 50;
        int arcRight = right - 50;
        int arcBottom = bottom - 50;
        float statRadius = arcLeft + ((1 - stat) * (arcRight / 2.2f));
        canvas.drawArc(arcLeft + statRadius, arcTop + statRadius, arcRight - statRadius, arcBottom - statRadius, startAngle, sweepAngle, true, paint);
        startAngle += sweepAngle;
    }

    startAngle = 0;
    float degree;

    for (int i = 0; i < icons.length; i++) {
        degree = startAngle + (sweepAngle / 2);
        float newX = centerX + (float) (Math.cos(Math.toRadians(degree)) * (width / 2.25f));
        float newY = centerY + (float) (Math.sin(Math.toRadians(degree)) * (width / 2.25f));
        icon = BitmapFactory.decodeResource(context.getResources(), icons[i]);
        int iconWidth = width / 6;
        int iconHeight = height / 6;
        resizedIcon = Bitmap.createScaledBitmap(icon, iconWidth, iconHeight, false);
        resizedIcon = rotateBitmap(resizedIcon, degree - 270);
        canvas.drawBitmap(resizedIcon, newX - (iconWidth / 2f), newY - (iconHeight / 2f), paint);
        startAngle += sweepAngle;
    }
}

Ответы (0 шт):