the projected distances between the line and edge A

3 visualizaciones (últimos 30 días)
Mariam Ali
Mariam Ali el 5 de En. de 2022
Comentada: Mariam Ali el 7 de En. de 2022
I have rectangular 3D surface with coordinates of 4 sides A=[1.6 0.8441 1.53]; B=[1.6 2.5441 1.53]; C=[1.6 2.5441 1.23]; D=[1.6 0.8441 1.23];
and ray passing throug it with ends p1= [-8.4153 6.5982 2.6492] , p2=[ 2.5736 1.6997 1.3800].
The line is intersecting the surface at point I=[ 1.6000 1.6977 1.4930]
i want to find projected distances between the line and edge A.
for that i have to find projection point of line. (like gram smith )
how can i find projection of line on surface and then calculate its distance to edge A
  4 comentarios
Torsten
Torsten el 6 de En. de 2022
??
An edge is a line connecting two points. A is a point, thus it cannot be an edge.
Do we only have problems communicating in English or do you mean something else with "edge" ?
Mariam Ali
Mariam Ali el 7 de En. de 2022
I am sorry i mean point A. ABCD makes a rectangular surface.
So i need Distance between projection of line on surface and point A

Iniciar sesión para comentar.

Respuesta aceptada

Torsten
Torsten el 6 de En. de 2022
You will have to check for correctness:
% Project p1 on plane ABC (gives point p1-proj)
Mat = [(B-A)*(B-A).' , (B-A)*(C-A).';(B-A)*(C-A).' ,(C-A)*(C-A).'];
rhs = [(B-A)*(p1-A).';(C-A)*(p1-A).'];
coord = Mat\rhs;
p1_proj = A + coord(1)*(B-A) + coord(2)*(C-A);
% Project A on line connecting p1_proj and I
P = p1_proj + ( (I-p1_proj).'\(A-p1_proj).' )*(I-p1_proj);
% Calculate distance
distance = norm(P-A)
  3 comentarios
Torsten
Torsten el 6 de En. de 2022
Editada: Torsten el 6 de En. de 2022
Solve
minimize: (p1-(A+lambda*(B-A)+mu*(C-A)))*(p1-(A+lambda*(B-A)+mu*(C-A)))'
for lambda and mu. Call the solution lambda_sol and mu_sol.
Then
p1_proj = A+lambda_sol*(B-A)+mu_sol*(C-A)
is the projection of p1 on the plane ABCD.
We know that I is in the plane ABCD. Thus the line through p1_proj and I is the projection of the ray
through p1 and p2 on ABCD. To find the point P on this line with minimum distance to A,
solve
minimize: (A-(I+nu*(p1_proj-I)))*(A-(I+nu*(p1_proj-I)))'
for nu. Call the solution nu_sol.
Then
P = I+nu_sol*(p1_proj-I)
is the point on the line through p1_proj and I with minimum distance to A.
You know how to solve the two unconstrained minimization problems ?
Building partial derivatives with respect to the unknowns, setting the partial derivatives to 0 and solving for the unknowns ?
Torsten
Torsten el 6 de En. de 2022
In your special case, everything is of course much simpler since the points A,B,C and D share the same x-coordinate.
This means that p1 and p2 projected on the plane spanned by A,B,C and D are
p1_proj = [1.6 6.5982 2.6492]
p2_proj = [1.6 1.6997 1.3800]
Now you can work in two instead of three dimensions and calculate the distance of A' = [0.8441 1.53] to the line passing through p1_proj' = [6.5982 2.6492] and p2_proj' = [1.6997 1.3800]. This gives you the distance of A to the projected ray through p1 and p2.
I guess that you should have a formula for this in your lecture notes.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Smoothing en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by