问题:
已知图中的中心圆点在屏幕上的坐标为(x, y),分别求出点1、2、3、4的坐标值!
解决方法:
可以利用Android的SDK自带类 android.graphics.Path和android.graphics.PathMeasure,
1)以圆点坐标(x,y)为中心画一个矩形RectF,
2)再通过Path类画一个90度(180—270)的内切圆弧路径,
3)然后将该路径平分成3段,
4)再利用PathMeasure分别测量出各个点的坐标值
代码如下:
private void calculateItemPositions() {
// Create an arc that starts from startAngle and ends at endAngle
// in an area that is as large as 4*radius^2
//获取中心圆点的坐标值
Point center = getActionViewCenter();
//内切弧形路径
//以圆点坐标(x,y)为中心画一个矩形RectF
RectF area = new RectF(center.x - radius, center.y - radius, center.x + radius, center.y + radius);
Path orbit = new Path();
//通过Path类画一个90度(180—270)的内切圆弧路径
orbit.addArc(area, startAngle, endAngle - startAngle);
PathMeasure measure = new PathMeasure(orbit, false);
// Prevent overlapping when it is a