反三角函数
有了三角函数,我们可以通过角度算出边的比值。如果我们知道边的比值,有没有办法反过来算出角度呢?
答案是有的——就是我们接下来要介绍的“反三角函数”。
案例解析
我们来看个例子吧:
如图,你在一栋12m高的楼下,要将一把13m长的梯子架到楼顶。计算梯子与地面的夹角θ。
这张图是不是似曾相识?可以回看勾股定理里的图片。 是的,连直角三角形都还是原来那个,只不过求距离变成了求角度。
找到直角三角形,然后选择合适的公式。13是斜边,12是对边,使用sin。
sin(θ) = 12 / 13
问题来了。12/13我们会算,但θ要等于多少,才能让sin(θ)正好等于12/13呢?
我们前面求“多少的平方等于25”时,用到了平方的逆运算——平方根(sqrt)。 三角函数也同样有逆运算,那就是——反三角函数。
sin的逆运算是arcsincos的逆运算是arccos
tan的逆运算是arctan
举个例子:
sin(30) = 0.5
arcsin(0.5) = 30
回到之前的问题:我们想知道“θ要等于多少,才能让sin(θ)正好等于12/13”,那么只需要
θ = arcsin(12/13)
= 67.38
所以梯子与地面的角度是67.38°
你也可以选择用Scratch:
我专门为此整理一张反三角函数的图:
不过你只需要记住这个就行了:
sin(角度) = 边的比值arcsin(边的比值) = 角度
(cos,tan同理)
再看一个案例:
如图,你的坐标是(0, 0),敌人的坐标是(40, 30)。计算面向敌人的方向
依旧是之前题目的情景,只不过求距离变成了求角度(方向)。
建议:先思考,再看答案。
利用坐标构建直角三角形,相信你已经很熟了:
如果你已经能熟练分辨3条边了,接下来的计算也不难:
θ = arctan(40/30)
= 53.13
所以敌人在我们的北偏东53.13°方向。
如果是在Scratch坐标系中,直接回答53.13就行了。
Scratch应用
我们已经可以通过坐标求角度了。用Scratch写一个“面向特定坐标”的代码,应该也不在话下吧?
那就试试看吧~
试试看效果吧——
运行结果:
其实仔细想想也不难发现:
x = 100,y = 100时,x/y = 1,面向arctan(1) = 45 x = -100,y = -100时,依旧有x/y = 1,因此还是面向arctan(1) = 45
显而易见的是,前者应该面向右上方,而后者应该面向左下方。
事实上,arctan()的结果只能是-90到90之间的数。 也就是说,它最多只能处理180°的范围,而做不到360°无死角。
所以要怎么办呢?判断,分类讨论!
如果在目标在下半部分,就转180°
再运行试试——
好的,面向坐标的函数我们也学会了。可喜可贺,可喜可贺!
顺带一提,这个函数还有另一种写法,你可能在别的地方见过:
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=simple-math/simple/lec03&type=comment"
title="{小Simple也能看懂的Scratch常用数学知识 03}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>