unity里的向量

 

y                         = b                         + a * x

transform.position = transform.position + (mousPosition - transform.position.normalized * 0.1f);

利用y = ax + b 这种直线方程来控制transform.position向mousPosition 慢慢移动。a(0.1f)为时间

 

用点乘求两个向量夹角:

Vector2 a = new Vector2 (1.0f,0.0f);
Vector2 b = new Vector2 (2.0f,2 * Mathf.Sqrt(3)).normalized;//必须要是normalized的才能这样用 否的算出的结果会出错
float d = Vector2.Dot (a,b);
float ang = Mathf.Acos (d) * Mathf.Rad2Deg;
Debug.Log (ang);

 

求两个向量的距离 

Vector3 aa = new Vector3 (1, 0, 0);
Vector3 bb = new Vector3 (0,Mathf.Sqrt(3),0);
Debug.Log(Vector3.Distance (aa,bb));

得到2

 

向量差乘(计算两个向量夹角)(这个没看懂记住这种用法就好,实际使用的情况较少)

Vector3 aa = new Vector3 (1, 1, 0);
Vector3 bb = new Vector3 (0,Mathf.Sqrt(3),0);
// Debug.Log(Vector3.Distance (aa,bb));
Vector3 c = Vector3.Cross (aa,bb);
Vector3 cc = Vector3.Cross (bb,aa);
float ang = Mathf.Asin (Vector3.Distance(Vector3.zero,Vector3.Cross(aa.normalized,bb.normalized)))*Mathf.Rad2Deg;
Debug.Log (ang);

 

posted @ 2015-11-16 18:51  Akishimo  阅读(758)  评论(0编辑  收藏  举报