《游戏人工智能编程》读书笔记 —— 向量的归一和点乘
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)。
转载于:https://www.cnblogs.com/cly84920/archive/2012/10/10/4426493.html
《游戏人工智能编程》读书笔记 —— 向量的归一和点乘相关推荐
- 《游戏力》读书笔记作文4700字
2019独角兽企业重金招聘Python工程师标准>>> <游戏力>读书笔记作文4700字: 作者:考拉.作为一个距离有孩子还差十万八千里的人来说,为什么会选择去看这本书? ...
- 《HTML5 Canvas核心技术 图形、动画与游戏开发》 读书笔记
<HTML5 Canvas核心技术 图形.动画与游戏开发> 读书笔记 文章目录 <HTML5 Canvas核心技术 图形.动画与游戏开发> 读书笔记 第1章 基础知识 第2章 ...
- 游戏人工智能编程案例精粹(修订版) (Mat Buckland 著)
https://www.jblearning.com/catalog/productdetails/9781556220784 第1章 数学和物理学初探 (已看) 第2章 状态驱动智能体设计 (已看) ...
- UNIX网络编程--读书笔记
会集中这段时间写UNIX网络编程这本书的读书笔记,准备读三本,这一系类的文章会不断更新,一直会持续一个月多,每篇的前半部分是书中讲述的内容,每篇文章的后半部分是自己的心得体会,文章中的红色内容是很重要 ...
- mozart-oz中有限域编程读书笔记
mozart-oz自带文档: <Finite Domain Constraint Programming in Oz. A Tutorial.>读书笔记 http://www.mozart ...
- 《游戏人工智能》学习笔记
复习笔记 chapter 1 游戏人工智能是人工智能科学技术领域的一个分支 人工智能游戏的研究内容是如何将人工智能的理论.方法和技术应用于开发智能游戏.提高游戏角色的智能水平,主要包括智能游戏角色的行 ...
- 《游戏人工智能编程案例精粹》笔记 (一)
第一章:数学和物理 数学 笛卡尔坐标系 方程式 三角函数 向量 归一化,保留方向,变为单位长度: 矢量分解 点乘 本地空间与全局空间(第一视角坐标和上帝视角坐标) 物理 时间 两种计量时间的方法 ...
- 《游戏人工智能编程》学习笔记二——简单的有限状态机
1.有限状态机的定义 定义:一个有限状态机是一个设备,或是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根据输入进行操作,使得从一个状态变换到另一个状态,或者是促使一个输出或者一种行为的发生 ...
- C专家编程-读书笔记(书本顺序)
C语言设计哲学: 一切工作程序员自己负责. 语言中的所有特性都不需要隐式的运行时支持. 程序员所做的都是对的. 程序员应该知道自己在干什么,并保证自己的所作所为是正确的. ====== ...
最新文章
- python的try菜鸟_python异常处理try except过程解析
- centos 6.4 postfix mysql_postfix+dovecot+mysql+extmail安装笔记(基于CentOS 6)
- 《Beginning C# Objcets》学习笔记
- 上传github代码
- 关于Boost库的split函数在不同的编译器下的使用
- 面试题 计算机安全,XX计算机信息安全工程师面试题路由.doc
- 电脑ip地址设置_关于路由器动态IP如何设置教程
- PHP调用微信发放现金红包接口
- 零基础学习SQL Server(一)——启动服务,注册SQL Server服务器
- 交友约会APP源码大家有吗
- android焦距跟实际距离,android相机焦距和焦距不变
- 微软日语输入法键盘输入对应不上 解决方法
- Hazelcast Jet Pipeline详解
- Wannacrypt蠕虫老树开花?又见Wannacrypt
- IDEA maven 项目 POM文件变灰色或有个虫子(蜘蛛标记)
- Index out of range using input dim 2; input has only 2 dims
- SolidWorks二次开发-关于录制宏保存的格式
- 高中计算机考试ps,高中信息技术会考Photoshop操作题试题及分析
- python w3c_python w3c
- Linux 网络设备驱动(dm9000)
热门文章
- python 一个简单的天气预报程序
- 开发环境ubuntu16.04常用工具和设置(git、ssh、python、sh、java、Maven、mysql、postgresql)
- python基础系列教程——Python中的编码问题,中文乱码问题
- css伪元素选择器,first-letter、first-line
- Django(ORM常用字段)
- 前端技术分享和发展网站总结
- iOS AppIcon + launchImage+iPhone 屏幕分辨率相关知识
- 配置Hadoop开发环境(Eclipse)
- [转]memcached+magent实现memcached集群
- [转载] Python利用openpyxl模块读取excel文件内容