为了账号安全,请及时绑定邮箱和手机立即绑定

请教下这个代码里,返回的nx,ny是怎么算出来的,我算出来的结果跟返回值完全不一样!

import math
def move(x, y, step, angle):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
print move(100,100,60,math.pi/6)

运行结果是(151.96152422706632,70)

但是我根据数学公式算出来的结果是  nx = 100 + 60 * cos(3.1415926/6) =  159.99
                                  ny = 100 - 60 * sin(3.1415926/6)=  99.45
                                  
请问是我的理解哪里出了问题呢   我是小白,请教大家,谢谢!

正在回答

3 回答

出现在三角函数如cos(),sin(),tan()的()中进行计算时

π为180°而不为3.14

(3.14为周长与直径的比值,180°为半圆的角度,判断表示的是180°还是π,要看他用π来计算三角函数还是周长、面积)

这里因为是三角函数计算,所以当做180°来计算,pi/6即π/6为30°,应当做的计算为cos30°和sin30°


1 回复 有任何疑惑可以回复我~

cos(pi/6)和sin(pi/6)这里面的pi/6是角度30°哦,也就是cos(30°)和sin(30°),数学里面,cos(30°)=根3/2,sin(30°)=1/2,如下图表格

https://img1.sycdn.imooc.com//5b62bd98000162c109170228.jpg

1 回复 有任何疑惑可以回复我~

在这一块sinπ/6的π不能替换成3.14,那是角度,很好算0.5,然后就不用我说了,希望对你有帮助


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

请教下这个代码里,返回的nx,ny是怎么算出来的,我算出来的结果跟返回值完全不一样!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信