Clear Filters
Clear Filters

Info

This question is closed. Reopen it to edit or answer.

How to get the points on line or points which certain distance from the line

1 view (last 30 days)
I have 3D matrix file where XYZ are lon,lat and height. I plot these XYZ value using scatter3. Now I want to plot profile of height (along a line in km) of the data where xaxis:distance along line in km and yaxis:Z value.In this case points (Z value) on the line for specific x and y value distance from the line will pick up for profile plot. I wrote the below code to do that but could not specify value for x and y limit to pick up the points on line and the points of certain distance from the line horizontally and vertically.
X_start=-7.32;%starting X point for line A
Y_start=5.08;%starting Y point for line A
X_end=-7.23;%ending X point for line A'
Y_end=5.31;%ending Y point for line A'
X_h=-7.32;%X point to specify Horizontal distance
Y_h=5.09;%Y point to specify Horizontal distance
m=(Y_end-Y_start)./(X_end-X_start);%slope/gradient between Star and Ending point
b=Y_start-m*X_start;%intercept of Y
x=[X_start,X_end];
y=m*x+b;
%distance specify horizontally
d_h=sqrt((X_start-X_h)^2+(Y_start-Y_h)^2);%Specify the distance Horizontally
t=d_h;
v_X = (linspace(X_start,X_end,t))';%Line X
v_Y = (linspace(Y_start,Y_end,t))';%Line Y
F = scatteredInterpolant(X,Y,Z);%Scatter interpolation
v_Z=F(v_X,v_Y);%Finding query Z
% distacne calculation from Starting to Ending Point
v_X_ref=v_X(1,:);%Set first X point A as reference
v_X_ref=v_Y(1,:);%Set first Y point A as reference
for i=1:length(v_X)
n=v_X(i,:);
e=v_Y(i,:);
d(:,i)=(sqrt((v_X_ref-e)^2+(v__ref-n)^2))/1000;
end
Please help me to solve this. Thank you!
  7 Comments
NS
NS on 2 Nov 2017
Thanks for the response. This there are actual value. I select the X_start and y_start, X_end and Y_end like (X1,Y1) and (X2,Y2) to create line on the XYZ scatter plot.
Vaidyanathan Thiagarajan
Vaidyanathan Thiagarajan on 3 Nov 2017
Hi,
I am also getting the same error as above. Can you please post the full code?
I am not sure what is your question. However, it looks like you are trying to do some basic geometric operations with points and lines.
To sample points on a line, you can follow the ideas in this post :
To check if a point is on a given line segment, you can follow the ideas in this post :
To compute the shortest distance between a line and point, you follow the solution in this post :
Hope it helps!
Best Regards,
Vaidyanathan

Answers (0)

This question is closed.

Community Treasure Hunt

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

Start Hunting!