Unity Vector 相关知识

引子

记录学习 Vector向量 数学知识
巩固下

向量操作

2D 向量

对2D向量的操作一般有:旋转,缩放,移动,两个向量之间的夹角(A->B夹角和B->A夹角相同),两个向量夹角的有符号夹角(A向量到B向量的夹角和 B向量到A向量的夹角不同)
一条线段绕原点旋转,已经线段绕目标点旋转操作

最简单的是向量的移动

  • 向量移动
1
2
3
Vector2 v1 = new Vector2(0,1);
Vector2 v2 = new Vector2(1,0);
Vector2 v3 = v1+v2;

向量的移动可以理解为物理学上的两个方向的作用力,求他们的合力
也可以理解为一个人从(0,0)向A方向移动了n个距离,接着又在B方向移动了m距离,求最终这个人的位置

1
2
3
Vector2 aDir = A.normarl();
Vector2 bDir = B.Normal();
Vector2 endPos= aDir*n + bDir*m;
  • 向量缩放

求单位向量就是一个向量的缩放运算
单位向量上移动了N个距离也是一个缩放运算

1
2
3
Vector2 aDir = A.normarl();
Vector2 bDir = B.Normal();
Vector2 endPos= aDir*n + bDir*m;
  • 向量的旋转
    求A向量旋转 θ 角度
1
2
3
4
5
6
7

Vector2 a = new Vector2(1,.5f);

float sinValue = Mathf.sin(θ)
float cosValue = Mathf.sin(θ)

Vector2 rotateA = new Vector2(sinValue*a.x + cosValue*a.y , sinValue*a.y-cosValue*a.x );