Algoritmo Raggio Curvatura Parere!!
Salve,
ho la necessit� di calcolare il raggio di curvatura in tutti i punti
di una
spezzata (polilinea 3d) a partire da longitudine e latitudine e quota,
e l'algoritmo VB che ho creato � il seguente:
questa routine converte le coordinate da sferiche a cartesiane
si calcola le derivate prime e seconde delle componenti
approssimandole al primo e secondo ordine rispettivamente
poi si calcola il raggio di curvatura con la formula r=|P'^3|/|P' x
P''|
P rappresenta il punto in coordinate cartesiane, ed x indica il
prodotto vettoriale
rl � la lunghezza del vettore
rtl � il raggio terrestre relativo alla zona di interesse
For i = 0 To rl
x(i) = rtl * Cos(lat(i)) * Cos(lon(i))
y(i) = rtl * Cos(lat(i)) * Sin(lon(i))
Z(i) = rtl * Sin(lat(i)) + q(i)
Next i
For i = 2 To rl - 2
dx(i) = (1 / dk) * (x(i) - x(i - 1))
dy(i) = (1 / dk) * (y(i) - y(i - 1))
dz(i) = (1 / dk) * (Z(i) - Z(i - 1))
ddx(i) = (1 / dk ^ 2) * (x(i + 1) - 2 * x(i) + x(i - 1))
ddy(i) = (1 / dk ^ 2) * (y(i + 1) - 2 * y(i) + y(i - 1))
ddz(i) = (1 / dk ^ 2) * (Z(i + 1) - 2 * Z(i) + Z(i - 1))
dP(i) = (dx(i) ^ 2 + dy(i) ^ 2 + dz(i) ^ 2) ^ (1 / 2)
PV(i) = ((dy(i) * ddz(i) - dz(i) * ddy(i)) ^ 2 + (dz(i) *
ddx(i) - d(i) * ddz(i)) ^ 2 + (dx(i) * ddy(i) - dy(i) * ddx(i)) ^ 2) ^
(1 / 2)
If PV(i) <> 0 Then
r(i) = (dP(i) ^ 3) / PV(i)
Else
r(i) = 0
End If
Next i
Mi sapete dire se vi sembra corretto!?!
Grazie
Federico
Received on Fri Jan 07 2005 - 12:50:33 CET
This archive was generated by hypermail 2.3.0
: Fri Nov 08 2024 - 05:10:22 CET