find the intersection point between 2 plane in matlab

Let's say I have: the set of 3D data point (xi,yi,zi) contains around 10,000 points located in plane L
I also have : plane M which is specified by normal vector n , and point A(xA,yA,zA). How to find the intersection point between 2 plane L & M?

 채택된 답변

ha ha
ha ha 2018년 5월 13일
편집: ha ha 2018년 5월 13일

0 개 추천

Plane L contains 10,000 points in 3D space OXYZ
Plane M contains (normal_vector & center_point). Firstly, finding the perpendicular distance of each point in plane L to the plan M. Example: 10,000 distance corresponding to 10,000 points.
Then check the condition to the Plane M. If the distance < distance_threshold. Example: 1cm or 5mm ====> then, choose those point satisfying that condition only

추가 답변 (1개)

Ameer Hamza
Ameer Hamza 2018년 5월 13일

0 개 추천

For plane L find a normal to that plane using this FEX submission. This will give you a normal and a point on the plane L. Since you already have a normal and point to plane M, use another FEX submission to calculate their intersection.

댓글 수: 7

ha ha
ha ha 2018년 5월 13일
편집: ha ha 2018년 5월 13일
You give a promise solution. But I use the function "plane_intersect" as your suggestion, the result is given only 1 point P(belong to plane L), not the set of intersection data https://www.mathworks.com/matlabcentral/fileexchange/17618-plane-intersection
plane_intersect() can returns two arguments, first is point and second in the direction vector of the line. You can use the two to construct a line. Call it like this
[point direction] = plane_intersect(...);
Yes, I know that plane_intersect() can returns two arguments (point & direction). But How can I return the intersection point(x,y,z) which is belong to the plane L from that results
The point returned is the point of intersection. It belongs to both planes. So the point returned by plane_intersect lies of plane L as well as on plane M.
ha ha
ha ha 2018년 5월 13일
편집: ha ha 2018년 5월 13일
The point returned is the point of intersection, and this is only 1 point coordinate.
Assume: the plane L contains 10,000 points. And example, the intersection contains 1,000 points. How can I return that 1,000 points intersection (x,y,z) which is belong to the plane L from that results
If you just want to get 1000 points which lie on the line of intersection and plane L. Then you just need to sample the line of intersection. One example
p = [1 2 3]; % point of intersection returned by 'plane_intersect'
dir = [0.2 0.6 0.6]; % direction of intersection returned by 'plane_intersect'
t = (0:0.1:100)'; % to get 1000 samples
points = p.*(1-t)+(p+dir).*t; % p and dir must be row vectors
If you want points that lie on the line of intersection and also belongs to the initial dataset (xi, yi, zi) for plane L, then it is highly unlikely that any of that point will precisely lie on the line of intersection.
Ok, thank @Ameer Hamza for providing me the idea.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Polynomials에 대해 자세히 알아보기

태그

질문:

2018년 5월 13일

편집:

2018년 5월 13일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by