Unity基础——三角函数与坐标系

361 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

三角函数

角度和弧度

角度和弧度都是度量角的单位

角度: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;