11.4.3 使用毕达哥拉斯定理

  接下来,getDistance函数使用了毕达哥拉斯定理(Pythagorean theorem)来计算两个点之间的距离。毕达哥拉斯定理表明,对于一个直角三角形,其中a和b表示直角的两条边,而c表示斜边(又叫作弦),那么a2+b2=c2给定了a和b的长度,我们通过计算a2+b2的平方根来得到c的长度。

《javascript-少儿编程》第11章单击事件处理程序之使用毕达哥拉斯定理

  为了计算event和target之间的距离,我们将两个点当作是一个直角三角形的一部分来处理,如图11-3所示。在getDistance函数中,diffX是三角形的水平边的长度,而diffX是垂直边的长度。

  要计算单击处和宝藏之间的距离,需要根据diffX和diffY的长度来计算弦的长度。一个简单的计算如图11-3所示。

《javascript-少儿编程》第11章单击事件处理程序之使用毕达哥拉斯定理

图11-3计算弦以求得event和target之间的距离

  要得到弦的长度,首先必须将diffX和diffY平方。然后,将这些平方值相加,并使用JavaScript函数Math.sqrt求得其平方根。因此,计算单击处和目标之间的距离的完整公式如下所示:

Math.sqrt((diffX * diffX) + (diffY * diffY))

  getDistance函数负责计算它并返回结果。