2016-08-21 12 views
0

標準化されたデバイス座標(ドイツ語DGL wiki)に関する記事を読んで、次の例が提供されています: "1024ピクセル(幅)と768ピクセルの高さのビューポートを持っていたとしましょう。 P(350/210)の座標P(-0,32/-0,59)は、正規化座標P(-0,32/-0,59)になります。これらの座標は、ビューポート(ベクトルスケーリングに似た)正規化されたデバイス座標(ビューポートのサイズ)この場合、結果はP(273/164)になります。ビューポート座標の計算

何らかの形で結果がどのように得られるのか理解できません平均273/164と-0,32/-0,59 ...誰かが私に座標を計算する方法を説明できますか?

P.S. :これは記事です - https://wiki.delphigl.com/index.php/Normalisierte_Ger%C3%A4tekoordinate

ありがとうございます!

答えて

1

この記事は間違いなく説明が欠けています。私はあなたをその道の一部にすることができます。多分数学を持っている人が終わるのを助けることができます。

this answerによれば、正規化COORDSに非正規COORDSに変換する式は:

Nx = (Cx/Sx) * 2.0 - 1.0

Ny = 1.0 - (Cy/Sy) * 2.0

(ここで、Cxの/ Y = X/Y座標、Sxの/ Y =スクリーンX/Y;およびNx/y =正規化されたX/Y)。

に例の数字を当てはめる:

Nx = (350/1024) * 2 - 1 = -0.31640625 
Ny = 1 - (210/768) * 2 = 0.453125 

...または(-.36、0.45)。 Yの値が一致していないことを

(1 + Nx)/2 * Sx

(1 - Cy)/2 * Sx

Cx = (1 + -0.31640625)/2 * 800 = 273.4375 
Cy = (1 - 0.453125)/2 * 600 = 164.0625 

注:新しいCOORDSを取得するには、これを逆に

。これはおそらく私の計算ではアスペクト比が考慮されていないため、これらの画面のアスペクト比は0.75であるのに対し、NDCは1であるはずです。This SO answerも役に立ちます。

+0

あなたの答えと計算に感謝します!今私はそれを得る! :) – Teo

+0

うれしい私は助けることができました! –

関連する問題