2016-11-25 5 views
0

1920, 1017ピクセル画像上の座標821, 435のポイントを、その中央のどこかに着くと考えてください。さて、画像を1243, 633ピクセルの大きさに縮小してください。明らかに、私たちのポイントはもはやそれらの座標にはなく、画像と共に縮小されています。新しいポイントの座標はどのように計算されますか?画像保持ポイント位置の縮尺分解能

以下の場合

originalX = 1920 & newX = 1243を想定し、私達はちょうど今、最初の値xのために解決していることを私は使用することができます0.64739583を取得するためにnewX/originalXをやった

(最終的にyのスケールをやって) originalX * 0.64739583を取得して1243とすると、newX64.739583%であり、originalXであることを示します。さて、前のポイントx、821に戻ります。新しいポイントのxは、originalX * 0.64739583 = 531を除いて、482であると予想されます。 482531ないので、ポイントは、彼らがこれらの記述の計算も間違っている場合(正しい計算されるもの64.7

のスケーリング%とすると予想していると一致し、絵の部分があることはありませんスケーリングした点の新しい座標を取得できるようにするにはどうすればよいですか?

前/スケーリング後のポイントのいくつかのより多くの例:

  • old = {width=1920, x=1807, y=996}, new = {width=1280, x=1167, y=698}
  • old = {width=1920, x=1178, y=814}, new = {width=1280, x=1138, y=516}
  • old = {width=1920, x=5, y=831}, new = {width=1517, x=5, y=693}
+0

'のXのように見えています482人になると予想されています - 誰によって期待されていますか? – MBo

+0

@MBoポイントは、直接中心にある画像内のGUIの特定の場所で、わずかにオフセットされています。これはプログラムのスクリーンショットです。 'x 'は' 482'になると予想され、プログラムの解像度を変更した結果(この場合は最大化する)、解像度は小さくなります。 '821'は非最大化前の' x'で、 '482'は後です。 – Scarsz

答えて

0

ような位置は本当にその後、

のように直線的ではないスケーリング、場所を取る場合
NewX = X * NewWidth/OldWidth 

は、代わりに私は次を参照してください。そこにはスケーリングはありませんが、中央の位置を維持しながら、画像のずれ

middle of 1920 = 960 
960 - 821 = 139 
middle of 1243 = 621 
621 - 482 = 139 ! 

だから、変換法は(私は、単一の例のためにそれを主張することはできません)

NewX = NewWidth/2 + (OldX - OldWidth/2) 
+0

残念なことに完璧なフィット感はありませんが、私が提供したサンプルには間違いなく良い試みです。私はもう少し追加しました。私はまだそれにも無頓着です。 – Scarsz

+0

これらの魔法の変形の画像を表示できますか? (最初の新しい例では右端と同じ違いに注意してください) – MBo

関連する問題