[学习笔记]三维数学(2)-三角函数

角的度量方式

角度Degree与弧度Radian
角度与弧度.png

两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当弧长等于圆周长的360分之一时,夹角为一度。弧长等于圆的半径时,夹角为1弧度。
角度与弧度的换算
PI = 180度 1弧度=180度/PI 1角度=PI/180度
角度=>弧度: 弧度=角度数*PI/180
API: 弧度=角度数*Mathf.Deg2Rad
弧度=>角度: 角度=弧度数*180/PI
API: 角度=弧度数*Mathf.Rad2Deg
在日常生活中角度制应用比较广泛。
在三角函数中弧度制可以简化计算。

三角函数

  • 建立了直角三角形中角与边长比值的关系。
  • 可用于根据一边一角,去求另一边。
  • 公式:

    • 正弦 sin x = a/c
    • 余弦 cos x = b/c
    • 正切 tan x = a/b
  • API:

    • Mathf.Sin(float radian)
    • Mathf.Cos(float radian)
    • Mathf.Tan(float radian)

三角函数.png

反三角函数

  • 反正弦、反余弦、反正切等函数的总称
  • 可用于根据两边长,求角度。
  • 公式:

    • 反正弦 arcsin a/c = x
    • 反余弦 arcsin b/c = x
    • 反正切 arctan a/b = x
  • API:

    • Mathf.Asin(float radian)
    • Mathf.ACos(float radian)
    • Mathf.Atan(float radian)

实例

在unity3d中画出cube北偏西30度,距离10的坐标v

根据三角函数求出坐标v相对于cube在z轴和x轴的偏移量,然后用在cube坐标的基础上,x加上x轴偏移量,z加上z轴偏移量得出的坐标就是v坐标了。但是这样求得的坐标,当cube旋转时v坐标是不会变的,如果需要让v坐标会随着cube的旋转而改变,可以用cube.transform.transformPoint(x偏移量,0,z偏移量)将v相对cube的坐标转为世界坐标,这样当cube旋转时,v的坐标也会跟着旋转了。脚本如下:

public class DrawTest : MonoBehaviour
{
    // Start is called before the first frame update
    public GameObject cube;
    // Update is called once per frame
    void Update()
    {
        Demo();
    }
    private void Demo()
    {
        float xAdd = Mathf.Sin(30 * Mathf.Deg2Rad) * 10;
        float zAdd = xAdd / Mathf.Tan(30 * Mathf.Deg2Rad);
        Vector3 newcube = new Vector3(cube.transform.position.x + xAdd, cube.transform.position.y, cube.transform.position.z + zAdd);
        //Vector3 newcube = cube.transform.TransformPoint(xAdd, 0, zAdd);
        Debug.DrawLine(cube.transform.position, newcube);
        Debug.DrawLine(Vector3.zero, newcube, Color.green);
    }
}

效果

Vector3 newcube = new Vector3(cube.transform.position.x + xAdd, cube.transform.position.y, cube.transform.position.z + zAdd);
三角函数求坐标.gif

Vector3 newcube = cube.transform.TransformPoint(xAdd, 0, zAdd);
三角函数求坐标2.gif

本文作者:六月丶

本文链接:https://hctra.cn/index.php/archives/478/

版权声明:如无特别声明,本文即为六月'blog原创,仅代表个人观点,如要转载请务必注明文章出处。
最后修改:2020 年 01 月 13 日 05 : 18 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论