MySQL三角函数详解

简介

本文主要讲解MySQL三角函数及其相关函数,包括:RADIANS、DEGREES、SIN、COS、TAN、COT、ASIN、ACOS、ATAN、ATAN2

先介绍下角度与弧度的转换公式:

弧度=角度*π/180

角度=弧度*180/π

RADIANS函数

语法:RADIANS(X),返回角度X对应的弧度,效果相当于X*π/180。

示例:

select RADIANS(0)*180/PI();-- 0
select RADIANS(30)*180/PI();-- 29.999999999999996
select RADIANS(45)*180/PI();-- 45
select RADIANS(60)*180/PI();-- 59.99999999999999
select RADIANS(90)*180/PI();-- 90

DEGREES函数

语法:DEGREES(X),返回弧度X对应的角度,效果相当于X*180/π。

示例:

select DEGREES(0*PI()/180);-- 0
select DEGREES(30*PI()/180);-- 29.999999999999996
select DEGREES(45*PI()/180);-- 45
select DEGREES(60*PI()/180);-- 59.99999999999999
select DEGREES(90*PI()/180);-- 90

SIN函数

语法:SIN(X),正弦函数,返回X的正弦值,等于直角三角形中对边长度除以斜边长度的值,参数X为弧度。

示例:分别求0度角、30度角、45度角、60度角、90度角的正弦值。

SELECT SIN(0*PI()/180);-- 0
SELECT SIN(30*PI()/180);-- 0.49999999999999994
SELECT SIN(45*PI()/180);-- 0.7071067811865476
SELECT SIN(60*PI()/180);-- 0.8660254037844386
SELECT SIN(90*PI()/180);-- 1

COS函数

语法:COS(X),余弦函数,返回X的余弦值,等于直角三角形中邻边长度除以斜边长度的值,参数X为弧度。

示例:分别求0度角、30度角、45度角、60度角、90度角的余弦值。

SELECT COS(0*PI()/180);-- 1
SELECT COS(30*PI()/180);-- 0.8660254037844387
SELECT COS(45*PI()/180);-- 0.7071067811865476
SELECT COS(60*PI()/180);-- 0.5000000000000001
SELECT COS(90*PI()/180);-- 6.123233995736766e-17

TAN函数

语法:TAN(X),正切函数,返回X的正切值,等于直角三角形中对边长度除以邻边长度的值,参数X为弧度。

示例:分别求0度角、30度角、45度角、60度角、90度角的正切值。

SELECT TAN(0*PI()/180);-- 0
SELECT TAN(30*PI()/180);-- 0.5773502691896257
SELECT TAN(45*PI()/180);-- 0.9999999999999999
SELECT TAN(60*PI()/180);-- 1.7320508075688767
SELECT TAN(90*PI()/180);-- 1.633123935319537e16

COT函数

语法:COT(X),余切函数,返回X的余切值,等于直角三角形中邻边长度除以对边长度的值,参数X为弧度。

示例:分别求0度角、30度角、45度角、60度角、90度角的余切值。

说明:因为0度角的对边长度为0,当邻边长度除以对边长度,就是0做除数,会报错。

select COT(0*PI()/180);-- 报错:[Err] 1690
select COT(30*PI()/180);-- 1.7320508075688774
select COT(45*PI()/180);-- 1.0000000000000002
select COT(60*PI()/180);-- 0.577350269189626
select COT(90*PI()/180);-- 6.123233995736766e-17

ASIN函数

语法:ASIN(X),反正弦函数,是正弦函数的反函数,X是直角三角形中对边长度除以斜边长度的值,返回值为角度对应的弧度值。比如,若Y=SIN(X),则X=ASIN(Y)。

示例:

select ASIN(SIN(0*PI()/180))*180/PI();-- 0
select ASIN(SIN(30*PI()/180))*180/PI();-- 29.999999999999996
select ASIN(SIN(45*PI()/180))*180/PI();-- 45.00000000000001
select ASIN(SIN(60*PI()/180))*180/PI();-- 59.99999999999999
select ASIN(SIN(90*PI()/180))*180/PI();-- 90

ACOS函数

语法:ACOS(X),反余弦函数,是余弦函数的反函数,X是直角三角形中邻边长度除以斜边长度的值,返回值为角度对应的弧度值。比如,若Y=COS(X),则X=ACOS(Y)。

示例:

select ACOS(COS(0*PI()/180))*180/PI();-- 0
select ACOS(COS(30*PI()/180))*180/PI();-- 29.999999999999993
select ACOS(COS(45*PI()/180))*180/PI();-- 45
select ACOS(COS(60*PI()/180))*180/PI();-- 59.99999999999999
select ACOS(COS(90*PI()/180))*180/PI();-- 90

ATAN函数(单参数)

语法:ATAN(X),反正切函数,是正切函数的反函数,X是直角三角形中对边长度除以邻边长度的值,返回值为角度对应的弧度值。比如,若Y=TAN(X),则X=ATAN(Y)。

示例:

select ATAN(TAN(0*PI()/180))*180/PI();-- 0
select ATAN(TAN(30*PI()/180))*180/PI();-- 29.999999999999996
select ATAN(TAN(45*PI()/180))*180/PI();-- 45
select ATAN(TAN(60*PI()/180))*180/PI();-- 59.99999999999999
select ATAN(TAN(90*PI()/180))*180/PI();-- 90

ATAN或ATAN2函数(双参数)

语法:ATAN(Y,X)ATAN2(Y,X),反正切函数,两个函数效果相同,是正切函数的反函数,Y和X分别是坐标轴中的纵坐标和横坐标,返回值为角度对应的弧度值。

示例:

select ATAN(1,0)*180/PI();-- 90
select ATAN(-1,0)*180/PI();-- -90
select ATAN(0,1)*180/PI();-- 0
select ATAN(0,-1)*180/PI();-- 180
select ATAN(1,1)*180/PI();-- 45
select ATAN(-1,1)*180/PI();-- -45
select ATAN(1,-1)*180/PI();-- 135
select ATAN(-1,-1)*180/PI();-- -135
select ATAN(1,SQRT(3))*180/PI();-- 30.000000000000004
select ATAN(-1,SQRT(3))*180/PI();-- -30.000000000000004
select ATAN(1,-SQRT(3))*180/PI();-- 150.00000000000003
select ATAN(-1,-SQRT(3))*180/PI();-- -150.00000000000003
select ATAN(SQRT(3),1)*180/PI();-- 59.99999999999999
select ATAN(-SQRT(3),1)*180/PI();-- -59.99999999999999
select ATAN(SQRT(3),-1)*180/PI();-- 120.00000000000001
select ATAN(-SQRT(3),-1)*180/PI();-- -120.00000000000001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值