Algoritmo Raggio Curvatura Parere!!

From: federico <pretzel_at_freemail.it>
Date: 7 Jan 2005 03:50:33 -0800

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