私はこれをlerp関数として持っています:
Vec2f lerp(float t, Vec2f a, Vec2f b){
return (1-t)*a + t*b;
}
そして、私は以下のコードを持っています、それが「トゥイーン」になることを望んでいました:
Vec2f a(0,0);
Vec2f b(3,4);
Vec2f c(5,4);
Vec2f d(5,0);
if( i < 100 ){
if(i <= 30){
ball.pos = lerp(i, a, b);
}
else if(i > 30 && i < 80){
ball.pos = lerp(i, b, c);
}
else {
ball.pos = lerp(i, a, d);
}
} i += 1;
しかし、私が得たのは「不連続トゥイーン」です。つまり、AからBへのlerpが終了する最後のポイントから開始するのではなく、別の場所で開始し、一部は他のlerpに進みます。私は何が間違っているのですか?