我想以%计算斜率 例如我只有角度: (可能是PHP或Javascript) 坡度(22.5)// 50%
0=0%
22.5=50%
45=100%
67,5=50%
90=0%
112,5=50%
135=100%
180=0
202,5=50%
225=100%
270=0
答案 0 :(得分:2)
根据您的数据显示,在每个象限中,您在前45度内从0线性上升到100%,在第二个45度下降回0%。
因此,您可以将所有角度映射到第一个象限getViewTreeObserver()
,并使用:
0 <= angle < 90
然后,如果它位于该象限的后半部分,则使用围绕45度线的旋转进行转换:
angle = angle % 90
现在你有一个角度if angle >= 45:
angle = 90 - angle
,它实际上是&#34;距离&#34;从最近的象限边界,您可以这样做:
0 <= angle < 45
以百分比表示。
简而言之:
percent = angle * 100 / 45
作为概念的证明,这里有一些Python代码可以显示它的实际效果:
angle = angle % 90
if angle >= 45:
angle = 90 - angle
percent = angle * 100 / 45
以及删节输出:
for i in range (361):
angle = i % 90
if angle >= 45:
angle = 90 - angle
percent = angle * 100 // 45
print("%d -> %d" % (i, percent))
答案 1 :(得分:1)
使用与paxdiablo类似的推理我想出了这个单行
slope = 100*abs(((angle+45) mod 90)-45)/45;
您应该可以在此处查看情节:go to wolframalpha
答案 2 :(得分:-1)
斜率= ABS(TAN(角度))* 100
¿这就是你想要的吗?