我正試圖用三維中的三個點構建飛機。 我想用射影幾何來實現這一點。投影幾何 - 使用特徵在3D中尋找飛機
據我所知,一個可以「簡單」解決以下找到一個平面:
A * x = 0 ,where
A is a 3x4 Matrix - each row being one of the points (x,y,z,1)
x is the plane I want to find
我知道,我需要有一個約束。所以我想設置x(3) = 1
。 有人可以請我指出正確的方法來使用?
到目前爲止,我有以下代碼:
Eigen::Vector4f p1(0,0,1,1);
Eigen::Vector4f p2(1,0,0,1);
Eigen::Vector4f p3(0,1,0,1);
Eigen::Matrix<float,3,4> A;
A << p1.transpose(), p2.transpose(), p3.transpose();
// Throws compile error
// Eigen::Vector4f Plane = A.jacobiSvd(ComputeThinU | ComputeThinV).solve(Vector4f::Zero());
//throws runtime error (row-number do not match)
// Eigen::Vector4f Plane = A.fullPivHouseholderQr().solce(Eigen::Vector4f::Zero());
我會去一個非矩陣方法,請參閱https://en.wikipedia.org/wiki/Plane_(geometry)#Method_3。 – Shaana
這個想法是使用投影幾何有簡單的方法來測試其他點是否屬於這個平面,只需計算'Plane.transpose()* otherPoint' – NewTech