Någon som är duktig på DHTML?
...och då kan lösa detta?
Jag försöker skapa en function som ska förflytta ett lager till en viss position med en animation. Den skall flyttas mot positionen hela tiden och när den nått sitt mål slutar den att skapa timeouts...
Så här långt går det bra, men nu vill jag även att lagret ska flyttas snabbt i början av animationen och långsammmare på slutet. När jag försöker med detta blir slutpositionen lite konstig (några enstaka pixels fel).
Kan någon hjälpa lr e ni för lata nu för tiden i detta forum (skoja)? ;)
Ha're!
Svara
Sv: Någon som är duktig på DHTML?
Om någon ska kunna hjälpa får du nog allt lägga ut din kod så att nån kan se vad som är fel.
Ingen vill väl skriva en hel sida gratis Bara till dig.
Svara
Sv: Någon som är duktig på DHTML?
Men det ska ju inte behövas, jag undrade bara om någon visste en ekvation som sköter detta. Typ: dur = speed/(målposition-nuvarande_position); speed += dur;
Detta testade jag, men det funkar ju inte så bra ;)
Jaja, jag får väl tänka vidare då. Ha're!
Svara
Sv: Någon som är duktig på DHTML?
Det beror på hur exakt du vill ha det.
Du kan använda exponentiella funktioner, 1/x, polynom osv.
Om hastigheten skall vara proportionell mot avståndet kvar använder du differentialekvationen
dx/dt=k*(x_slut-x)
som har lösningen
x = C*e^(-kt)+x_slut
Med partikulärvillkoret x(0)=x_start får du
x = (x_start - x_slut) * e^(-kt) + x_slut
Men detta är en tung funktion för datorn.
Berätta hur tung funktionen får vara så blir det lättare att bestämma metod.
/Niklas Jansson
Svara
Sv: Någon som är duktig på DHTML?
Hm... du va mig en baddare på matte ;)
Iaf, jo men hur anpassar man de ekvationerna till javascript då?
Nåja, jag har tänkt att göra en så liten fil som möjligt (*.js), så en smidig men ändå "energisnål" variant skulle passa som handen i handsken...
Har du mejl förresten? Tja!
Svara
Sv: Någon som är duktig på DHTML?
>Hm... du va mig en baddare på matte ;)
Hehe... :)
>Har du mejl förresten?
Hmm... kolla i visitkortet...
>Iaf, jo men hur anpassar man de ekvationerna till javascript då?
Det var ett tag jag kodade i js, men något sånt här är det väl:
function position(var t)
{
var x;
x = (x_start - x_slut) * Math.Exp (-k*t) + x_slut;
return x;
}
åsså byter du ut x_start, x_slut och k mot lämpliga värden.
Hur det funkar i förhållande till DHTML osch så vidare är jag osäker på.
Storleken är inte speciellt överväldigande, men prestandan kan vara dålig. Detta beror på att e^t beräknas som
1+x/1+x^2/2+x^3/3!+ x^4/4! + ...
och detta tar lite tid.
Ett alternativ hade varit att att göra en array som du fyller med med värden, istället för att använda exp.
/Niklas Jansson
Svara
k?
Hm... tack så mycket Niklas!
Men en sak undrar jag fortfarande, nämligen vad variabeln k står för.
Var. t antar jag är tiden som hela animationen ska ta att utföra...
Men vad är då k? är det ett flyttal som kontrollerar hur mycket animationen ska öka i fart, eller?
Har inte haft tillgång till internet på ett tag nu, och beklagar att jag inte svarat tidigare.
Ha're!
Svara