我有一个圆圈,我想在圆圈上放置一个图像。
我知道角度和圆半径,我需要获得放置图像的x和y坐标。
图像必须在圆圈上而不是IN。
代码:
private void placeImageOnCircle(ImageView circle, RelativeLayout imageToMove, int angle)
{
int radius = circle.getWidth()/2;
// get marginX and marginY...
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(marginX, marginY, 0, 0);
imageToMove.setLayoutParams(params);
}
答案 0 :(得分:1)
你知道圆圈的x和y,你知道半径。所以你知道它在x +半径的3点钟位置,在12点位置它的y +半径。
然而,要获得其他积分,你需要一些数学。
x =半径* cos(角度)+ xCenter;
y =半径* sin(角度)+ yCenter;
角度必须是弧度。所以你可能会做的是
x = radius * Math.cos(Math.toRadians(angle)) + xCenter
y = radius * Math.sin(Math.toRadians(angle)) + yCenter
还有关于它的其他SO问题,如
- Find point on Circle on Android
- Calculate points around a circle in android
- Getting Coordinates of a Point in a circle