# trigo.py import math # Area del triangolo definito da tre punti # sulla sfera terrestre. def area (lat1,long1,lat2,long2,lat3,long3): cosa=cosenosferico(lat2,long2,lat3,long3) cosb=cosenosferico(lat1,long1,lat3,long3) cosc=cosenosferico(lat1,long1,lat2,long2) sina=math.sqrt(1-cosa*cosa) sinb=math.sqrt(1-cosb*cosb) sinc=math.sqrt(1-cosc*cosc) cosalfa=(cosa-cosb*cosc)/(sinb*sinc) cosbeta=(cosb-cosa*cosc)/(sina*sinc) cosgamma=(cosc-cosa*cosb)/(sina*sinb) alfa=math.acos(cosalfa); beta=math.acos(cosbeta) gamma=math.acos(cosgamma) A=alfa+beta+gamma-math.pi; r=6378 return r*r*A # cos(a) in funzione di latitudini e longitudini. def cosenosferico (lat1,long1,lat2,long2): return singradi(lat1)*singradi(lat2)+ \ cosgradi(lat1)*cosgradi(lat2)*cosgradi(long2-long1) # coseno dell'angolo espresso in gradi. def cosgradi (g): return math.cos(g*math.pi/180) # Distanza sulla sfera terrestre. def dist (lat1,long1,lat2,long2): cosa=singradi(lat1)*singradi(lat2)+ \ cosgradi(lat1)*cosgradi(lat2)*cosgradi(long2-long1) return math.acos(cosa)*6378 # seno dell'angolo espresso in gradi. def singradi (g): return math.sin(g*math.pi/180) # tangente dell'angolo espresso in gradi. def tangradi (g): return math.tan(g*math.pi/180)