Python中如何将角度默认弧度改为角度以计算圆交点坐标?
解决角度转圆坐标的问题
你遇到的问题其实很典型——Python的math.cos()和math.sin()函数默认只接受弧度作为输入参数,不是我们日常用的角度值,这就是你最初代码输出错误的核心原因。
为什么用math.radians()后x是极小值?
你添加math.radians(degree)后的输出6.123233995736766e-16 10.0其实是正确的!那个看起来像0的极小值是浮点数计算的精度误差:90度转换成弧度是π/2,理论上cos(π/2)=0,但计算机用二进制存储浮点数时,无法完全精确表示π这类无理数,所以会产生一个无限接近0的极小值,本质上就是0。
正确的代码写法
如果想要更直观的结果,可以通过阈值判断或者取整来修正这个精度问题:
import math degree = 90 radius = 10 # 先将角度转换为弧度(这一步是关键!) radian = math.radians(degree) x = radius * math.cos(radian) y = radius * math.sin(radian) # 处理浮点数精度误差,将极小值近似为0 x = 0.0 if abs(x) < 1e-10 else x y = 0.0 if abs(y) < 1e-10 else y print(x, y) # 输出:0.0 10.0
为什么math.degrees()完全不对?
你用math.degrees(degree)的方向搞反了:这个函数是把弧度转换成角度,而不是角度转弧度。当你传入90(角度)时,它会把90弧度转换成对应的角度(大概5156.6度),这样计算出来的sin/cos值自然完全不符合预期,所以这个用法是错误的。
总结关键点
- 永远记得:Python的
math模块三角函数只认弧度,必须用math.radians()把角度转成弧度后再计算 - 浮点数精度误差是正常现象,可以通过简单的逻辑修正得到直观结果
- 别搞反
math.radians()和math.degrees()的作用:前者是角度→弧度,后者是弧度→角度
内容的提问来源于stack exchange,提问作者crazicrafter1
相关产品推荐
相关产品推荐

