view game/Interpolate.java @ 138:9eb791e2fa17

Optimize board updating logic, so that the old placed tiles need not to be redrawn from scratch on each screen update, as they do not change usually.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 25 Nov 2011 11:04:09 +0200
parents 4c0dec72e2f0
children d6d92845d6a2
line wrap: on
line source

/*
 * Class for smooth non-linear interpolation between two given values in N steps
 * (C) Copyright 2011 Matti 'ccr' Hämäläinen <ccr@tnsp.org>
 */
package game;

import java.util.*;

public class Interpolate
{
    public float start, end, steps;

    public Interpolate(float start, float end, float steps)
    {
        this.start = start;
        this.end = end;
        this.steps = steps;
    }

    public float getValue(float step)
    {
        float n = step / steps;
        float v = n * n * (3.0f - 2.0f * n);
        return (start * v) + (end * (1.0f - v));
    }
}