How I can check if planes are parallel to each other in 3d?

Aknur · Apr 15, 2023 · 2K views
Question
Dear all kindly ask how I can check if any of these six planes of cube are parallel to each other, and which planes are adjacent to each other   How I can check if planes are parallel to each other. I have cube 3*3*3 dimensions and there are planes.   Thank you so much in advance for your help and advice   My final goal is to check if one of my any point A(X0,Y0,Z0) lies in one of the plane and check if second point B(X1,Y1,Z1) lies in any of these planes. And at the end check if these two planes are parallel or adjusting to each other   planes(:,:,1) = [0 3 3; 0 0 3; 0 3 0; 0 0 0; 0 0 0]; planes(:,:,2) = [0 0 3; 3 0 3; 0 0 0; 3 0 0; 0 0 0]; planes(:,:,3) = [3 0 3; 3 3 3; 3 0 0; 3 3 0; 3 0 0]; planes(:,:,4) = [3 3 3; 0 3 3; 3 3 0; 0 3 0; 0 3 3]; planes(:,:,5) = [0 3 0; 3 3 0; 0 0 0; 3 0 0; 0 0 0]; planes(:,:,6) = [0 3 3; 3 3 3; 0 0 3; 3 0 3; 0 0 3]; location_plane = 6; for j=1:6 % j is number of plane j plane = planes(:,:,j); p0 = plane(1,:); %p0 is top left point of plane p1 = plane(2,:); %p1 is top right point of plane p2 = plane(3,:); %p2 is bottom left point of plane p3 = plane(4,:); %p3 is bottom right point of plane V0 = plane(5,:); %point on the plane  
Expert Answer
Profile picture of Prashant Kumar
Prashant Kumar PhD Expert
Answered Aug 24, 2026
planes(:,:,1) = [0 3 3; 0 0 3; 0 3 0; 0 0 0; 0 0 0];
planes(:,:,2) = [0 0 3; 3 0 3; 0 0 0; 3 0 0; 0 0 0];
planes(:,:,3) = [3 0 3; 3 3 3; 3 0 0; 3 3 0; 3 0 0];
planes(:,:,4) = [3 3 3; 0 3 3; 3 3 0; 0 3 0; 0 3 3];
planes(:,:,5) = [0 3 0; 3 3 0; 0 0 0; 3 0 0; 0 0 0];
planes(:,:,6) = [0 3 3; 3 3 3; 0 0 3; 3 0 3; 0 0 3];

6 different planes, represented by points in each plane. First, I'll verify that each set of 5 points you designated do indeed lie in a plane in R^3. (Hey you might have made a mistake.)

for i = 1:6
  rank(planes(:,:,i) - planes(1,:,i))
end
ans = 2
ans = 2
ans = 2
ans = 2
ans = 2
ans = 2

Two planes are parallel if they have the same normal vector (Though you could multiply by -1.) So just compute the normal vectors to each plane.

Nullvecs = zeros(6,3);
for i = 1:6
  nullvecs(:,i) = null(planes(:,:,i) - planes(1,:,i));
end
nullvecs
nullvecs = 3×6
     1     0     1     0     0     0
     0    -1     0     1     0     0
     0     0     0     0     1     1

Now, look at those vectors. See that planes 1 and 3 have the same normal vectors, The signs of the normal vectors are the same. Planes 2 and 4 have a sign flip on the normal vectors. And planes 5 and 6 are also parallel. In the last case again, the normal vectors had the same signs. Could we identify those pairs automatically? Yes, of course. We can compute a corrrelation matrix, then look for elements of the correlation matrix that are exactly either 1 or -1. I'll put a small tolerance on that result.

 

C = abs(abs(corr(nullvecs) - eye(6)) - 1)<2*eps
C = 6×6 logical array
   0   0   1   0   0   0
   0   0   0   1   0   0
   1   0   0   0   0   0
   0   1   0   0   0   0
   0   0   0   0   0   1
   0   0   0   0   1   0

Note that I subtracted the identity matrix so we don't identify each vector as the same as itself.

[I,J] = find(C);
unique(sort([I,J],2),'rows')
ans = 3×2
     1     3
     2     4
     5     6

So there were 3 pairs of parallel planes identified.

100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!