Find coordinates point M
8 ビュー (過去 30 日間)
古いコメントを表示

I need to find the coordinates of point M. Has anyone got any idea of how to find them?
Thanks in advance
2 件のコメント
David Goodmanson
2017 年 12 月 15 日
If you put A = [Ax Ay 0], same style for B and P, then
u = cross([0 0 1],B-A);
u = u/norm(u);
is a unit vector in the direction perpendicular to the line AB. From there you should be able to construct the vector from P to M and find M.
採用された回答
Jim Riggs
2017 年 12 月 15 日
編集済み: Jim Riggs
2017 年 12 月 15 日
See attachment.
The symbolic solution will be very messy and require quite a lot of algebra. If you have the symbolic math toolbox, Matlab can do this.
I like David Goodmanson's idea. Using his approach I get:
Ax = ; Ay = ;
Bx = ; By = ;
k = ; % This is a fraction (from 0 to 1) Makes sure that P lies on AB
Px = k*(Bx-Ax);
Py = k*(By-Ay);
d0 = ;
% Calculate distance from P to B
dPB = sqrt((Bx-Px)^2+(By-Py)^2);
Mx = Px - dPB/dPB^2*(By-Py)*d0;
My = Py - (Bx-Px)/(By-Py)*(Mx-Px);
See the attachment (2) for the derivation.
With this approach, d0 is a signed quantity. If you set d0 to a negative value, M will be on the opposite side of line AB.
0 件のコメント
その他の回答 (1 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!