需要的前置条件
圆的中心坐标(x,y)
半径 radius
被求点的角度 angle
计算公式
pointX = x + radius * cos(angle * PI / 2)
pointY = y + radius * sin(angle * PI / 2)
Android
pointX = x + radius * Math.cos(Math.toRadians(angle))
pointY = y + radius * Math.sin(Math.toRadians(angle))
应用场景?
![](https://img.haomeiwen.com/i2622219/6daffb2213f516b0.png)
比如求出某个扇形的边上的中心点位置,然后画出线条
前置条件我们都具备(x,y),radius,angle
通过上面的Android公式就能得出来了!
那么红色扇形偏移怎么实现呢?
我们可以先考虑canvas偏移得到,但是,偏移多少距离才是正确的
![](https://img.haomeiwen.com/i2622219/57bde934427f1d60.jpg)
由于前面已经计算出x1,y1,我们偏移100;那就是等同于半径+100;
同理,半径在增加+100后计算出x2,y2;用
offsetX = x2 - x1;
offsetY = y2 - y1;
//先偏移
canvas.translate(offsetX ,offsetY );
//画扇形
就可以实现偏移
网友评论