math - 计算坡度 - 仅用角度

标签 math formula angle

我想计算斜率(%) 例如我只有角度: (可能是 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/

相关文章:

algorithm - APR计算公式

javascript - Jquery/Javascript 数学 : Why are these two 1 line math problems not giving the same answer?

ruby - 我在哪里可以找到 Ruby 中的数学密集型应用程序

algorithm - 邀请人们参加聚会的最佳算法

php - 数独算法解释公式

r - 如何在R中的公式中选择公式的一部分?

CSS3 - 帮助创建两个 100% 页面宽度的特定 div 形状(见附图)

math - 如何从前两个数据包推断新的四元数旋转?

excel - 在纯 Excel 中,返回命名范围引用地址的最佳方式(无 VBA)

java - 将 X,Y 转换为角度