ConvWorldPosToScreenPosの挙動について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
cc

ConvWorldPosToScreenPosの挙動について

#1

投稿記事 by cc » 10年前

現在3D空間内で対象物を画面の中心付近に捉えるプログラムをC++,DXライブラリを用いて制作しております。

対象物に対してロックオンの様なカーソル画像を描画したいと思い、対象物のワールド座標をConvWorldPosToScreenPosによって
スクリーン座標へ変換し描画しているのですが、思っている場所に描画されません。

現在であればスクリーン座標は画面中央の座標(320,240)が検出されて欲しいと考えております。
しかし実際に検出された座標は(484,315)でした。

恐らく対象物を画面中央に捉えるため、カメラの水平角度をいじっている事が原因かと検討つけて検証していましたが、解決しなかったため
質問致しました。

ワールド座標
自分の座標(631, 0, 851)
対象物座標(800, 18, 800)

カメラで補正を掛けている水平角度の値( 0.3f )


また現在試しにマウスの座標をスクリーンからワールド座標へ変換して表示しておりますが
画面中央が(320, 240, 0.9)
画面の左端X座標が( 287 )
右端 ( 351 )
上Y座標 ( 264 )
下端 ( 215 )
となりおかしな値が挿入されております。

ConvWorldPosToScreenPosを使用するにあたってリファレンスを見ても必要な下準備は無さそうに見受けられたため
何処の部分が原因か中々判断がつきません。

何卒宜しくお願い致します。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: ConvWorldPosToScreenPosの挙動について

#2

投稿記事 by h2so5 » 10年前

視覚的な情報がないと状態が分かりづらいですね。
スクリーンショットなどはありませんか?
cc さんが書きました: また現在試しにマウスの座標をスクリーンからワールド座標へ変換して表示しておりますが
画面中央が(320, 240, 0.9)
画面の左端X座標が( 287 )
右端 ( 351 )
上Y座標 ( 264 )
下端 ( 215 )
となりおかしな値が挿入されております。
どの点がおかしいのか説明もお願いします。

cc

Re: ConvWorldPosToScreenPosの挙動について

#3

投稿記事 by cc » 10年前

こちらになります
http://iup.2ch-library.com/i/i1347400-1418999225.png
printfDxの出力内で
eは対象物
pは自分
wはワールド座標を示しています

緑のターゲットカーソルを画面奥にいる白い対象物へ合わせたいというのが目標です


おかしい点の説明が抜けておりました。申し訳御座いません。
対象物へカーソルを合わせたいため、マウスのワールド座標は対象物のワールド座標へと変換されて欲しいというのが希望でした。
(あるいは対象物のワールド座標が画面中心座標へでも構わないですが

閉鎖

“C言語何でも質問掲示板” へ戻る