2017-01-05 4 views
0

У меня есть пользовательский вид, где я переопределяю метод onDraw и нарисовал круг. Теперь я хочу нарисовать линию от центра круга до вершины круга.Android - нарисовать линию вертикально

Вот мой код ..

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

    canvas.drawRect(0, 0, getWidth(), getHeight(), backgroundPaint); 
    canvas.drawCircle(centerX, centerY, outerRadius, outerCirclePaint); 

    double angleRadians = Math.toRadians(0); 

    double x = (outerRadius * Math.cos(angleRadians)) + centerX; 
    double y = (outerRadius * Math.sin(angleRadians)) + centerY; 

    canvas.drawLine((float)x, (float)y, centerX, centerY, innerCirclePaint); 
} 

CenterX и centerY являются центром окружности outerRadius является радиус окружности

Когда я запускаю это линия рисуется от центра к справа на 90 градусов вместо вершины круга 0 градусов, хотя я сказал, что угол равен 0

Это меня смущает и не может показаться, что я делаю неправильно. Если у кого-то есть идеи по этому поводу, я был бы очень признателен

ответ

1

В математике 0 градусов (также 0 радиан) для единичного круга начинаются справа от круга.

Unit circle

Добавьте 90 градусов или пи/2 радиан, чтобы начать в верхней части.

+0

Спасибо, что отлично работает – Pagrate

Смежные вопросы