Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 计算弧心点,了解它的起点和终点大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这个答案最快的描述是我试图找到白点的坐标.深红色是绘制圆圈上的绘制圆弧(深蓝色).

更长的解释:
我有一个正在扩展View的类,它在画布上绘制一个圆(画布具有相等的宽度和高度):

canvas.drawArc(rectF,360,true,paint); // mOvals is a RectF object with 4 coordinates

然后我绘制一个N%宽的弧(在这种情况下假设为225).弧从-90度开始(因为画布中的0度意味着3’o时钟)并且“偏离”N度(在该示例中为225度).

我试图计算X / Y坐标或剩余弧的中心(红色弧未覆盖的区域;在N和360之间).

我有圆的半径,canvasWidth / 2,如果有一些帮助.

这是我画红弧的方式:

long arcEnd = (360 * fractionnumber) / @R_667_10586@lnumber;
canvas.drawArc(rectF,-90,arcEnd,paint);

解决方法

(原始答案更新.现在可能有点过于冗长,但我希望它有所帮助.)

您正在寻找XY坐标(称为笛卡尔坐标),但这些坐标很难直接计算.诀窍是首先通过Polar坐标.极坐标和笛卡尔是表达同一事物的两种方式,即网格中的一个点,可以相互转换.

极坐标包括距中心点的角度和距离.您可以计算所需的角度,因为您知道需要覆盖的圆的百分比,并且您可以计算距离中心的距离,因为您知道圆的半径.

你的覆盖弧度是225度,所以剩下的是135度,一半是67.5度.因此,您要寻找的点的角度为225 67.5 = 292.5度.该点的半径是圆的半径的一半,因此是canvasWidth / 4.

一旦确定了极坐标(292.5,canvasWidth / 4),就可以使用conversion function将其转换为XY坐标.有一件事有点棘手:Math.cos(doublE)和Math.sin(doublE)期望他们的论点是在radians,而不是学位.在进行转换之前,将292.5 / 360表示为x /2π,通过将该值乘以π/ 180,在这种情况下得到5.1051.

假设canvasWidth为400:

double tdeg 292.5d; // Calculated from arc percentage 
int r =  100;      // Calculated from canvas width

double Trad = tdeg * (Math.PI/180d); // = 5.1051

int x = (int) r * Math.cos(Trad);
int y = (int) r * Math.sin(Trad);

大佬总结

以上是大佬教程为你收集整理的android – 计算弧心点,了解它的起点和终点全部内容,希望文章能够帮你解决android – 计算弧心点,了解它的起点和终点所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。