3D로 3 점에서 평면을 구성하려고합니다. 이것을 달성하기 위해 투영 기하학을 사용하고 싶습니다.투영 기하학 - 고유를 사용하여 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
을 설정하고 싶습니다. 누군가 나를 사용할 올바른 방법을 가르쳐 주시겠습니까? 당신에게 3 행 벡터를 제공하는 4 행 벡터를 곱한
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