How to build a graph like the triangle of velocity vectors
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello, I going to make an interface in App Designer, so I have to build in Axes the graph of the triangle of velocity vectors. Examples:
Interface should be like this and graph displayed in axes here:
Input components: Q, H, n, D_1. Calculation with input components: k_1 = 1.34; % 1.15-.1.3 k_2 = 1.1; % 1.05-1.15 k = 0.8; u_1 = D_1 * pi * n / 60; % c_0 = 0.06 * power(Q * n * n, 1 / 3); c_1m = k_1 * c_0; c_2m = k_2 * c_0; dbetta = 2 * pi / 180; c_1u = 0; betta_1 = atan(c_1m / (u_1 - c_1u)) + dbetta; w_1 = c_1m / sin(betta_1); % w_2inf = 0.7 * w_1; betta_2 = asin((w_1/w_2inf) * c_2m * k_2 * sin(betta_1) / (c_1m * k_1)); w_2 = c_2m / sin(betta_2); % He = H / (eta_g * k); u_2 = (c_2m/(2*tan(betta_2))+power(((c_2m/(2*tan(betta_2)))^2) + g*He + c_1u*u_1, 1 / 2)); % c_1 = power(u_1^2 + w_1^2 - 2 * u_1 * w_1 * cos(betta_1), 1/2); % c_2 = power(u_2^2 + w_2^2 - 2 * u_2 * w_2 * cos(betta_2), 1/2);
Graph should show this components: u1, w1, c1, cm1, beta1, u2, w2, c2, cm2, beta2
Can you help me with this issue?
0 Commenti
Risposte (1)
Kanishk
il 11 Nov 2024
To make triangle in MATLAB figures you can write a function which takes the length of two sides and two angles of the triangle as the input. Using some algebra, we can easily calculate the length of the third side and the angle.
After deciding the base point, the length and angle can be used to determine the coordinates of the points. The ‘arrow’ function from MATLAB File Exchange can then be used to plot the lines with arrows on MATLAB Figure.
Here is the demo code for the same.
function plotTriangle(u, w, beta, alpha)
% Convert angles from degrees to radians
beta_rad = deg2rad(beta);
alpha_rad = deg2rad(alpha);
% Calculate the third side using the law of cosines
c = sqrt(u^2 + w^2 - 2 * u * w * cos(beta_rad));
% Calculate the coordinates of the points
A = [0, 0]; % Starting point A
B = [-u, 0]; % Point B along the x-axis
% Calculate coordinates of point C using trigonometry
Cx = u - (w * cos(beta_rad));
Cy = w * sin(beta_rad);
C = [-Cx, Cy];
% Plot the triangle using arrows
figure;
hold on;
axis('manual');
arrow([A(1), A(2)], [B(1), B(2)], 'Length', 150); % u
arrow([B(1), B(2)], [C(1), C(2)], 'Length', 150); % w
arrow([A(1), A(2)], [C(1), C(2)], 'Length', 150); % c
% Add labels to the sides
text((A(1) + B(1))/2, (A(2) + B(2))/2 - 0.2, 'u', 'FontSize', 12, 'HorizontalAlignment', 'center');
text((B(1) + C(1))/2 - 0.2, (B(2) + C(2))/2, 'w', 'FontSize', 12, 'HorizontalAlignment', 'center');
text((A(1) + C(1))/2 + 0.2, (A(2) + C(2))/2, 'c', 'FontSize', 12, 'HorizontalAlignment', 'center');
text(A(1) - 0.6, A(2) + 0.6, '\alpha', 'FontSize', 12);
text(B(1) + 0.6, B(2) + 0.6, '\beta', 'FontSize', 12);
% Set plot limits
axis equal;
xlim([B(1)-1, A(1)+1])
ylim([-1, Cy+1]);
% Add labels and grid
xlabel('X');
ylabel('Y');
title('Triangle Plot');
grid on;
hold off;
end
Here is the link to ‘arrow.m’ on MATLAB File Exchange.
Hope This Helps!
Thanks
0 Commenti
Vedere anche
Categorie
Scopri di più su 2-D and 3-D Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!