zoukankan      html  css  js  c++  java
  • 《游戏人工智能编程》读书笔记 —— 向量的归一和点乘


    1)向量的归一与点乘。


    点乘在实际运算中,计算公式是 :u 点乘 v = u.x * v.x + u.y * v.y


    点乘在几何上有对应的公式: u 点乘 v = u的模 * v的模 * uv夹角的cos值


    它的几何意义是:u的长度与v在u上的投影长度的乘积,它是一个标量,而且可正可负。


    如果将向量归一化,那么长度被重新计算了,变化1,但方向仍是有效的。


    归一化之后,配合点乘可以得到两个效果:


    <1> 得到一条线在另一条线上的投影值。


    当一个向量b与另一个向量a的夹角在(0, PI/2)&(3*PI/2, 2*PI)

    之间,它在a方向上的投影向量c就是c = ( b . a1 ) * a1,其中a1是a的单位向量;它在a

    相反方向的投影向量c'是c'= ( b'. a1 ) * a1,其中向量b'是b的同模相反向量。




    <2> cos夹角 = (u 点乘 v) / u的模 * v的模 = (u 点乘 v) / 1 = u 点乘 v = u.x * v.x + u.y * v.y



    2)利用点乘,判断物体是否在角色的前面。


    如果对象在智能体朝向平面的前面,则智能体方向矢量和从智能体到对象的矢量的点乘为正 ; 如果对象在智能体朝向平面的后面,则点乘为负。



    3)利用点乘的原理,可知与向量垂直的向量。


    任给一个非零向量(x,y),则它相对坐标轴逆时针转90度的正交向量为(-y,x),顺时针转90度的正交向量为(y,-x)。


    比如向量(2,3)r逆时针旋转90度的正交向量是(-3,2),顺时针旋转90度的正交向量是(3,-2)。




  • 相关阅读:
    修改XCode默认注释并自动生成文档
    百度地图初始化引擎失败
    ios系统分享
    ios判断app是否有打开相机的权限
    mac下https方式连接svn连接不上解决方法
    abbyy ocr sdk
    ant的安装
    ubuntu安装nginx
    ubuntu安装gcc
    iOS保持长时间后台运行
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426493.html
Copyright © 2011-2022 走看看