我想计算斜率(%) 例如我只有角度: (可能是 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
最佳答案
根据您的数据,在每个象限中,您在前 45 度内从 0 线性上升到 100%,并在第二个 45 度内回落至 0%。
因此,您可以将所有角度映射到第一象限 0 <= angle < 90
,其中:
angle = angle % 90
然后,如果它位于该象限的后半部分,则将其围绕 45 度线旋转进行变换:
if angle >= 45:
angle = 90 - angle
现在你有一个角度0 <= angle < 45
这实际上是距最近象限边界的“距离”,您可以这样做:
percent = angle * 100 / 45
以百分比形式表示。
所以,简而言之:
angle = angle % 90
if angle >= 45:
angle = 90 - angle
percent = angle * 100 / 45
作为概念证明,下面是一些显示其实际效果的 Python 代码:
for i in range (361):
angle = i % 90
if angle >= 45:
angle = 90 - angle
percent = angle * 100 // 45
print("%d -> %d" % (i, percent))
连同删节输出:
0 -> 0
1 -> 2
2 -> 4
3 -> 6
::
43 -> 95
44 -> 97
45 -> 100
46 -> 97
47 -> 95
48 -> 93
49 -> 91
::
87 -> 6
88 -> 4
89 -> 2
90 -> 0
91 -> 2
92 -> 4
93 -> 6
::
352 -> 17
353 -> 15
354 -> 13
355 -> 11
356 -> 8
357 -> 6
358 -> 4
359 -> 2
360 -> 0
关于math - 计算坡度 - 仅用角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32325814/