Newsgroup: it.comp.appl.access
Titolo: [forse OT] area di un poligono

qcheduno sa come calcolare l'aera di un poligono conoscendo i vertici
dello stesso?
grazie
___________________________________________
"in fondo anche l'amore è un sovrappensiero..."
m.querc...@sis-ter.it
Togli NOSPAM dall'e-mail per rispondere.

 dello stesso?
Intendi dire che conosci le coordinate cartesiane di tali vertici?
Se è così si può fare.
Prima di tutto bisogna vedere se il poligono è regolare oppure no.
Supponiamo di sì.
In questo caso l'area è infatti
perimetro * apotema / 2, giusto?
Il perimetro lo puoi trovare, ti fai la distanza di tutti i vertici (formula
della distanza tra due punti) e le sommi.
L'apotema c'è da lavorarci un po'.
L'apotema è la distanza del centro del poligono da uno dei lati, quindi
sapendo le coordinate del centro applichi la formula della distanza di un
punto da una retta dopo aver trovato l'equazione della retta passante da due
vertici qualunque (equazione della retta passante per due punti).
Ti servono le coordinate del centro. Sempre nell'ipotesi del poligono
regolare, ma con un numero pari di lati, nel centro passano tutte le rette
che passano per i vertici opposti. Ti calcoli le equazioni di queste rette,
ne fai l'intersezione, quello è il centro.
Nel caso del pentagono, potresti trovare il punto medio di uno dei lati
laterali, ne fai la distanza con la retta del lato oposto, la metà di questa
distanza è l'apotema.
Nel caso di un poligono irregolare (ma questo procedimento chiaramente lo
puoi usare anche nell'altro caso), parti da un vertice e unisci con tanti
segmenti tutti i vertici opposti. Otterrai n - 2 triangoli (n è il numero di
vertici). Dovrai calcolare le aree di questi triangoli scaleni (in generale)
e sommarle. Per farlo puoi trovare la misura dei tre lati con la distanza
tra punti e poi usare la formula di Erone che è
sqrt(p*(p-a)*(p-b)*(p-c)) dove p è il semiperimetro e a,b,c sono le misure
dei tre lati.
Mi raccomando, la prossima settimana compito in classe...
Antonio

Esiste, in verità, un'altra formula, basata in un certo modo sul calcolo
integrale, che funziona con qualsiasi poligono:
1) Si devono ordinare i vertici in senso orario, con il primo vertice ripetuto
alla fine: siano x[i] e y[i] i vettori con le coordinate degli n vertici
2) La formula dell'area è
area = 0
for i = 1 to n do  /* NOTA: fino a n perché il primo vertice è ripetuto */
    area = area + (x[i+1] - x[i]) * (y[i] + y[i+1]) / 2
done
(l'alternativa più "elegante" è usare una linked-list che rappresenti il
poligono e farla attraversare dalla funzione per tutti gli n lati)
La spiegazione è anche semplice: se si traccia una retta fuori del poligono, e
si tracciano le perpendicolari alla retta partendo dai vertici del poligono, si
può notare come un lato del poligono, le due altezze relative ai suoi vertici e
il segmento sulla retta esterna individuato dalle intersezioni con le due
altezze, sia un trapezio rettangolo. L'area del poligono è data dalla
differenza fra
1) la somma dei trapezi relativi ai lati "che stanno sopra", e che avranno
appunto x[i+1] - x[i] > 0 (nell'ordinamento orario)
2) la somma dei trapezi relativi ai lati "che stanno sotto", e che avranno
x[i+1] - x[i] < 0
Si può ordinare anche in senso antiorario: l'area verrà negativa, ma uguale in
valore assoluto.
HTH,
    Matteo

 done
Cavolo hai ragione... mi pare che l'applicazione pratica di questo problema
si facesse a ricerca operativa....
Antonio

alla fine: siano x[i] e y[i] i vettori con le coordinate degli n vertici
se non sbaglio funziona anche per lo spariglio a scopone.
--
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport
----------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access

done
grazie ho utilizzato proprio questa soluzione...
