Unity3D-数学1-三角函数

Math.sin() 与 Math.cos() 用法

Math.sin(x)  x 的正玄值。返回值在 -1.0 到 1.0 之间;
Math.cos(x) x 的余弦值。返回的是 -1.0 到 1.0 之间的数;

这两个函数中的X 都是指的 “弧度” 而非 “角度”,

弧度的计算公式为:  2*PI /360*角度 => 30° 角度的弧度 = 2*PI/360*30

<<如何得到圆上每个点的坐标>>

解决思路:根据三角形的正玄、余弦来得值;

假设一个圆的圆心坐标是(a,b),半径为r 

则圆上每个点的

X坐标= a + Math.sin(2*Math.PI / 360) * r ;

Y坐标= b + Math.cos(2*Math.PI / 360) * r ;

targetPos.x = mover.MoveTarget.Position.x + disR * Mathf.Sin(angle * Mathf.PI / 180);
targetPos.y = mover.MoveTarget.Position.y + disR * Mathf.Cos(angle * Mathf.PI / 180);

<<如何求时钟的秒针转动一圈的轨迹>>

假设秒针的初始值(起点)为12点钟方向,圆心的坐标为(a,b)。

解决思路:一分钟为60秒,一个圆为360°,所以平均每秒的转动角度为 360°/60 = 6°;

for(var times=0; times<60; times++)
{
       var hudu = (2*Math.PI / 360) * 6 * times;
       var X = a + Math.sin(hudu) * r;
       var Y = b - Math.cos(hudu) * r    
      //  注意此处是“-”号,因为我们要得到的Y是相对于(0,0)而言的。
}

<< 数学向量 >>

向量加减法:

 

向量相乘:  点乘和叉乘

积 a b      =丨a丨丨b丨cosα  (内积无方向 叫点乘) 

积 a × b  =丨a丨丨b丨sinα   (外积有方向 叫叉乘)

 

点乘: 是一代数,而叉乘的结果是一向量.

点乘: 向量的内积、数量积、结果是一个数.

 

向量a·向量b =  |a| |b| cos 

物理学: 已知力与位移求功, 就是求向量F与向量s的点乘。 

 

叉乘: 也叫向量的外积、向量积、结果是一个向量.

|向量c| = |向量a × 向量b| = |a| |b| sin

 

向量c的方向与a, b所在的平面垂直,且方向要用“右手法”判断

 ・用右手的四指先表示向量a的方向

 ・手指朝着手心的方向摆动到向量b的方向

 ・大拇指所指的方向就是向量c的方向

 

物理学:  已知力与力臂求力矩,就是向量的叉乘 

正弦:在直角三角形中,任意锐角A的对边与斜边的比叫做A的正弦,记作sinA sinA=A的对边/斜

余弦:角A的邻边比斜边 叫做A的余弦,记作cosAcosA=A的邻边/斜边(直角三角形) 记作 cos=x/r

 

平滑位移    : Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);

平滑位移    : Vector3 Slerp(Vector3 from, Vector3 to, float t);

变动一次坐标 : m_transform.Translate(new Vector3(rx, 0, -m_Speed * Time.deltaTime));

求方向          : Vector3 relativePos = this.m_transform.position – m_Player.position

 

求距离: 

 float dis = Vector3.Distance(v1, v2);

 float f1 = (v1 – v2).sqrMagnitude;

 float f3 = (v1 – v2).magnitude;

 

缩放正向: Vector3 v3 = this.m_transform.forward * 200f;

射线检测:

 Ray r   =  new Ray(source, dest);

 Physics.Raycast(r,  out hit, 1000,  m_ShootMask)

 加一个力:  rigidbody.AddForce (0, 10, 0);

 

 

 

posted on 2017-12-12 10:30  小魔一剑  阅读(151)  评论(0)    收藏  举报