文章目录
以下是本篇文章正文内容,下面案例可供参考
一、向量
一个数字列表,表示各个维度上有位移
基本属性
- 有大小方向的物理量
1、大小就是向量的模长
float dis=vector.magnitude;
2、方向描述空间中向量的指向
vector1.Normalize();将vector1自身设置为单位向量 - 可以表示物体的位置
- 物体坐标向量,从世界(0,0,0)出发指向物体的一条线段
//求向量模长
private void Demo01()
{
Vector3 pos = this.transform.position;
//数学公式
float m01 = Mathf.Sqrt(Mathf.Pow(pos.x, 2) + Mathf.Pow(pos.y, 2) + Mathf.Pow(pos.z, 2));
//API:获取向量模长
float m02 = pos.magnitude;
//两点间距离
float m03 = Vector3.Distance(Vector3.zero, pos);
Debug.LogFormat("{0}--{1}--{2}", m01, m02, m03);
}
//获取向量方向也称“标准化向量”,“归一化向量”,即获取该向量的单位向量
private void Demo02()
{
Vector3 pos = this.transform.position;
Vector3 n01 = pos / pos.magnitude;
//API:获取向量的方向 标准化 归一化
Vector3 n02 = pos.normalized;
}
- 向量相减
(x1,y1,z1)-(x2,y2,z2)=((x1-x2),(y1-y2),(z1-z2))
private void Demo03()
{
//向量计算
Vector3 relativeDirction = t1.position - t2.position;
//方向:指向被减向量
//大小:两点间距
//t3沿着relativeDirction移动
//如果relativeDirction不标准化,t3的移动的距离会根据t1与t2之间的距离变化而改变
t3.Translate(relativeDirction.normalized);
t3.position = t3.position + relativeDirction.normalized;
}
向量与标量的乘除
- 乘法:k*(x,y,z)=(xk,yk,z*k);
- 除法:(x,y,z)/k=(x/k,y/k,z/k)
- 几何意义:缩放向量长度
二、三角函数
角的度量方式
-
角度Degree
当弧长等于圆周长的360分之一时,夹角为1度
-
弧度Radian
弧长等于半径时,夹角为1弧度
-
角度与弧度的换算;
PI=180度
1弧度=180度/PI
1角度=PI/180度
代码如下(示例):
private void Demo04()
{
float d1=60;
//角度->弧度
float r1 = d1 * Mathf.PI / 180;
float r2 = d1 * Mathf.Deg2Rad;
//Mathf.Rad2Deg
}