そこにいるすべての数学者に、質問全体を読んでください。これは、HTML5 の知識がなくても答えられる可能性があります :-)
私は HTML5 キャンバスをズーム (スケーリング) していますが、スクーリングを「スムーズ」に見せるために、1 つの大きなステップではなく、多くの小さなステップでそれを実行したいと考えています。それを説明するには:
ユーザーがスクロールホイールを回すと、私の目標はキャンバスを合計で 20% 拡大することです。ここで、これを 20 の小さなステップに分割したいと思います。
私の問題は、キャンバスのライブラリが制限されているため、2d Context の scale(xscale,yscale) メソッドしか使用できないことです。そのため、ユニットを特定のサイズに設定することはできません。これにより、簡単になります。すべてのステップで係数を使用する必要があり、これを行う方法がわかりません。
したがって、キャンバスの単位はステップ 1 で 100 でしたが、ステップ 20 で 130 になり、その間に 19 の小さなステップがあります。
- oldscale: 100, : 係数: x, newscale: 101
- oldscale: 101, : 係数: x, newscale: 102
- oldscale: 102, : 係数: x, newscale: 103
……
変数 i は、現在のステップ番号 (0-19)、totalsteps (20)、およびターゲット ズーム (20) です。
それは私が必要とするものの非常に簡単な例です。主な問題は、X にしかアクセスできず、スケールに直接影響を与えることができないことです。
誰でも助けることができますか?よく説明したと思います。