#include <math.h>中sin,cos函数的使用

在使用QT的时候遇到绘制类似仪表盘的问题,要定位仪表盘上刻度的坐标然后进行刻度线的绘制,需要把仪表盘角度等分,然后通过角度正余弦函数sin,cos函数获得刻度线的坐标。

math.h中的sin和cos等函数的入参原型如下:

double sin(double _X);

double cos(double _X);

解释一下:

这两个函数的入参类型都是double, 而入参_X是角度的弧度值,返回的是弧度值对应的角度的正余弦的值;

那么,什么是弧度值呢?

(初中知识,在这里温习下):

某个角度的弧度值,其实就是 角度值*(π/180°),我们用通俗易懂的方式来解释一下:

π/180° 其实就是单位角度的弧度值,也就是角度为1°时对应的弧度值,那么我们知道了1°对应的弧度值,要求得出给定角度的弧度值就很好计算了。

计算给定角度对应的弧度值

比如我把一个圆360°分为10份,那么每份就是36°,从而得到36°对应的弧度值就是:

36° * (π/180°)

可以写成 π * (36°/180°)= π * (1/5)

因为分子分母都是度数单位,约得36°的占据180°的分数就是 1/5 ,然后和π相乘,得从而得到36°对应的弧度就是:π/5;

从而如果计算36°对应的正弦值就是: 

sin(π/5)

因为π在math.h中的定义是M_PI,如下:

所以36°的正弦值的函数调用写成:

sin(M_PI/5)

余弦也同理,36°对应的余弦就是cos(M_PI/5)

通过正余弦值得到刻度坐标

我们得到了角度对应的正余弦值之后,就可以联合圆的半径长度获得某个角度在圆上的坐标,如下:

因sin值又是直角三角形中角的对边和直角三角形斜边的比值,所以在坐标系中,r为半径的圆上,

某个弧度为n的角度在圆上的坐标(△x,△y) ,有 △x/r = cos(n) 以及 △y/r = sin(n)

所以某个角度的 x轴距离△x=cos(n)* r , y轴距离△y= sin(n)* r:

那么如果把一个半径为r长度的圆10等分,36°对应的坐标(x,y) => (cos(M_PI/5)*r, sin(M_PI/5)*r)

36° * 2 = 72°对应的坐标为:( cos(2*M_PI/5), sin(2*M_PI/5) )

36° * 3 = 108°对应的坐标为:( cos(3*M_PI/5), sin(3*M_PI/5) )

。。。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值