java - 如果在 Android 中已知中心和起始坐标以及扫描角度,如何计算圆弧终点的坐标..?

标签 java android math geometry pie-chart

我正在制作一个饼图,在其中我绘制了具有已知扫描角度的弧。现在我想在每个弧的中心显示标签,或者说从每个弧的中心画一条线。

鉴于我知道中心坐标、起始坐标、扫角和半径,我想计算结束坐标。

我也尝试过绘制一个匹配所有坐标的三角形并使用距离公式,但我不知道如何在 java 中求解方程。

请给我一个合适的解决方案。

最佳答案

在 vector 中工作。设 A 为从圆心到圆弧起点的 vector 。计算方式

A = start_point - centre

theta 为扫描角(以弧度为单位)。使用旋转矩阵围绕圆心旋转圆弧起点。 http://en.wikipedia.org/wiki/Rotation_matrix

明确地说,

newpoint_x = cos(theta)*A_x + sin(theta)*A_y
newpoint_y = -sin(theta)*A_x + cos(theta)*A_y

其中 A_xA 的 x 分量(对于 A_y 也是如此)。然后

newpoint = centre + (newpoint_x,newpoint_y)

是你想要的点。可能是该点以错误的方式(逆时针)旋转,如果是这样,只需使用

theta = -theta

相反。这应该适合你。

如果要计算圆弧的中点,只需使用

theta = theta / 2

关于java - 如果在 Android 中已知中心和起始坐标以及扫描角度,如何计算圆弧终点的坐标..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13231797/

相关文章:

javascript - Android Chrome 网站

java - 字符串连接和附加在 foreach 中不起作用

仅当我使用减法时,jQuery 才返回数字

有序组合算法

java - 从数据库中获取不重复的数据

math - 更改 Row-major 4x4 转换矩阵的 'handedness'

java - 检查断开的链接

java.lang.ClassNotFoundException : org. apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuterFilter 错误

java - 将注释移至 IntelliJ IDEA 中的上一行

java - 在Jboss webservice中使用Log4j时写入重复数据