Avatar billede donslund Nybegynder
22. december 2004 - 11:05 Der er 9 kommentarer og
1 løsning

Endnu et spørgsmål om tid

Jeg har en lille prik der drøner rundt på en cirkel. Den er 1 minut om at løbe en omgang. Men den hopper fra 59 til 0. Hvorfor?

onClipEvent (enterFrame) {
    nu = new Date();
    sek = 1-(((nu.getSeconds()*1000)+nu.getMilliseconds())/59999);
    this._x = ((Math.sin(sek*6))*100)+200;
    this._y = ((Math.cos(sek*6))*100)+200;
}
Avatar billede barklund Nybegynder
22. december 2004 - 11:09 #1
For det første, lav den modulo 60000 - ellers vil du med tiden få en lille afvigelse.

For det andet, skal den ikke gå fra 0 hele vejen rundt til 59 og så "hoppe" videre til 0?

Hvad er problemet helt præcist?
Avatar billede donslund Nybegynder
22. december 2004 - 11:11 #2
Problemet er, at den ikke "glider" det sidste stykke rundt fra 59 sekunder til 0. Men "hopper" med et hak.
Avatar billede pyroman Nybegynder
22. december 2004 - 11:52 #3
Sådan her... tallet 6 er ikke præcist nok, når der nu er det præcise tal af PI, og så skal den vel også starte fra 0 i toppen af?

this.onEnterFrame = function(){
    nu = new Date();
    sek = 1-(nu.getSeconds()*1000+nu.getMilliseconds())/60000;
    prik._x = (Math.sin(sek*Math.PI*2-Math.PI))*100;
    prik._y = (Math.cos(sek*Math.PI*2-Math.PI))*100;
}
Avatar billede donslund Nybegynder
22. december 2004 - 12:29 #4
Hvorfor er tallet 6 ikke præcist nok? 360 grader delt med 60 sekunder må da være 6 grader pr. sekund.
Men nå, det virker jo :-)
Avatar billede donslund Nybegynder
22. december 2004 - 12:34 #5
Jeg har lavet en trkant hvor spidserne hele tiden ligger i punkterne for minutter, timer og sekunder. Men den tegner en ny trekant hver gang så den efterhånden bliver fyldt med farve. Det skal den jo ikke. Hvordan undgår jeg det?
Avatar billede donslund Nybegynder
22. december 2004 - 13:02 #6
Og hvordan får jeg dette:

this.onEnterFrame = function(){
    nu = new Date();
    sek = -(nu.getMinutes()*60*1000+nu.getSeconds()*1000+nu.getMilliseconds())/60000;
    prik._x = (Math.sin(sek*Math.PI*2-Math.PI))*100;
    prik._y = (Math.cos(sek*Math.PI*2-Math.PI))*100;
}

til at virke på minutter?
Avatar billede pyroman Nybegynder
22. december 2004 - 14:47 #7
1. Alle programmeringssprog regner i radianer når det drejer sig om vinkler og trigonometri - sådan er det bare, jeg troede derfor at når du brugte tallet 6, var det fordi at det lagde sig nogenlunde op ad 2*PI, som er 360 grader i radianer.
Det er nok det der er problemet faktisk...  hvis den havde brugt grader, ville din prik kun have bevæget sig max 6 grader - så den var alligevel ikke gået...

2. brug følgende funktion:

movieclip.clear();

som sletter alt hvad du har tegnet og nulstiller de instillinger, farve osv, der er sat.

Og resten må du uddybe lidt... I et nyt spørgsmål helst - så får du nok også svar hurtigere...
Avatar billede donslund Nybegynder
22. december 2004 - 15:12 #8
Okay. Jeg lukker og opretter på ny.
Avatar billede donslund Nybegynder
23. december 2004 - 10:09 #9
Pyroman. Smider du ikke lige et svar?
Avatar billede pyroman Nybegynder
23. december 2004 - 10:50 #10
jeppar.. :)

Glædelig jul!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester