directions from cartesian xy coordinate pairs
조회 수: 5 (최근 30일)
이전 댓글 표시
Hi,
I am trying to work out directions from cartesian coordinate pairs
My data is below. I have (x,y) starting positions and (x,y) finishing position coordinates and I am trying to work out which cardinal direction axis they are moving towards given that xc and yc are the middle of the 'world'.
The data set of interest below are data2, I have applied various transfomrations that don't matter too much. What is clear is that the starting position is always near the cnetre of the screen and moves away generally along one cardinal. I just need to know where elegantly. I can see the first one goes up, second one right and third one left. How do I calculate this?
data = [502.1,354.9,512.5,151.9;
517.2,366.8,707.3,365.4;
508.3,374.1,293.8,368.9;
519.9,378.4,726.8,349.6;
499.5,362.2,726.7,356.4;
498.4,371.3,707.4,335.3;
492.3,362.3,494.6,149.8;
518.1,377.7,533.7,160.7;
504.7,372.3,509.6,180.7;]
xc = 512;
yc = 384;
data2 = [];
for i = 1:length(data)
x1 = (data(i,1)-xc)/26
y1 = (yc-data(i,2))/26
x2 = (data(i,3)-xc)/26
y2 = (yc-data(i,4))/26
data2 = [data2; x1 y1 x2 y2]
slope(i) = y2-y1/x2-x1
end
댓글 수: 0
답변 (1개)
David Young
2011년 8월 30일
Have a look at the atan2 function. I suspect that xc and yc and the factor of 26 are irrelevant, and you just need something like
heading = atan2(y2-y1, x2-x1);
The result will be in radians. You can convert to degrees if you wish to.
It is very worthwhile to plot out some of the positions by hand on a sheet of graph paper, measure the directions with a protractor, and compare this with the results you get, so that you can be confident about which direction has heading 0 and whether the heading increases clockwise or anticlockwise (counterclockwise).
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Polar Plots에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!