向量点乘 和 叉乘

向量点乘 和 叉乘向量点乘点乘结果是一个标量 并满足交换律向量 a ax ay 向量 b bx by a b ax bx ay by a b cosA A 为两向量的夹角 几何意义 点乘结果描述了两个向量的 相似 程度 点乘结果越大 两向量越相近 点乘对零向量的解释是 零向量和其它任意向量都垂直 a b0 0 方

向量点乘

点乘结果是一个标量,并满足交换律

向量a = (ax,ay);

向量b = (bx,by);

a . b = ax * bx + ay * by = ||a|| * ||b|| * cosA; A 为两向量的夹角。

几何意义:点乘结果描述了两个向量的“相似”程度。点乘结果越大,两向量越相近。(点乘对零向量的解释是,零向量和其它任意向量都垂直)

a . b > 0 : 0 <= A < 90 方向基本相同,说明b在a的前面

a . b = 0:  A <= 90 正交

a . b < 0: 90 < A <= 180; 方向基本相反

 

向量叉乘(仅可用于3D向量)

叉乘结果是一个向量,且不满足交换律。

a = (ax, ay, az);

b = (bx, by, bz);

a x b = (ay*bz – az*by, az*bx – ax*bz, ax*by-ay*bx);

 

a . b x c = a * (b x c); 即叉乘的优先级比点乘高

a x b = -(b x a);

(a x b) x c != a x (b x c);

几何解释:

叉乘得到的向量垂直于原来的两个向量。

|| a x b || = ||a|| ||b|| sinA   (A为两向量的夹角)

点乘对零向量的解释:它平行于任意其它向量。

当然,定义零向量平行或垂直于任意向量都是不对的,因为零向量没有方向。

 

叉乘的方向:

a x b的方向: 将a 的头连接到b 的尾,并检查a 到b是顺时针还是逆时针,能够确定axb的方向。

左手坐标系中:

a x b 顺时针,a*b 指向纸外,即我们,逆时针,a*b 指向纸内,即和我们眼睛看的方向一样。

右手坐标系相反。

在unity中的几何意义:

假设物体a的transform的forward 为向量A, 物体b的position 减去 物体a的position为向量B 

那么:点乘 A* B > 0 表示物体b在物体b的前边, A*B < 0 表示物体b 在物体A的后边

叉乘:A x B  = {x, y, z}   如果 z > 0 表示 物体B在物体A的右边, 如果z < 0 表示物体B在物体A的左边,(右手螺旋定则)

判断一个点p在一个三角形的里边还是外边,假设三角行的三个顶点是A,B,C, 依次判断向量 AB x AP 、 BC x BP 、 CA x CP, 如果三个向量叉乘的结果向量方向相同表示在内,否则在外

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225732.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:39
下一篇 2026年3月17日 上午8:40


相关推荐

  • Lamp架构_lamp平台

    Lamp架构_lamp平台一、LAMP架构介绍   现如今打开浏览器,搜索LAMP关键词,出现大量的关于LAMP的介绍,包括LAMP的一键脚本、LAMP的yum安装、LAMP的编译安装,但是对于一个非开发或非专业人员有可能根据网络参考资源实现LAMP的搭建并成功运行各种服务,也有部分人员完全照搬某些博客知识进行搭建,最后以失败告终,因此抱怨互联网资源不够成熟,其实根本原因并非如此,主要原因如下: 初学者对LA…

    2022年10月17日
    6
  • count(): Parameter must be an array or an object that implements Countable

    count(): Parameter must be an array or an object that implements Countablecount(): Parameter must be an array or an object that implements Countable

    2022年4月24日
    60
  • 协同过滤推荐算法详解「建议收藏」

    协同过滤推荐算法详解「建议收藏」一、什么是协同过滤?协同过滤是利用集体智慧的一个典型方法。要理解什么是协同过滤(CollaborativeFiltering,简称CF),首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。协同过滤一般是在海量的用户中发掘

    2022年6月29日
    32
  • java的三种不同注释方式

    java的三种不同注释方式注释:是一种在程序源代码中插入的不影响程序运行的文字,可以在不妨碍程序运行的同时,使得代码具有更强的可读性(提前注释好代码的作用总是比看一遍代码理解其作用来的快的),既方便自己回头修改与更新代码,也方便了他人阅读自己的代码。java中,有三种不同的注释方式:我们先写最熟悉的”HelloWorld”代码publicclassHelloWorld{ publicstatic…

    2022年7月8日
    20
  • 分类问题-决策树模型

    分类问题-决策树模型决策树分类模型决策树是一种简单高效并且具有强解释性的模型 广泛应用于数据分析领域 其本质是一颗自上而下的由多个判断节点组成的树决策树示例预测小明今天是否会出门打球决策树与 if then 规则决策树可以看作一个 if then 规则的集合由决策树的根节点到叶节点的每一条路径 构建一条规则 路径上内部节点的特征对应着规则的条件 condition 叶节点对应规则的结论决策树的 if then 规则集合有一个重要性质 互斥并且完备 这就是说 每个实例都被一条规则 一条路径 所覆盖 并且

    2026年3月26日
    2
  • docker常用命令详解_linux入门基础

    docker常用命令详解_linux入门基础Docker 基础命令

    2022年4月22日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号