我有一组包含(理论上)共面曲线的点。我的问题是飞机是任意的,并且每次我收集数据时都可以移动(这些点是从摄像机收集的)。我想知道你们是否可以帮助我弄清楚如何:
我相信我知道如何做第2点,主要是第1点,我正在努力,但我不介意第二点的帮助。
非常感谢!
答案 0 :(得分:1)
在您的数据中找到3分A,B,C
它们不得单线,并且应尽可能远离彼此以提高准确性。
构建U,V
基础向量
U = B-A
V = C-A
正常化
U /= |U|
V /= |U|
使U,V
垂直
W = cross(U,V) // this will be near zero if A,B,C are on single line
U = cross(V,W)
将您的数据转换为U,V
平面
仅适用于数据计算中的任何点P=(x,y,z)
:
x' = dot(U,P)
y' = dot(V,P)
如果您还需要反向转换:
P = x'*U + y'*V
如果您想要/有一个原点A
,转换将是:
x' = dot(U,P-A)
y' = dot(V,P-A)
P = A + x'*U + y'*V
这会在您的2D坐标中将A
映射到(0,0)
。
如果你不知道你的矢量数学,请看:
在底部,您将找到向量运算的等式。希望有所帮助...