NonSoloBolleDiAcqua
| Inviato il: 14/02/2014 10:22:50
|
Sono rimasto colpito da questa realizzazione di Calcola sulla porta scorrevole per il pollaio...veramente una realizzazione fantastica...ho dato un'occhiata veloce al suo codice e mi sono reso conto di una cosa...quanto sia complicato capire alba e tramonto nell'anno...certo basterebbe una fotocellula...ma... come si fa se si ha un orologio che viene utilizzato per altre cose oppure se non si ha una fotocellula?
Vediamo se riusciamo a livello di codice (indipendentemente da quale linguaggio si scriva) di trovare un algoritmo che permetta di 'alleggerire' il sorgente.
Sappiamo tutti che l'estate albeggia presto e fa sera tardi mentre in inverno accade esattamente il contrario...ma ...possiamo essere più precisi?
Certo, il sito www.gaisma.com ci mette a disposizione un grafico (per ogni città) dove sono rappresentati i giorni con alba, tramonto.
Vediamo cosa accade al centro Italia (Roma)
Si nota che il grafico è 'spezzato'...si tratta dell'infamissima ora legale...viene inserita da diversi stati perchè fa risparmiare ...sarà vero? Boooo!
A noi serve? Forse si, ma anche no...per il momento la leviamo...poi vediamo come reinserirla:
Ora si che è un bel vedere...
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | NonSoloBolleDiAcqua
| Inviato il: 14/02/2014 10:41:47
|
Ma...c'è qualcosa che non quadra in quel grafico...non parla il 'naturalese'...non capisco come mai l'uomo debba prendere dei riferimenti innaturali...vabbè...facciamo ordine...et voilà:
Ora si che è molto più bello alla vista...una parte di cdicembre è stata spostata prima di gennaio...qualcuno potrebbe dire...ed ora? Ed ora cerchiamo di semplificare il discorso...graficamente si vede che ci ci sono due giorni dell'anno particolari...ci piace chiamarli solstizio ma in questo momento ci interessa altro: dobbiamo cercare di linearizzare il più possibile l'andamento dell'alba e del tramonto...come si fa? Facile, si prende un righello e si cerca di fare delle linee dritte che rimangano il più visino possibile alle curve disegnate...proviamoci!
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | NonSoloBolleDiAcqua
| Inviato il: 14/02/2014 10:58:49
|
Ecco fatto...ora si che si inizia a vedere la luce:
Vediamo che ci sono due giorni dell'anno (sembrano 3 ma sono due ...cercate di vedere il grafico dove la fine coincide con l'inizio) molto particolari ed in corrispondenza di questi è possibile ( con una certa approssimazione) trovare una regola matematica che potrebbe semplificarci i conti.
Diamo un minimo di requisiti: l'orologio (RTC), oltre l'ora, ci dice il giorno , il mese (per questa applicazione l'anno non ci serve).
Proviamo ad estrarre l'algoritmo?
Vuole provarci qualcuno?
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | MarKoZaKKa
| Inviato il: 14/02/2014 11:54:45
|
...ma il grafico originale non è una sinusoide?
cmq, troppa fatica... Trattazione su Wikipedia e
Per farla semplice
Modificato da MarKoZaKKa - 14/02/2014, 12:02:38
--------------- Tecnico qualificato in clownerie Windsurfer a tempo perso Slalomaro senza speranze
| | | | NonSoloBolleDiAcqua
| Inviato il: 14/02/2014 12:28:19
|
Ho tradotto in matematichese e poi in informatichese i grafico...è tutto commentato...non l'ho provato ma dovrebbe andare. L'algoritmo si può snellire ma perderebbe in leggibilità...lo proverò quanto prima nel PPTEA...
PRAGMA NO_NUM_LINE
'---- Impostazione costanti
GiorniAnno = 365.0
GiorniAnnoMezzi = 183.0 ' cioè 365/2
'Ora alba e tramonto a Roma nei giorni del solstizio
OraTramonto21Dic = 17
OraTramonto21Giu = 20
OraAlba21Dic = 7
OraAlba21Giu = 4
'---- Fine Impostazione costanti
' giorno e mese sono il giorno ed il mese corrente
GiornoDellAnno = Int((mese - 1) * 30.4 + giorno)
GiornoDellAnnoNatutale = (GiornoDellAnno + 10) Mod GiorniAnno
If GiornoDellAnnoNatutale > GiorniAnno / 2 Then
GiornoDellAnnoNatutale = GiorniAnno - GiornoDellAnnoNatutale ' normalizza nella prima metà dell'anno
Endif
DeltaAlba = (OraAlba21Dic - OraAlba21Giu) / GiorniAnnoMezzi ' il delta alba e il delta tramonto coincidono...ma se qualcuno vuole fare cose strane può farlo
DeltaTramonto = (OraTramonto21Giu - OraTramonto21Dic) / GiorniAnnoMezzi
Alba = -GiornoDellAnnoNatutale * DeltaAlba + OraAlba21Dic ' Alba espressa in ore centesimali cioè il valore 8.25 sono le 8:15
Tramonto = GiornoDellAnnoNatutale * DeltaTramonto + OraTramonto21Dic ' Tramonto espresso in ore centesimali cioè il valore 18.50 sono le 18:30
MinutiAlbaDaMezzanotte= Alba * 60 ' valore dei minuti alba da mezzanotte
MinutiTramontoDaMezzanotte = Tramonto * 60 ' valore dei minuti tramonto da mezzanotte
Modificato da NonSoloBolleDiAcqua - 18/02/2014, 07:11:05
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | ElettroshockNow
| Inviato il: 14/02/2014 14:12:19
|
Sisi ...mi piace ....
Già vedo la sostituzione dell'orologio condominiale ..... | | | | PinoTux
| Inviato il: 14/02/2014 15:22:43
|
..e l'anno bisestile?
LINK
altro link
Modificato da PinoTux - 14/02/2014, 15:32:59
--------------- "Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza" http://iv3gfn.altervista.org/ http://pptea.altervista.org/
| | | | NonSoloBolleDiAcqua
| Inviato il: 14/02/2014 15:40:21
|
Diciamo che l'algoritmo che ho scritto è approssimativo, giorno più, giorno meno non cambia un gran c'è ... quindi anni bisestili o altro non cambia la situazione dell'alba/tramonto.
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | ecologix1971
| Inviato il: 18/01/2015 14:04:00
|
Molto interessante | |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|