2

私はこれについて少しの間問題を抱えています。私はこれを知っているべきだと感じていますが、私は一生思い出せません。

画面のピクセルをそれぞれの「グラフィカルな」x、y位置にマッピングするにはどうすればよいですか?座標系は、左下(0,0)から始まり、右上に向かって増加するように構成されています。

ズームできるようにしたいので、答えにズーム距離を設定する必要があることを知っています。

Screen
|\          Some Quad
| \--------|\Qx
|  \    Z  | \
|   \       \|Qy
 \  |
Sx\ |Sy
   \|

画面のどのピクセルにクワッドが表示されるか知りたいです。明らかに、Zが減少すると、クワッドは画面のより多くの部分を占有し、Zが増加すると、占有する部分は少なくなりますが、これらはどの程度正確に計算されますか?

さらに明確にするために、方程式のズーム係数を使用して、これらの画面ピクセルを「グラフィカル」座標にマッピングする方法を知りたいと思います。

助けてくれてありがとう。

4

2 に答える 2

0

ズーム前の中心が (xk, yk) で、サイズが (Sx, Sy) で、Z 倍に (0, 1] でズームされた場合、新しいサイズは (Qx, Qy) = (Sx*(1 -Z), Sy*(1-Z)) (xk, yk) を中心とした画面座標は次のとおりです。

rectangle: xk - Qx/2, yk - Qy/2, xk + Qx/2, yk + Qy/2

それが役立つことを願っています。

于 2011-06-22T23:54:25.293 に答える
0

座標および/または画面サイズに対する乗数としてズーム係数を使用します。

たとえば、100x150 ピクセルの正方形を 150% に拡大すると、長方形のサイズは 150x225 になります。

この式は次のとおりです。

h = 高さ

w = 幅

z = パーセント ズーム (100% = 1.00)


新しい幅 = W = wz

新しい高さ = H = Hz

画面ピクセルをマッピングするには、より基本的な数学的原則を適用します。相対座標は、ズームの中心に完全に依存します。すべてが正確に中心にズームされている場合、これは非常に簡単です。他の場所からズームする場合 (たとえば、コーナーまたは非中心座標からオブジェクトを引き伸ばす)、式にオフセットを適用する必要があります。

長方形を中心点からズームするのは簡単です。長方形の幅の差を 2 で割り、左右の座標値に加算します (負の数を加算できます)。高さについても同じことを行います。

正確な中心ではなく、長方形の境界内にある座標から長方形をズームする場合は、オフセットが必要です。長方形の各辺に適用する高さと幅の変更のパーセンテージを決定するだけです。ズーム ポイントに近い側は、変化の割合が低くなります。

ズーム ポイントが長方形の外側にある場合は、ズーム ポイントからの距離も考慮する必要があります。このオフセットは、四角形のスケーリングに加えて、四角形全体を移動します。

大きな紙を用意して、いくつかの視覚化を作成します。それは常に役立ちます。=)

于 2011-06-22T23:49:10.170 に答える