2 つの浮動小数点値zoomAmountとが与えられた場合、次のようzoomFactorに を計算する必要があります。newZoomAmount
(newZoomAmount <= zoomAmount) && (newZoomAmount == pow( zoomFactor, i ))
任意の整数i。値を簡単にループしたり、テーブルを二分探索したりして、答えを見つけることができます。ただし、これを達成するための閉じたフォームはありますか?
動機:zoomFactorは 2 ⅕</sup> ≅1.148698354997035であるため、5 回の「ズームイン」イベントごとに、正確に 2 の累乗が増加します。ダイアグラムを画面に合わせてズームするとき、ズーム レベルをこれらのノッチのいずれかにして、ズーム アウトが最終的に「ベース」の 1.0 ズーム レベルに正確に到達するようにします。