• 《游戏人工智能编程》读书笔记 —— 向量的归一和点乘



    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)。




  • 相关阅读:
    两台Mysql数据库数据同步实现
    利用Python读取外部数据文件
    在Python应用中使用MongoDB
    使用python语言操作MongoDB
    windows下Graphviz安装及入门教程
    【Machine Learning】决策树案例:基于python的商品购买能力预测系统
    Python数据可视化-seaborn
    np.tile 函数使用
    Python机器学习库scikit-learn实践
    基于C#net4.5websocket客户端与服务端
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426493.html
Copyright © 2020-2023  润新知