三角函数
角度和弧度
角度和弧度都是度量角的单位
角度:1° 圆一周的角度: 360°
弧度:1 radian 圆一周的弧度: 2Π radian
角度和弧度的转换关系是什么呢?我们由Π rad=180°可以得到:
1 rad=(180/Π)°≈57.3° =>弧度57.3=对应角度 =>弧度Rad2Deg=对应角度
1°=(Π/180)rad≈0.01745 rad =>角度0.01745=对应弧度 =>角度Deg2Rad=对应弧度
三角函数是初等函数之一,包括正弦函数、余弦函数、正切函数等等,我们可以通过反三角函数计算正弦值或余弦值对应的弧度值,在Unity中,我们可以使用Mathf.Sin()、Mathf.cos()等来使用三角函数;反三角函数也是初等函数之一,同样也包括反正弦函数、反余弦函数等等,我们可以通过反三角函数计算正弦值或余弦值对应的弧度值,在Unity中,我们可以使用Mathf.ASin()、Mathf.Acos()等来使用三角函数。
需要注意的是,Unity提供的数学计算函数使用的都是弧度值,如果我们想要得到角度的话,需要在Unity中将弧度转换成角度再进行使用。
坐标系
Unity的坐标系分为世界坐标系、物体坐标系、屏幕坐标系和视口坐标系四个坐标系。
世界坐标系
世界坐标系的原点是世界的中心点,世界坐标系的三个轴向是固定的
物体坐标系
物体坐标系的原点是物体的中心点,物体右方为X轴正方形向,物体上方为Y轴正方向,物体前方为Z轴正方向。
屏幕坐标系
屏幕坐标系的原点在屏幕的左下角,向右为X轴正方向,向上为Y轴正方向,最大宽为Screen.width,最大高为Screen.height
视口坐标系
视口坐标系的原点也在屏幕的左下角,向右为X轴正方向,向上为Y轴正方向,左下角的坐标为(0,0),而右上角的坐标为(1,1),它与屏幕坐标系类似,但是它可以将坐标单位化
坐标之间是可以相互转换的:
世界坐标 => 本地坐标
this.transform.InverseTransformDirection; this.transform.InverseTransformPoint; this.transform.InverseTransformVector;
本地坐标 => 世界坐标
this.transform.TransformDirection; this.transform.TransformPoint; this.transform.TransformVector;
世界坐标 => 屏幕坐标
Camera.main.WorldToScreenPoint;
屏幕坐标 => 世界坐标
Camera.main.ScreenToWorldPoint;
世界坐标 => 视口坐标
Camera.main.WorldToViewportPoint;
视口坐标 => 世界坐标
Camera.main.ViewportToWorldPoint;
视口坐标 => 屏幕坐标
Camera.main.ViewportToScreenPoint;
屏幕坐标 => 视口坐标
Camera.main.ScreenToViewportPoint;