How can I get then angle between a line connecting two points in the plot and a vector (with only direction specified)?
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sooraj Narayan
le 10 Juil 2019
Commenté : Bjorn Gustavsson
le 10 Juil 2019

As you can see above, I have x and y co-ordinates for n number of Wind Turbines in a wind farm. Suppose there is a vector (wind speed direction) with direction in degrees, how do i find the angle between the line connecting all the other points to any point i,j in the x-y plane and the direction vector (whose onlyu data known is the direction?
xy=[0 0
0 800
0 1600
0 2400
500 0
500 800
500 1600
500 2400
1000 0
1000 800
1000 1600
1000 2400
1500 0
1500 800
1500 1600
1500 2400
2000 0
2000 800
2000 1600
2000 2400];
The above matrix shows the x-y coordiantes of 20 points in the x-y plane.
I need the angle between the line connecting point 1 to all other 19 points and a vector with a direction (say 45 degrees).
0 commentaires
Réponse acceptée
Ruben Costa
le 10 Juil 2019
Hi, my aproach is here!
xy=[0 0
0 800
0 1600
0 2400
500 0
500 800
500 1600
500 2400
1000 0
1000 800
1000 1600
1000 2400
1500 0
1500 800
1500 1600
1500 2400
2000 0
2000 800
2000 1600
2000 2400]; %This is your matrix with the points
angle=[]; %this is where the angles will be stored
for i=2:size(xy,1)
nline=i-1;
angle(nline) = (atan((xy(i,2)-xy(1,2))/(xy(i,1)-xy(1,1))) - atan((2-0)/(2-0))) * 180/pi;
end
- (xy(i,2)-xy(1,2))/(xy(i,1)-xy(1,1)) ---> this is the value of the tangent of the line created with the point (0,0) and other point of the matrix xy
- (2-0)/(2-0)) ---> this is the value of the tangent of the line created with the point (0,0) and point (2,2) because i knew that this line would have 45º
Then I calculated the arctan( the angles) of both and subtracted to know the angle between them. Then I only made the conversion from radians to degrees!
Hope it helps!
0 commentaires
Plus de réponses (1)
Bjorn Gustavsson
le 10 Juil 2019
Best way to go about this is to convert the "wind"-direction to a wind-vector, then use:
w_angle = atan2(norm(cross(wv,b)), dot(wv,b));
Where b is the vector between your points.
HTH
2 commentaires
Bjorn Gustavsson
le 10 Juil 2019
It would depend on the convention for your wind-direction, lets say we use the mathematical notation with phi_w counterclockwise from East, then, with x-component in the Easterly direction, y towards north:
wv = [cos(phi_w), sin(phi_w) 0];
Voir également
Catégories
En savoir plus sur Wind Power dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!