jerome123 发表于 2021-2-25 17:02:43

两点间的角度计算

如何用python写,以A点为X轴(0度),至B点之间的角度。

Peteryo01223 发表于 2021-2-25 17:29:25

import math

x = float(input('请输入B点的高:'))
y = float(input('请输入B点的长:'))
z = math.sqrt(x*x+y*y)
angle = math.degrees(math.acos((x*x-y*y-z*z)/(-2*y*z)))

print("以X为轴,角度为%d度" % angle)

jerome123 发表于 2021-2-25 17:35:23

Peteryo01223 发表于 2021-2-25 17:29


十分感谢,就是没太看懂。。。能讲一下嘛?

Peteryo01223 发表于 2021-2-25 17:40:30

本帖最后由 Peteryo01223 于 2021-2-25 17:44 编辑

jerome123 发表于 2021-2-25 17:35
十分感谢,就是没太看懂。。。能讲一下嘛?

acos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。acos() 返回的是 x的反余弦弧度值。
其他就是数学问题了,即:直角三角形中,已知长、高,求一个角的角度。

jerome123 发表于 2021-2-25 17:44:06

Peteryo01223 发表于 2021-2-25 17:40
acos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。acos() 返回的是 x的 ...

可是这里是直接以0,0作为X轴了吧,我要自定义X轴呢?

jerome123 发表于 2021-2-25 17:45:51

Peteryo01223 发表于 2021-2-25 17:40
acos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。acos() 返回的是 x的 ...

比如A点是(15,20)    B点是(50,70)这种呢

Peteryo01223 发表于 2021-2-25 17:47:43

jerome123 发表于 2021-2-25 17:44
可是这里是直接以0,0作为X轴了吧,我要自定义X轴呢?

import math

temp = float(input('请输入自定义的x轴的高度:'))

x = float(input('请输入B点的高:'))-temp
y = float(input('请输入B点的长:'))
z = math.sqrt(x*x+y*y)
angle = math.degrees(math.acos((x*x-y*y-z*z)/(-2*y*z)))

print("以X为轴,角度为%d度" % angle)

Peteryo01223 发表于 2021-2-25 17:56:23

本帖最后由 Peteryo01223 于 2021-2-25 18:01 编辑

jerome123 发表于 2021-2-25 17:45
比如A点是(15,20)    B点是(50,70)这种呢

import math
A_x = float(input('请输入A点的高:'))
A_y = float(input('请输入A点的长:'))
x = float(input('请输入B点的高:'))-A_x
y = float(input('请输入B点的长:'))-A_y
z = math.sqrt(x*x+y*y)
angle = math.degrees(math.acos((x*x-y*y-z*z)/(-2*y*z)))

print("以X为轴,角度为%d度" % angle)
run后
================== RESTART: C:/Users/user/Desktop/20210225c.py =================
请输入A点的高:15
请输入A点的长:20
请输入B点的高:50
请输入B点的长:70
以水平为轴,角度为34度

jerome123 发表于 2021-2-25 21:03:43

Peteryo01223 发表于 2021-2-25 17:56
run后

非常感谢!!

Peteryo01223 发表于 2021-2-26 08:31:40

jerome123 发表于 2021-2-25 21:03
非常感谢!!

有机会,帮我点个“最佳答案”哈

jerome123 发表于 2021-3-25 23:58:55

Peteryo01223 发表于 2021-2-26 08:31
有机会,帮我点个“最佳答案”哈

在哪里点呢??

Peteryo01223 发表于 2021-3-26 13:41:00

jerome123 发表于 2021-3-25 23:58
在哪里点呢??

本帖子,你是楼主,应该能看到每个回帖的右上方,有个“绿色”的button,写着“设为最佳答案”
页: [1]
查看完整版本: 两点间的角度计算