我想计算x和向量y的叉积,而没有numpy或任何输入。x =向量(1,2,1,0)y =向量(0,1,2,1)
但是我的结果总是错误的。我在这里想念什么?
def crossproduct(x, y):
final = Vector()
final.v[0] = y.v[1] * v.v[2] - x.v[2] * y.v[1]
final.v[1] = y.v[2] * v.v[3] - x.v[3] * y.v[2]
final.v[2] = y.v[3] * v.v[0] - x.v[0] * y.v[3]
final.v[3] = y.v[0] * v.v[1] - x.v[1] * y.v[0]
return final
解决Vec4上的叉形与解决Vec3上的叉形相同,因为无论如何使用w分量,您都在3维上。
检查您的交叉公式,我通常使用的公式如下:
crossX = vector1.Y * vector2.Z - vector2.Y * vector1.Z
crossY = -(vector1.X * vector2.Z - vector2.X * vector1.Z)
crossZ = vector1.X * vector2.Y - vector2.X * vector1.Y