Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    slider... come funziona questa formula?

    mi spieghereste che formula di movimento è quella utilizzata in questo script? Cioè, il meccanismo logico in base al quale fa muovere lo slider. Come funziona il tutto? Cos'è il damping?

    note: La variabile newY viene passata alla pressione di un pulsante, ad es.: on (release) {slider.newY = [qui la coordinata _y]}
    Sotto ho inserito la mia alternativa di un semplice easing.
    -----------
    onClipEvent (load) {
    var a = 1; // accelerazione - between 1.1-10
    var d = 2.5; // damping - between 1.1 - 4
    var newY = _y;
    var oYPos = _y;
    var myYspeed = 0;
    }

    onClipEvent (enterFrame) {

    //E' QUESTA SOTTO LA FORMULA DI CUI VORREI CAPIRE IL FUNZIONAMENTO...
    // this is the movement code - it takes the curent position and the
    //variable "newY" and will decelerate the object to the new point

    myYspeed = ((_y-newY)/a+myYspeed)/d;
    _y -= myYspeed;


    // formula semplice di easing
    //_y += (newY - _y)/a

    }

  2. #2
    Ci provo

    Formula per il moto decellerato

    myYspeed = ((_y-newY)/a+myYspeed)/d;
    _y -= myYspeed

    a e d sono costanti note

    Le variabili newY e myYspeed sono uguali, hanno lo stesso valore, quindi man mano ci si avvicina al valore passato, piu la variazione diventa minima, questo per una questione di rapporto direttamente proporzionale.

    Quindi assegni questo variare dinamico al reale spostamento dell' oggetto ... tu gli dici solo da dove a dove.

  3. #3

    Re: slider... come funziona questa formula?

    Dico la mia:
    Originariamente inviato da fluo
    mi spieghereste che formula di movimento è quella utilizzata in questo script? Cioè, il meccanismo logico in base al quale fa muovere lo slider. Come funziona il tutto? Cos'è il damping?

    note: La variabile newY viene passata alla pressione di un pulsante, ad es.: on (release) {slider.newY = [qui la coordinata _y]}
    Sotto ho inserito la mia alternativa di un semplice easing.
    -----------
    onClipEvent (load) {
    var a = 1; // accelerazione - between 1.1-10
    var d = 2.5; // damping - between 1.1 - 4
    var newY = _y;
    var oYPos = _y;
    var myYspeed = 0;
    }

    onClipEvent (enterFrame) {

    //E' QUESTA SOTTO LA FORMULA DI CUI VORREI CAPIRE IL FUNZIONAMENTO...
    // this is the movement code - it takes the curent position and the
    //variable "newY" and will decelerate the object to the new point

    myYspeed = ((_y-newY)/a+myYspeed)/d;
    _y -= myYspeed;


    // formula semplice di easing
    //_y += (newY - _y)/a

    }
    Interpretazione delle variabili:

    a è un tempo che rappresenta l'accelerazione (ma non è dimensionalmente un'accelerazione)
    d è un coefficiente adimensionato che rappresenta lo smorzamento
    newY è l'ordinata d'arrivo
    oYpos non viene usata ma a occhio è un buffer
    mySpeed è la velocità


    Interpretazione del codice:

    myYspeed = ((_y-newY)/a+myYspeed)/d;
    quest'operazione è una specie di integrale dell'accelerazione che ridefinisce la velocità. Infatti viene preso lo spazio da coprire (_y-newY) e viene sommato alla velocità all'istante precedente.
    Per quanto riguarda l'azione di a e d, si può vedere come una funzione di costo: a influisce solo sullo spazio da coprire, e definisce quanto questo pesa rispetto alla velocità. Per intendersi, se a è grande allora la grandezza dello spazio da coprire peserà poco sull'incremento della velocità, e viceversa. d è il corrispettivo di a riferito alla posizione: più d è grande, più lo spostamento dell'oggetto sarà lento.

    _y -= myYspeed;
    aggiornamento della posizione tramite integrale della velocità (c'è poco da spiegare).

    Non ho provato lo script, quindi non so se ci ho preso...
    ciao

  4. #4
    grazie per le risposte...
    in realtà, non ricordando molto di fisica e matematica, potete dire quello che volete, tanto non potrei obiettare.
    Cmq, prendo per buone l'interpretazione di marcellus...

    thx a lot!

  5. #5
    Beh, per farla piùà semplice tu prova a giocare con i valori di a e d, per vedere le differenze nell'animazione. Ti accorgerai di cosa cambia "in pratica". Io ti ho fatto un discorso teorico perché la richiesta "capire il funzionamento" mi ha portato su quella strada. Scusa se sono stato troppo formale

  6. #6
    no no, hai fatto bene.

    Soltanto, pensavo fosse più facile. Ma tu hai messo sul tavolo gli integrali ed io...

    cmq, grazie davvero :gren:

    buone feste

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.