两点间的角度计算
如何用python写,以A点为X轴(0度),至B点之间的角度。 import mathx = 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) Peteryo01223 发表于 2021-2-25 17:29
十分感谢,就是没太看懂。。。能讲一下嘛? 本帖最后由 Peteryo01223 于 2021-2-25 17:44 编辑
jerome123 发表于 2021-2-25 17:35
十分感谢,就是没太看懂。。。能讲一下嘛?
acos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。acos() 返回的是 x的反余弦弧度值。
其他就是数学问题了,即:直角三角形中,已知长、高,求一个角的角度。
Peteryo01223 发表于 2021-2-25 17:40
acos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。acos() 返回的是 x的 ...
可是这里是直接以0,0作为X轴了吧,我要自定义X轴呢? Peteryo01223 发表于 2021-2-25 17:40
acos()是不能直接访问的,需要导入 math 模块,然后通过 math 静态对象调用该方法。acos() 返回的是 x的 ...
比如A点是(15,20) B点是(50,70)这种呢 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 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度 Peteryo01223 发表于 2021-2-25 17:56
run后
非常感谢!! jerome123 发表于 2021-2-25 21:03
非常感谢!!
有机会,帮我点个“最佳答案”哈 Peteryo01223 发表于 2021-2-26 08:31
有机会,帮我点个“最佳答案”哈
在哪里点呢?? jerome123 发表于 2021-3-25 23:58
在哪里点呢??
本帖子,你是楼主,应该能看到每个回帖的右上方,有个“绿色”的button,写着“设为最佳答案”
页:
[1]