51 views (last 30 days)

Hello All, My Question is regarding extracting Plane/Slice of Data from Volume (Orthogonal to a line Passing through TWO Points). AFTER doin all the Vector manipulation, I have plotted LINE, as well as the SURFACE Plane (129*129) that is ORTHOGONAL to the LINE.

No I am stuck with the problem as the ORTHOGONAL PLANE that I have constructed have Coordinates accordingly: x-coordinates=-64:64; y-coordinates=-64:64; AND z-coordinates=VALUES OBTAINED through the EQUATION of PLANE.Now How to MAP these coordinate values to extract data around the given Point. My Code is given .

clc;clear all;

P1=[5 18 10]; % Point P1, Picked from Skeleton Data

P2=[6 19 11]; % Point P2, Picked from Skeleton Data

dv_line=[P2(1)-P1(1) P2(2)-P1(2) P2(3)-P1(3)]; % Direction_Vector of Line

t=linspace(-10,10);

% Vector Equation of Line x=P1(1) +dv_line(1)*t;

x=P1(1) +dv_line(1)*t; % X coordinate

y=P1(2) +dv_line(2)*t; % Y coordinate

z=P1(3) +dv_line(3)*t; % Z coordinate

plot3(x,y,z,'LineWidth',2,'Color','r') % Plot LINEfor Validation of results in 3D

grid on %LINE PLOTTING fINISHED

hold on

pt=[5 18 10];

plot3(pt(1),pt(2),pt(3),'y.','MarkerSize',16)

radius=64;

x=linspace(-radius,radius,2*radius+1);

y=linspace(-radius,radius,2*radius+1);

z=zeros(2*radius+1);

hsp=surf(x,y,z);

rotate(hsp,[0 0 1],0) %Initial Plane

xdO=get(hsp,'XData');

ydO=get(hsp,'YData');

zdO=get(hsp,'ZData');

% Solving Equation of PLANE for obtaining Orthogonal plane

syms x y z;

dv_plane=[x-P1(1) y-P1(2) z-P1(3)]; % Direction Vector of Plane Obtained with point passing through Plane

dot_product=dot(dv_line,dv_plane); % Obtain Dot Product of two Direction Vectors (must be ZERO)

z=solve(dot_product,'z'); % Solve Dot Product for Obtaining equation for z

x=xdO;

y=ydO;

% Generate XY Range for Assignment

z_value=eval(z);

pause(2)

delete(hsp)

hsp2=surf(x,y,z_value); % This is Orthogonal Plane to LINE

xd=get(hsp2,'XData'); % Coordinates of Plane

yd=get(hsp2,'YData');

zd=get(hsp2,'ZData');

% The yellow Point should lie on the plane as we have assumed that the Plane crosses through the point.

John D'Errico
on 25 Mar 2015

It is not at all clear what you are trying to do in that long piece of code, even after I completely untangled the code.

Computing a plane orthogonal to a line is a trivial thing to do however, but all depends on what you intend to do with it. A plane is spanned by two vectors, orthogonal to the line. We can get such a pair of vectors using null.

P1 = rand(1,3)

P1 =

0.91338 0.63236 0.09754

P2 = rand(1,3)

P2 =

0.2785 0.54688 0.95751

V = null(P1 - P2)

V =

-0.079711 0.80195

0.99601 0.040152

0.040152 0.59604

So the columns of V are vectors orthogonal to that line.

We can write any point that lies in the plane as some linear combination of those two vectors, plus some specific point in the plane. So if X0 is a point in the plane, then the equation of the plane is

dot(X - X0,P1 - P2) = 0

What you actually want to do in that mess of code, that I have no idea.

Opportunities for recent engineering grads.

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

Start Hunting!
## 3 Comments

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/189811-extracting-plane-orthogonal-to-a-line-in-3d-space#comment_274504

⋮## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/189811-extracting-plane-orthogonal-to-a-line-in-3d-space#comment_274504

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/189811-extracting-plane-orthogonal-to-a-line-in-3d-space#comment_274506

⋮## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/189811-extracting-plane-orthogonal-to-a-line-in-3d-space#comment_274506

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/189811-extracting-plane-orthogonal-to-a-line-in-3d-space#comment_274539

⋮## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/189811-extracting-plane-orthogonal-to-a-line-in-3d-space#comment_274539

Sign in to comment.