之前在 C语言再学习 – C 标准库 - math.h 里有介绍 sin 和 cos 函数。但是这两个函数C语言该怎么实现呢?
首先看一下这两个函数的介绍:
C 标准库 - <math.h>
描述
C 库函数 double sin(double x) 返回弧度角 x 的正弦。
声明
下面是 sin() 函数的声明。
double sin(double x)
参数
x – 浮点值,代表了一个以弧度表示的角度。
返回值
该函数返回 x 的正弦。
C 标准库 - <math.h>
描述
C 库函数 double cos(double x) 返回弧度角 x 的余弦。
声明
下面是 cos() 函数的声明。
double cos(double x)
参数
x – 浮点值,代表了一个以弧度表示的角度。
返回值
该函数返回 x 的余弦。
这里需要注意的是:这两个C库函数的 参数是弧度
而手机计算器里的 sin cos 的参数单位是 角度
弧度和角度单位换算:
参看:日常生活小技巧 – 单位换算
1弧度(rad) = 180/PI 度(deg) = 57.29577951308232 度(deg)
1度(deg) = PI/180 弧度(rad) = 0.017453292519943 弧度(rad)
#define PI (3.1415926F)
#define D_PI (6.2831852F)
#define TINY_VALUE (1e-3f) // computation accuracy/** -----------------------------------------------------------------------------------------------@brief absolute value function@param[in] float x - input number@return float result - absolute value of input data.
*//*---------------------------------------------------------------------------------------------*/
static inline float MyFabs(float x)
{return (x > 0.0f) ? x : -x;
}/** -----------------------------------------------------------------------------------------------@brief sine calculation function@param[in] float x - input number@return float sum -result
*//*---------------------------------------------------------------------------------------------*/
float MySinf(float x)
{float n,sum,x2,temp;int32_t i, m;/* the period of sine fucntion is 2*PI */m = (int32_t)(x / D_PI);x = x - D_PI * m;n = x;sum = 0.0f;i = 1;x2 = x * x;/* Taylor expansion*/do{sum += n;i++;temp = -n * x2;n = temp / (((i << 2) - 6) * i + 2); // n = temp / (2*i - 1) / (2*i - 2);} while (MyFabs(n)>=TINY_VALUE);return sum;
}/** -----------------------------------------------------------------------------------------------@brief cosine calculation function@param[in] float x - input number@return float result
*//*---------------------------------------------------------------------------------------------*/
inline float MyCosf(float x)
{return MySinf(PI/2.0f-x);
}
玻璃钢生产厂家卡通玻璃钢雕塑设计公司商场美陈布置商场美陈产品方案ppt开远市玻璃钢雕塑设计如何苏州玻璃钢商场美陈滁州卡通玻璃钢雕塑玻璃钢仿真水蜜桃雕塑温州中庭商场美陈温州端州玻璃钢卡通雕塑卡通玻璃钢动物雕塑需要几天半身玻璃钢雕塑洛阳济源玻璃钢雕塑天津玻璃钢天猫雕塑玻璃钢花盆井盖宣城卡通玻璃钢雕塑厂家安徽玻璃钢牛雕塑ps商场美陈玻璃钢雕塑厂家联系电话商场美陈的研发作用南京玻璃钢雕塑批发玻璃钢饼干雕塑贵州环保玻璃钢雕塑哪家便宜上海玻璃钢雕塑模型厂家玻璃钢人物胸像雕塑2020上海商场美陈玻璃钢海洋雕塑服务公司贵州人物玻璃钢雕塑订做价格玻璃钢魔法帽雕塑许昌标识标牌玻璃钢彩绘雕塑玻璃钢童话卡通雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万