第五章+向量运算课件-3.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章向量运算课件-3

第5章向量运算 第5章向量运算 p向量与标量的乘法 p标准化的向量与向量标准化的方法 p向量的加减法及其应用 p向量的点乘与叉乘 5.10向量点乘(向量内积) p 运算法则 l 向量点乘是对应分量乘积的和 点乘结果是标量 l向量点乘的优先级高于加法和减法 5.10向量点乘(向量内积) p将点乘应用到2D,3D向量中 p a,b是2D向量,有: p a,b是3D向量,有: p请计算下面向量的点乘结果: 5.10向量点乘 p几何解释 l 点乘等于向量大小与向量夹角的cos值的积 l点乘描述了两个向量的“相似”程度,点乘结果越大,两 向量越相近 l如果不需要夹角θ的确切值而只需要夹角的类型,可以 只取点乘结果的符号 5.10向量点乘 p 几何解释 l 向量大小不影响点乘结果的符号 l 如果a,b中任意一个为零 那么a·b 的结果为零 l 点乘对零向量的解释: 零向量和任意其他向量都垂直 5.10向量点乘 p 向量投影 l 定义 5.10向量点乘 p 向量投影 l 计算公式: 5.10向量点乘 p 向量投影 l 计算公式: 5.11向量叉乘(仅限于3D向 量) p向量叉乘得到的是一个向量 p运算法则 l 叉乘公式 l优先级 ?叉乘优先于加减 ?点乘与叉乘在一起时,叉乘优先 ?运算a·(b×c)称作三重积 5.11向量叉乘(仅限于3D向 量) p向量叉乘得到的是一个向量 p运算法则 l 叉乘公式 l向量叉乘不满足交换律,满足反交换 律 a×b=-(b×a) l向量叉乘不满足结合律 (a×b)×c≠ a×(b×c) 5.11向量叉乘 p几何解释 l 叉乘得到的向量垂直于原来的两个向量 5.11向量叉乘 p几何解释 l 叉乘得到的向量垂直于原来的两个向量 l a×b的长度等于向量的大小与向量夹角sin值 的积 5.11向量叉乘 p几何解释 l a×b的叉乘得到的向量垂直于原来的两个向量 l a×b的长度等于向量的大小与向量夹角sin值的积 l a×b的长度也等于以a和b为两边的平行四边形的 面积 5.11向量叉乘 p几何解释 l 叉乘得到的向量垂直于原来的两个向量 l a×b的长度等于向量的大小与向量夹角sin值的积 l a×b的长度也等于以a和b为两边的平行四边形的 面积 l如a和b平行或任意一个为0,则a×b=0 l叉乘对零向量的解释:它平行于任意其他向量 l a×b的方向 5.11向量叉乘 将a的头和b的尾相接。 在左手坐标系中: 如果a,b呈顺时针方向,则a×b指向您 ;如果a,b呈逆时针方向,则a×b远离 您。 p几何解释 l a×b的方向 a,b呈顺时针 a,b呈逆时针 l叉乘的应用:可创建垂直于平面、三角形或多边 形的向量 练习 完成下列计算: 1、 1编程实现向量点乘 #include math.h class Vector3{ public: Vector3.h float x,y,z; Vector3(){}; Vector3(const Vector3 a):x(a.x),y(a.y),z(a.z){}; Vector3(float nx,float ny,float nz):x(nx),y(ny),z(nz){}; //省略其它函数 Vector3 operator*(float a) const{return Vector3(x*a,y*a,z*a);} //向量和标量相乘 float operator*(const Vector3 a)const //向量点乘 { return x*a.x+y*a.y+z*a.z; } }; inline float vectorMag(const Vector3 a) {return sqrt(a.x*a.x+a.y*a.y+a.z*a.z);} //省略 main.cpp #includeiostream #include Vector3.h using namespace std; void print_v(Vector3 v) { cout[v.x,v.y,v.z]endl; } int main() { couthello Vectorendl; Vector3 h1(3,-2,7),h2(0,4,-1); float k=h1*h2; coutkendl; double m=acos((k/(vectorMag(h1)*vectorMag(h2))))*180/3.14159; coutmendl; return 0; } 练习 完成下列计算: 1、 2编程实现向量叉乘 #include

文档评论(0)

bbnnmm885599 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档