是网上所有叉积代码的例子都错了,还是我错了?
are all the examples of cross product code on the internet wrong, or am I wrong?
背景:我正在用 fanuc macro b 为带有测头的加工中心编写一些代码,但我想这有点无关紧要……无论如何,我目前正在编写一个小程序在一个表面上进行 3 次接触并输出一个单位法向量。
开始之前,我在其他编程语言中搜索了向量叉积的示例,当然,我找到了很多。我感到困惑的是 none 我发现的例子否定了 y(或 j)项..这是我在网络上以各种形式发现的:
x = Ay * Bz - By * Az
y = Az * Bx - Bz * Ax
z = Ax * By - Bx * Ay
我错过了什么吗?我认为它应该是这样的:
x = Ay * Bz - By * Az
y = -1 * (Az * Bx - Bz * Ax)
z = Ax * By - Bx * Ay
我的意思是我觉得我一定是错的,因为整个互联网很少出错..但在纸面上只有当我按照自己的方式去做时才会成功...
提前致谢。
嗯,我认为问题出在您阅读示例的方式上。让我们看看Wikipedia。我发现:
s1 = a2*b3 - a3*b2
s2 = a3*b1 - a1*b3
s3 = a1*b2 - a2*b2
你只写第二行:s2 = -1 * (a1*b3 - a3*b1)
这完全是一回事...
背景:我正在用 fanuc macro b 为带有测头的加工中心编写一些代码,但我想这有点无关紧要……无论如何,我目前正在编写一个小程序在一个表面上进行 3 次接触并输出一个单位法向量。
开始之前,我在其他编程语言中搜索了向量叉积的示例,当然,我找到了很多。我感到困惑的是 none 我发现的例子否定了 y(或 j)项..这是我在网络上以各种形式发现的:
x = Ay * Bz - By * Az
y = Az * Bx - Bz * Ax
z = Ax * By - Bx * Ay
我错过了什么吗?我认为它应该是这样的:
x = Ay * Bz - By * Az
y = -1 * (Az * Bx - Bz * Ax)
z = Ax * By - Bx * Ay
我的意思是我觉得我一定是错的,因为整个互联网很少出错..但在纸面上只有当我按照自己的方式去做时才会成功...
提前致谢。
嗯,我认为问题出在您阅读示例的方式上。让我们看看Wikipedia。我发现:
s1 = a2*b3 - a3*b2
s2 = a3*b1 - a1*b3
s3 = a1*b2 - a2*b2
你只写第二行:s2 = -1 * (a1*b3 - a3*b1)
这完全是一回事...