ポイントのある種のズーム/アップスケーリングを行うとき、次の変換があります。私の目標は、このスケールに基づいてオフセットを計算することです。
私の問題は、大きなスケールから小さなスケールに移行するときに、もちろんオフセットが同じになることです。たとえば、3 から 4 にスケーリングし、4 から 3 に戻す場合、3 のスケールのオフセットは常に同じである必要があります。
しかし、私の式ではそうではありません。そして、私が間違っていることを理解することはできません:
px = 200
offset = 0
scale: 1, and goes always +-1
式に基づく計算:newOffset = oldOffset +- px / scale;
scale = 2 => offset = 0 + 200 / 2 = 100
scale = 3 => offset = 100 + 200 / 3 = 166,67
scale = 4 => offset = 166,67 + 200 / 4 = 216,67
スケーリングを元に戻すにはどうすればよいですか?
scale = 3 => offset = 216,67 - 200 / 3 = 150 # //it should evaluate to 166,67