簡體   English   中英

求解齊次坐標 (x,y,z,w) 中兩個 3D 向量的叉積

[英]Solving the crossproduct of two 3D vectors in homogenuous coordinates (x,y,z,w)

我想在沒有 numpy 或任何導入的情況下計算x和向量y的叉積。

x = Vector(1,2,1,0)  
y = Vector(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
crossW = 0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM