Tweening es un término de edición de video que se usa para describir la facilidad de movimiento. Por ejemplo, con un ascensor, el ascensor no va a toda velocidad y se detiene cuando llega al piso deseado. Sabe en qué piso está, a qué piso se dirige y cuánto tiempo tardará en llegar allí. Luego usa esos datos para suavizar su movimiento.

Me gustaría poder programar este movimiento suave para mis proyectos usando interpolación.

El método para hacer esto se describe en http://robertpenner.com/easing/penner_chapter7_tweening.pdf

Específicamente mirando pg207-211

Esta guía explica qué es la interpolación y luego muestra el código en Action Script. Para ser honesto, me siento un poco estúpido porque he intentado usar los ejemplos proporcionados, pero parece que no puedo replicarlos en otro lenguaje como c ++, java, javascript o lua.

No deseo utilizar un paquete o complemento para codificar la interpolación, quiero aprender a codificar realmente una función de interpolación. Entonces, si alguien con mejores habilidades de comprensión o de programación cree que entiende, agradecería mucho una explicación.

Funciones de secuencia de comandos de acción de muestra ...

Math.easeInQuad = function (t, b, c, d) {
    return c*(t/=d)*t + b;
};

Math.easeOutQuad = function (t, b, c, d) {
    return -c * (t/=d)*(t-2) + b;
};

Math.easeInOutQuad = function (t, b, c, d) {
    if ((t/=d/2) < 1) 
        return c/2*t*t + b;
    return -c/2 * ((--t)*(t-2) - 1) + b;
};
1
CTOverton 31 dic. 2016 a las 08:00
1
¿Cuál es tu pregunta?
 – 
spring
31 dic. 2016 a las 08:23
Programé mi propia interpolación, leí mi clase ru.delimiter.math.TweenAlot en delimiter.ru/as < / a>
 – 
Organis
31 dic. 2016 a las 22:06

1 respuesta

La mejor respuesta

Una función de interpolación adecuada en AS3 acepta 6 parámetros de Number con los dos últimos parámetros predeterminados en 0. Debe interpretar los parámetros de la siguiente manera:

  • El primer parámetro es el principal, se rellena con un valor de 0 a la duración de la interpolación;
  • El segundo parámetro es el valor del parámetro que intenta interpolar cuando el primer parámetro es cero;
  • El tercer parámetro es el tamaño del intervalo de valores que se espera que se asigne al parámetro de interpolación;
  • El cuarto parámetro es la duración en las unidades que el usuario proporcionaría, por lo tanto, un Número y no un int;
  • Los parámetros quinto y sexto son opcionales y no se usan en la biblioteca de interpolación incorporada de AS3, pero se pueden usar para modificar la interpolación que se realiza dentro de la función si se usa de manera personalizada en otro lugar.

El resultado esperado es un valor entre los parámetros second y (second+third), o con sus nombres canónicos de t, b, c, d, a, p entre b y b+c.

Puede trazar el gráfico de una función usando un algoritmo simple como este:

function graph(f:Function,w:Number,h:Number):Shape {
    // returns a shape with black on white graph drawn within a rectangle of given dimensions
    var s:Shape=new Shape();
    s.graphics.lineStyle(0); // black
    s.graphics.moveTo(0,h); // lower left corner
    for (var i:int=0;i<w;i++) {
         s.graphics.lineTo(i,f(i,h,-1*h,w));
    }
    return s;
}

Hablando de C ++, por ejemplo, un easeInQuad debería programarse así (si no estropeé la sintaxis de C ++):

double easeInQuad(double t, double b, double c, double d) {
    double td=t/d;
    return b+c*td*td;
}
2
Vesper 3 ene. 2017 a las 18:20