Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Forum - Pascal
- Problema unit Graph di pascal: costruzione di un orologio
()
Newbie
Messaggi: Iscritto:
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti ho un problema con la contruzione di un orologio a lancette utilizzando la unit graph:
Dopo aver costruito lo scheletro dell'orologio semplicemente con Circle(xC, yC, r), ho pensato di vedere le lancette (per adesso solo quelle dei secondi) semplicemente come delle rette per due punti: un punto è fisso ed è il centro della circonferenza dell'orologio, mentre l'altro è mobile ogni secondo. Il problema che mi sono incartato nell'individuare questo secondo punto.
Parto dalle 12.00 cioè quando ho la lancetta esattamente verticale. Ragionando matematicamente la lancetta si deve muore di 6° ogni secondo (infatto se 360° vengono persorsi in 60 secondi, allora in un secondo verranno percorsi 6°). Matematicamente quindi il nostro punto al secondo 2 sarà dato dal seno di 6° con le opportune operazioni sulle coordinate. Solo che non posso poi specificare delle coordinate real per la funzione LINE(X1,Y1,X2,Y2).
Come posso fare a conciliare i real con le coordinate? Avete dei consigli?
Grazie comunque
Saluti
Il tuo ragionamento è giusto,ma tieni presente che il senso di rotazione delle lancette dell' orologio è appunto orario, mentre quello delle funzioni trigonometriche è anti orario.
(Ricorda inoltre che, per le funzioni trigonometriche, devi usare gli angoli espressi in radianti).
Per quanto riguarda la trasformazione delle variabili real in integer, basta usare la funzione "round( <VaribileReal> );"
Esempio di utilizzo:
Codice sorgente - presumibilmente Delphi
program EsempioRound;
uses crt;
begin
Writeln(1.4,' rounds to ',Round(1.4));
Writeln(1.5,' rounds to ',Round(1.5));
Writeln(-1.4,' rounds to ',Round(-1.4));
Writeln(-1.5,' rounds to ',Round(-1.5));
readln;
end.
Io da poco ho appena pubblicato un programma simile, anche se un po macchinoso!
Tu che ne pensi?
Ultima modifica effettuata da Poggi Marco il 07/02/2010 alle 20:56
()
Newbie
Messaggi: Iscritto:
Postato alle 13:42
Lunedì, 08/02/2010
ciao! intanto grazie mille dell'aiuto.
Ho visto il tuo programmino sul sito e non mi sembrava vero! Infatti avevo proprio ieri in mente di provare a fare questo orologio quando ho visto sul sito il tuo programma. Veramente molto bello anche se come dicevi un po' macchinoso almeno per me. Infatti quando ho visto la struttura del codice sinceramente mi sono perso. Infatti non ho conoscenze approfondite di pascal quindi sono ancora ancorato alle operazioni semplici come punti rette e cerchi.
Essendo in tema, come faccio a richiamare in pascal l'orario del computer?
Grazie mille comunque.
Innanzitutto grazie per aver visionato il mio programma.
Ti assicuro però che non è nulla di trascendentale, scusa se lo trovi complicato, avrei dovuto commentarlo.
Per capirne di più leggi questo tutorial sulle unità in pascal: http://www.pierotofy.it/pages/guide/Guida_Pascal/Scrivere_ ....
Per quanto riguarda l' orario, basta richiamare la procedura GetTime, facente parte della libbreria dos.
Essa richiede 4 varibili (necessariamente di tipo word), nelle quali salva rispettivamente l' ora, il minuto, il secondo e nell' ultima il centesimo di secondo.
Riporto un semplice programma dimostrativo:
Codice sorgente - presumibilmente Delphi
program EsempioOraLocale;
uses dos, crt;
var
h, m, s, hund :Word;
function LeadingZero(w :Word):String;
var
s :String;
begin
Str(w:2, s);
LeadingZero := s;
end;
begin
GetTime(h,m,s,hund);
Writeln('It is now ',LeadingZero(h),':',
LeadingZero(m),':',LeadingZero(s),
'.',LeadingZero(hund));
readln;
end.
Ultima modifica effettuata da Poggi Marco il 11/02/2010 alle 18:48
()
Newbie
Messaggi: Iscritto:
Postato alle 22:52
Lunedì, 01/03/2010
Scusate l'intrusione nella discussione..ma dato che parlate di graph..avrei bisogno di sapere come avere la libreria graph in fpc..uso ubuntu 9.04..ho provato a scaricare la versione 2.4.0-2..ma purtroppo non va..la libreria è mancante..mi potete suggerire qualche alternativa o un modo per risolvere? avevo pensato di utilizzare le opengl..però sono ancora un niubbo (è da solo due mesi che nel weekend mi dedico al pascal) e quindi non credo che sia un ottima idea iniziare con qualcosa di già abbaastanza complesso..
Prova a guardare il file graph.ppu è stato installato in una cartella diversa da quella dove il compilatore cerca le unit
()
Newbie
Messaggi: Iscritto:
Postato alle 2:01
Giovedì, 04/03/2010
Ho aggiunto i repositories di testing da Debian e con la versione 2.4.0-2 di fpc sono anche disponibili tutte le normali librerie..grazie comunque ..ora avrei un altro problema..ho postato qui: