Reputation: 322
I'm really stuck on how to go about programming this. How to draw a circle in Android Canvas
with a radius and points around the edge?
What is best approach to design this?
Upvotes: 9
Views: 3666
Reputation: 3027
Well; drawing a circle is a very straightforward, inside your onDraw()
method add this line
canvas.drawCircle(cX, cY, radius, paint);
Simply provide the center point's x and y values and radius and paint object as well.
And for the pins around the corner you can go like this, e.g you want a pin at 30 degrees; with a simple trigonometric calculation, your pin's x and y values can be these;
pX = mX + radius * Math.cos(Math.toRadians(30));
pY = mY + radius * Math.sin(Math.toRadians(30));
So you can draw your pin at these x and y values respectively, also the degree can be changed.
Upvotes: 3
Reputation: 71
the point(cX,cY) you want draw
the center point(centerX,centerY) of the circle
the radius of the circle
the angle is the point(cX,cY) on the circle.
also see the image:
https://i.sstatic.net/2Dx2r.jpg
the code:
cX = centerX + radius*Math.cos(angle*Math.PI/180);
cY = centerY + radius*Math.sin(angle*Math.PI/180);
canvas.drawCircle(cX, cY, radius, paint);
Upvotes: 7