Unity3D数学之向量基础

向量
1)向量 是有大小和方向的有向线段,没有位置。向量的大小就是向量的长度(模),向量有非负的长度。如“向前三步走”、“以50公里/小时向北行驶”都是有方向有速度的向量。 向量没有具体位置,但可以描述相对位置和位移。点用来描述位置。
任意一点都可以用从原点开始的向量来表达,如(3,5,1)即可以代表一个点,也可以代表从0,0,0指向该点的一个位移向量。
通过一个点或者两个点都可以确定一个向量。
----
2)向量大小 为向量各分量平方和的平方根。代码: dir.magnitude
----
3)向量与标量。 标量强调数值,“速度、位移”等是向量;“速率、长度”等是标量。
----
4)标准化向量(法线) :许多向量我们不关注其大小只关心其方向,如:“我面向的是什么方向?”标准化(法线)向量即大小为1的向量(3D环境下为一个半径为1的单位球)。代码: dir.normalized。
向量标准化原理:将向量除以它的大小(模)即可。
----
5)向量乘法:
①标量与向量 不能相加,但可以 相乘 。结果仍为一个向量与原方向平行,但长度加倍,方向可能相反。如dir*3;
②向量与向量的乘法有两种:
点乘: 点乘等于向量大小与向量夹角Cos值的积, 结果是一个标量 。点乘结果描述了两个向量的“相似”程度。Vector3.Dot(M,N);
a*b=||a||*||b||*Cos(α); 当设定a、b向量为单位向量时(a.forward,b.normalized)则a点乘b的值就是两个向量的夹角Cos(α)的值(-1~1),当重叠时则夹角Cos(α)无限接近于1(0°)

叉乘: 叉乘仅可用于3D向量。和点乘不一样,点乘得到一个标量并满足交换律;叉乘 结果是一个向量 且不满足交换律。叉乘得到的向量垂直于原来的两个向量。
Vector3.Cross(M,N)==>||M||*||N||*Sin(α);
叉乘Vector3.Cross(M,N)与Vector3.Cross(N,M);的结果是不同的。在Unity中左手坐标系中,可以使用左手法则,以左手手掌指向M的方向,弯曲四指指向N的方向,此时拇指方向即为叉乘结果的方向,向下为负,向上为正。

叉乘最重要的应用就是创建垂直于平面、三角形或多边形的向量。
----
6)向量加减: 向量加法满足交换律:a+b=b+a;向量减法不满足交换律:a-b=-(b-a);
a+b等于使b的始点与a的终点重合时,以a的始点为始点,以b的终点为终点的向量。
a-b等于使b的始点与a的始点重合时,以b的终点为始点,以a的终点为终点的向量。

根据三角形法则得知, a-b得到的是一个从b到a的位移向量(表示在此方向上移动的一段距离)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值