三角學主要研究三角形和它們的邊角關係,包含一個90度角的三角形被稱爲直角三角形。在這裏主要研究直角三角形相關的知識。javascript
1. 角度和弧度java
360(角度) = 2*Math.PI(弧度) 函數
degrees = radians * 180/Math.PI
角度等於弧度乘於180再除於PI
radians = degrees * Math.PI/180
弧度等於角度度乘於PI再除於180
2. 三角形的邊spa
在一個直角三角形中,與90度角相鄰的兩條邊稱爲直角邊,與它對應的邊稱爲斜邊,斜邊老是最長的邊。3d
3. 三角函數code
正弦:一個角的對邊與斜邊的比例。blog
一個30度角的正弦值 ip
Math.sin(30 * Math.PI / 180)
餘弦:一個角的鄰邊與斜邊的比例。io
一個30度角的餘弦值console
Math.cos(30 * Math.PI / 180)
正切:一個角的對邊與鄰邊的比例。
一個30度角的正切值
Math.tan(30 * Math.PI / 180)
反正弦:Math.asin(ratio)
反餘弦:Math.acos(ratio)
反正弦和反餘弦是正弦和餘弦的逆運算,輸入一個比率,得到一個對應角的弧度。
Math.sin(30 * Math.PI / 180) //約爲0.5
Math.asin(0.5) * 180 / Math.PI //約爲30度
反正切:Math.atan(ratio)
反正切經過一個角的對邊與鄰邊比率獲得角的弧度。
Math.tan(30 * Math.PI / 180) //約爲0.578
Math.atan(0.578) * 180 / Math.PI //約爲30度
javascript中另外一個反正切:Math.atan2(y,x)
javascript中座標系統和日常的不同。
在javascript座標系中經過反正切(Math.atan2)計算一個變化點對應一個固定點的角度:
固定點(arrow.x, arrow.y )
變化點(mouse.x, mouse.y)
var dx = mouse.x - arrow.x,
dy = mouse.y - arrow.y,
angle = Math.atan2(dy, dx);
console.log('角度爲:' + angle );
在javascript計算中,Math.atan2(y, x) 能正確的計算出對應角。
4. 勾股定理
直角三角形中,兩條直角邊的平方和等於斜邊的平方。
A的平方 + B的平方 = C的平方
計算兩點之間的距離
點1:(x1, y1)
點2:(x2, y2)
var dx = x2 - x1,
dy = y2 - y1,
dist = Math.sqrt(dx * dx + dy * dy);
console.log('距離爲:' + dist);