Я изо всех сил пытаюсь нарисовать эту форму на android холсте. Я уже использовал все, что можно найти здесь. но это работает на одних углах, а не на других.

Допустим, эту фигуру можно нарисовать при определенном угле (в примере = 90 °). У нас также есть координаты трех точек формы (A, B и C)
Вот код, который я сейчас использую:
// (cx,cy) is the point A
// (pos2LegX, pos2LegY) is the point C
// radDirection is the drawn example 90°
float radDirection = (float) (Math.toRadians(this.rad));
float pos2LegX = (float) (cx + radius * Math.sin(radDirection)) ;
float pos2LegY = (float) (cy - radius * Math.cos(radDirection)) ;
// (arcPosX, arcPosY) is the point B
float arcPosX = pos2LegX + (float) ((radius/2) * Math.abs(Math.cos(radDirection))) ;
float arcPosY = pos2LegY - (float) ((radius/2) * Math.abs(Math.sin(radDirection))) ;
// the rect to use with the drawers
final RectF oval = new RectF();
oval.set(pos2LegX , pos2LegY - radius/4, pos2LegX + radius/2, pos2LegY+ radius/4);
// draw the shape
// draw AC
canvas.drawLine(cx,cy,pos2LegX, pos2LegY ,paint);
// draw the arc CB
int startAngle = (int) (180 / Math.PI * Math.atan2(arcPosY - pos2LegY, arcPosX - pos2LegX));
canvas.drawArc(oval,startAngle,180,false,paint);
// draw BA
canvas.drawLine(arcPosX,arcPosY,cx,cy,paint);
Это может работать, например, если radDirection = 180, но если radDirection = 000, то это дает следующее: 
Но здесь форма должна быть в противоположном направлении с ar c вогнутым к центру cx, cy.
Любое решение было бы большой помощью для меня.
Заранее спасибо :)