打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在MicroBlocks下实现正切、余弦运算

MicroBlocks不喜欢小数运算,凡涉及浮点数的C函数都不公开。但是它偷偷地在Misc Primitives库里面把正弦sine和反正切arctan给公开了,这为我们实现其他三角函数运算提供了一种蠢蠢的思路。

我试验了一下,在锐角至少在75°的范围内,误差都能接受。

先用这两个函数把正切函数实现了。这可以使用循环穷举的办法:设想直角三角形的两个直角边,邻边x1000,对边y的取值即为放大了1000倍的正切值。

有了tan函数,cos就容易了。

在上面的计算过程中,为了避免计算过程中就丢失精度,有的是先乘了1000,计算完毕再除以1000MicroBlocks里面的三角函数都是给角度增加100倍计算的,我们给它折算到1000倍,基本上能较大程度上保证计算精度。

现在尝试5°、15°、30°、45°、60°、75°、85°这几个角度的计算值。

表格里面的数据是Excel计算的,下面的则是MicroBlocks的,因为我们已经把计算结果放大了1000倍,相当于小数点第3位才出现误差,看来是可以接受的。只是到了85°附近的时候,误差嗷一下子就上去了,这个计算值就没法用了。

module 'tan_cos.ubp'
author '阿璇'
version 1 0
depends miscPrims
description ''
variables x1000y

  spec 'r' 'x1000y' 'tan _' 'auto' 4500
  spec 'r' 'cos' 'cos _' 'auto' 3000

to cos my_angle {
  return ((((1000 * ('[misc:sin]' my_angle)) / 16384) * 1000) / (x1000y my_angle))
}

to x1000y angle {
  x1000y = 0
  forever {
    if ((absoluteValue (((('[misc:sin]' ('[misc:atan2]' 1000 x1000y)) - ('[misc:sin]' angle)) * 1000) / 16384)) < 2) {
      return x1000y
    } else {
      x1000y += 1
    }
  }
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
三角函数
三角函数诱导公式
2016年《南方新课堂·高考总复习》数学(理科) 第三章 第5讲 两角和与差及二倍角的三角函数公式
备战2019年高考数学典型例题分析188——三角函数有关的题型
正弦.余弦.正切.余切.概念及公式.你好.就是什么cos多少度.tan多少度.sin多少度.还有一个...
初中数学重难点:得分利器——三角函数所有概念公式(建议收藏)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服