![]() |
1
91
实现1返回由输入向量的常规三维交叉积产生的向量的大小,将其z值隐式取为0(即,将二维空间视为三维空间中的平面)。三维交叉积将垂直于该平面,因此具有0个x&y分量(因此返回的标量是三维交叉积向量的z值)。 请注意,由三维叉积产生的矢量的大小也等于 地区 两个向量之间的平行四边形,这为实现1提供了另一个目的。此外,该区域有符号,可用于确定从v1到v2的旋转方向是逆时针还是顺时针。还应注意,实现1是从这两个向量构建的2x2矩阵的行列式。 实现2返回一个垂直于输入向量的向量,该向量仍在同一个二维平面中。不是经典意义上的叉积,而是“给我一个垂直向量”意义上的一致性。 注意,三维欧几里得空间在叉积运算下是闭合的——也就是说,两个三维向量的叉积返回另一个三维向量。上述两种二维实现在某种程度上都与之不一致。 希望这有帮助… |
![]() |
2
49
简而言之: 这是一个数学黑客的速记法。 详细解释: 在二维空间中,不能用向量做叉积。操作没有在那里定义。 然而,假设二维矢量通过将其Z坐标设置为零扩展到三维,则评估两个矢量的交叉积通常很有趣。这与在xy平面上使用三维矢量相同。 如果以这种方式扩展向量并计算这样一个扩展向量对的叉积,您会注意到只有z分量有一个有意义的值:x和y总是零。 这就是为什么结果的z分量通常只是作为一个标量返回的原因。例如,该标量可用于在二维空间中查找三个点的缠绕。 从纯数学的角度来看,二维空间中的叉积不存在,标量版本是hack,返回二维矢量的二维叉积根本没有意义。 |
![]() |
3
12
交叉积的另一个有用特性是,它的大小与两个向量之间的角度的正弦有关:
或
因此,在上面的实现1中,如果
|
![]() |
4
4
实施1是 垂直点乘 两个向量中的一个。我所知道的最好的二维图形参考是 Graphics Gems 系列。如果你在做刮痕二维工作,它是 真的? 有这些书很重要。第四卷有一篇文章叫做“perp-dot产品的乐趣”,它有很多用途。
一个主要用途
垂直点乘
是为了得到比例
|
![]() |
5
3
我在计算中使用了二维叉积,来找到一个物体在一个力矢量作用下,相对于其质心的任意点上的新的正确旋转。(标量z 1。) |
![]() |
6
1
一个有用的二维向量运算是一个返回标量的叉积。我用它来看看多边形中的两条连续边是向左弯曲还是向右弯曲。 从 Chipmunk2D 来源:
|
![]() |
llewmills · 根据数字是否为整数过滤数值向量[重复] 2 年前 |
![]() |
Rocket Procd · 在c中向向量插入元素++ 2 年前 |
![]() |
Daniel · 为什么我不能手动定义模板参数? 2 年前 |
![]() |
Swantewit · 将数组值推送到Rust中的向量 2 年前 |
![]() |
Giffyguy · 如何限制在构造向量后调用'resize()'? 2 年前 |
![]() |
clarkk · 当声明向量时,(1)是什么意思? 2 年前 |
![]() |
Loui Augst · 仅在局部X轴上将游戏对象指向另一个对象 2 年前 |
![]() |
F.A. · 从int向量中附加整数的字符串不会打印任何内容 2 年前 |