三角函數
1、sin :
正弦值:對邊/斜邊
sin A = a/c
求 30°sin值 ,由於 sin() 函數的參數是弧度,所以在給函數傳遞參數前,需要先將 30° 轉換為弧度值。
double param, result;
param = 30.0;
result = sin (param*PI/180);
printf ("The sine of %f degrees is %f.\n", param, result );
return 0;
2、cos
余弦值:cos A = b / c
3、tan
正切值:tan A = a/b
4、acos、atan、asin同理
反余弦函數 acos() 和余弦函數 cos() 的功能恰好相反:cos() 是已知一個角的弧度值 x,求該角的余弦值 y;而 acos() 是已知一個角的余弦值 y,求該角的弧度值 x。
求0.5的反余弦值
double param, result;
param = 0.5;
result = acos (param) * 180.0 / PI; //將弧度轉換為度
printf ("The arc cosine of %f is %f degrees.\n", param, result);
return 0;
5、atan2(反正切值)
反正切函數atan2()和正切函數tan()的功能正好相反,tan()是已知一個角的弧度制,求該角的正切值,而atan2是已經知道角的正切值(也就是y/x),求該角的弧度制。
/* atan2 example */
#include <stdio.h> /* printf */
#include <math.h> /* atan2 */
#define PI 3.14159265
int main ()
{
double x, y, result;
x = -10.0;
y = 10.0;
result = atan2 (y,x) * 180 / PI;
printf ("The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result );
return 0;
}
Java中 利用Math.atan2來求反正切值,以弧度來表示,取值范圍是(pi,-pi],如上圖所示,tan(θ) = y/x,θ = atan2(y, x)。
當 (x, y) 在象限中時:
p
- 當 (x, y) 在第一象限,0 < θ < π/2
- 當 (x, y) 在第二象限,π/2 < θ ≤ π
- 當 (x, y) 在第三象限,-π < θ < -π/2
- 當 (x, y) 在第四象限,-π/2 < θ < 0
關於力扣1610題就可以用atan2,計算一個坐標相對於location位置與x軸的夾角(弧度制)
b-y,a-y,
兩個坐標相減數學上表示:得到一個向量,還可以表示正切值
list.add(Math.atan2(b-y,a-x));
弧度與角度
1、二者是度量角的兩種不同的單位
sin(\pi/2) 等於 大小為 pi /2弧度的角的正弦值
2、度、弧度的定義
1. 度的定義
兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧。當這段弧長正好等於圓周長的360分之一時,兩條射線的夾角的大小為1度。(如圖1)
2. 弧度的定義
弧度又是怎樣定義的呢? 弧度的定義是:兩條射線從圓心向圓周射出,形成一個夾角和夾角正對的一段弧。當這段弧長正好等於圓的半徑時,兩條射線的夾角大小為1弧度。
3、二者的換算關系
一個平角是 π 弧度。 即 180度=π弧度 ;
由此可知:
1度=π/180 弧度 ( ≈0.017453弧度 )
因此,得到 把度化成弧度的公式:
弧度=度×π/180
例如:
90°=90×π/180 =π/2 弧度
60°=60×π/180 =π/3 弧度
45°=45×π/180 =π/4 弧度
30°=30×π/180 =π/6 弧度
120°=120×π/180 =2π/3 弧度
2. 反過來,弧度化成度怎么算?
因為 π弧度=180°
所以 1弧度=180°/π (≈57.3°)
因此,可得到 把弧度化成度的公式:
度=弧度×180°/π
例如:
4π/3 弧度=4π/3 ×180°/π =240°.
sin30°就得寫成 Math.sin(30*Math.PI/180)
不等式
abs(a-b)<=c
b的取值范圍 [a-c , a+c]
證:
a - b <= c 等價於 a-c <= b
b - a <= c 等價於 b<= a+c