いえ、違います
お察しの通り中間値に比例したZ座標が当てはまります
ただ、その結果は線形的なものではありません
例えば以下のようなプログラムを実行していただければ分かると思います
Zの値を 0.0f から 1.0f まで 20段階に分けて ConvScreenPosToWorldPos に渡した結果を画面に表示するというプログラムです
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
VECTOR Pos ;
int i ;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
SetDrawScreen( DX_SCREEN_BACK ) ;
for( i = 0 ; i <= 20 ; i ++ )
{
Pos = ConvScreenPosToWorldPos( VGet( 10.0f, 10.0f, ( float )i / 20.0f ) ) ;
DrawFormatString( 0, i * 16, GetColor( 255,255,255 ), "SrcZ:%f x=%.3f y=%.3f z=%f", ( float )i / 20.0f, Pos.x, Pos.y, Pos.z ) ;
}
ScreenFlip() ;
WaitKey() ;
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
線形的な結果を得ることができる関数として
ConvScreenPosToWorldPos_ZLinear
というのがありますので、もしご必要でしたらお使いください
( 引数、戻り値ともに ConvScreenPosToWorldPos と同じです )