points lying on a line from a particular distance
3 ビュー (過去 30 日間)
古いコメントを表示
Hi All, In my matlab program , I find two points from solving the line equation (given a point and the angle) and the distance equation. ex:
syms x y
[solx,soly]=solve(y-m*x==yc-m*xc , (x-xc).^2+(y-yc).^2==d^2)
here (xc,yc) is the point coordinate, m is tand(angle) and d is distance. my angle rotates from 0-360 degrees.
my problem is (solx,soly) gives me two solutions, although I want to calculate only in angle=0 degrees direction. For example, I do not want the solution for angle 0 and 360 at the same time. Do you know how I can just sort out the point lying in angle 0 direction for instance?
2 件のコメント
Matt J
2017 年 2 月 18 日
I do not want the solution for angle 0 and 360 at the same time
You should be letting the angle run from only 0 to 180. Angles theta and 180+theta will always correspond to the same line.
Even then, though, you will have 2 intersection points.
採用された回答
Matt J
2017 年 2 月 18 日
A better way to obtain the points might be parametrically
theta=0:359;
x=xc+d*cosd(theta);
y=yc+d*sind(theta);
0 件のコメント
その他の回答 (1 件)
Matt J
2017 年 2 月 18 日
編集済み: Matt J
2017 年 2 月 18 日
You should be restricting the angle to (-90, 90). tan() has redundant or undefined values outside that interval. In particular, you must avoid angles +/-90 deg. where yc-m*xc will be infinite.
This restriction will still give you two solutions, but you can throw away the solution for which x < xc.
2 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!