向量运算及习题

向量

向量定义:既有大小又有方向的量叫做向量。在空间中,向量用一段有方向的线段来表示。应用十分广泛,可用于描述具有大小和方向两个属性的物理量,例如物体运动的速度、加速度、摄像机观察方向、刚体受到的力等都是向量。因此向量是物理、动画、三维图形的基础。
模:向量的长度标准化(Normalizing):保持方向不变,将向量的长度变为1.
单位向量:长度为1的向量。
零向量:各分量均为0的向量

向量运算

加法:向量的加法为各个分量分别相加。在物理上可以用来计算两个里的合力,或者几个速度份量的叠加。
减法:两个向量的减法就是一个向量加上另一个向量相反的向量,多个向量相减同理
数乘:向量与一个标量相乘称为数乘。数乘可以对向量的长度进行缩放,如果标量大于0,那么向量的方向不变,若标量小于0,则向量的方向会变为反方向。
点乘:两个向量点乘得到一个标量,数值等于两个向量长度相乘再乘以两者夹角的余弦值。如果两个向量a,b均为单位向量,那么a.b等于向量b在向量a方向上的投影的长度(或者说向量a在向量b方向上的投影)。
叉乘:求向量的法向量

运算习题

1.有两个点(5,6,7)和(-1,2,-3),计算两个点之间的单位向量

 Vector3 v1 = new Vector3(5,6,7);
 Vector3 v2 = new Vector3(-1,2,-3);
 Vector3 v = v1 - v2;
 Debug.Log(v.normalized);

2.有两个点(5,6,7)和(-1,2,-3),计算两个点之间的距离

void Start () {
Vector3 v1 = new Vector3(5,6,7);
Vector3 v2 = new Vector3(-1,2,-3);
float distance = Vector3.Distance(v1, v2);
Debug.Log(distance);
}

3.已知两个向量(3,6,8)和(4,6,3)组成一个平面,计算垂直于这个平面的向量

void Start () {
 Vector3 v1 = new Vector3(3,6,8);
 Vector3 v2 = new Vector3(4,6,3);
 Vector3 v = Vector3.Cross(v3,v4)//叉乘
 Debug.Log(v);
}

4.已知两个向量(3,6,8)和(4,6,3),求两个向量的夹角

void Start () {
  Vector3 v1 = new Vector3(2,0,0);
  Vector3 v2 = new Vector3(-2,0,2);
  float dotValue = Vector3.Dot(v1, v2);
  float temp = dotValue / (v1.magnitude * v2.magnitude);//求出两个向量的余弦值
  float aCosTemp = Mathf.Acos(temp);
  float degrees = Mathf.Rad2Deg * aCosTemp;//求出两个向量的角
  Debug.Log(degrees);
         }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值