Sync from remote server: 2025-10-12 18:56:41
This commit is contained in:
42
ATD/CalcoloStar_Report.m
Executable file
42
ATD/CalcoloStar_Report.m
Executable file
@@ -0,0 +1,42 @@
|
||||
%% Funzione che calcola i segmenti della stella
|
||||
function SegStar = CalcoloStar_Report(X_TuL,Z_TuL,Verso,Segmenti,SegStar,dim)
|
||||
|
||||
X1 = X_TuL(:,1);
|
||||
Z1 = Z_TuL(:,1);
|
||||
X2 = X_TuL(:,1);
|
||||
Z2 = Z_TuL(:,1);
|
||||
X1f = X_TuL(:,end);
|
||||
Z1f = Z_TuL(:,end);
|
||||
X2f = X_TuL(:,end);
|
||||
Z2f = Z_TuL(:,end);
|
||||
for J = 1:dim
|
||||
N1 = Segmenti(J,1); % Numero primo punto
|
||||
N1b = Segmenti(J,2); % Numero primo punto b
|
||||
C1 = isnan(Segmenti(J,2)); % cerco se la seconda colonna è un NaN
|
||||
N2 = Segmenti(J,3); % Numero secondo punto
|
||||
[~,chc] = size(Segmenti);
|
||||
if chc == 3 % non c'è la quarta colonna
|
||||
C2 = 1;
|
||||
else
|
||||
N2b = Segmenti(J,4); % Numero secondo punto b
|
||||
C2 = isnan(Segmenti(J,4)); % cerco se la quarta colonna è un NaN
|
||||
end
|
||||
if C1 == 0 % uso la media fra due nodi per il punto di inizio
|
||||
X1(N1,1) = (X_TuL(N1,1) + X_TuL(N1b,1))/2;
|
||||
X1f(N1,end) = (X_TuL(N1,end) + X_TuL(N1b,end))/2;
|
||||
Z1(N1,1) = (Z_TuL(N1,1) + Z_TuL(N1b,1))/2;
|
||||
Z1f(N1,end) = (Z_TuL(N1,end) + Z_TuL(N1b,end))/2;
|
||||
end
|
||||
if C2 == 0 % uso la media fra due nodi per il punto di arrivo
|
||||
X2(N2,1) = (X_TuL(N2,1) + X_TuL(N2b,1))/2;
|
||||
X2f(N2,end) = (X_TuL(N2,end) + X_TuL(N2b,end))/2;
|
||||
Z2(N2,1) = (Z_TuL(N2,1) + Z_TuL(N2b,1))/2;
|
||||
Z2f(N2,end) = (Z_TuL(N2,end) + Z_TuL(N2b,end))/2;
|
||||
end
|
||||
if Verso(J,1) && Verso (J,2) == 1 % Calcolo Orario per entrambi i punti (standard)
|
||||
S_fin(J,1) = ((X1f(N1)- X2f(N2)).^2+(Z1f(N1)-Z2f(N2)).^2).^0.5;
|
||||
S_ini(J,1) = ((X1(N1)- X2(N2)).^2+(Z1(N1)-Z2(N2)).^2).^0.5;
|
||||
SegStar(J,1) = S_fin(J,1) - S_ini(J,1);
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user