如何创建任意,共面三维曲线的2d图

时间:2017-06-14 20:10:21

标签: math plot 3d projection curve

我有一组包含(理论上)共面曲线的点。我的问题是飞机是任意的,并且每次我收集数据时都可以移动(这些点是从摄像机收集的)。我想知道你们是否可以帮助我弄清楚如何:

  1. 找到最接近这些点共面的平面
  2. 以这样一种方式投射这个平面上的点,这样就可以得到一条二维曲线
  3. 我相信我知道如何做第2点,主要是第1点,我正在努力,但我不介意第二点的帮助。

    非常感谢!

1 个答案:

答案 0 :(得分:1)

  1. 在您的数据中找到3分A,B,C

    它们不得单线,并且应尽可能远离彼此以提高准确性。

  2. 构建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)
    
  3. 将您的数据转换为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)

  4. 如果你不知道你的矢量数学,请看:

    在底部,您将找到向量运算的等式。希望有所帮助...