Direct2DでDPtoLPを実現する。DPはデバイス座標。LPは論理座標。
GDI32ではDPtoLPなる関数があり、それに相当する。
DP:LP=1:1でないアプリを作成する場合になくてはならない。

///////////////////////////////////////////////////////////////////////////////
★簡単

// MFC風のラッパークラス
class FPointF : public D2D1_POINT_2F
{

public :
FPointF( float x, float y ){ ... }
...
};



static FPointF LPtoDP( const D2D1_MATRIX_3X2_F& mat, const FPointF& ptlog )
{
Matrix3x2F m( mat._11, mat._12, mat._21, mat._22, mat._31, mat._32 );

FPointF dppt = m.TransformPoint( ptlog );
return dppt;
}
static FPointF DPtoLP( const D2D1_MATRIX_3X2_F& mat, const FPointF& ptdev )
{
Matrix3x2F m( mat._11, mat._12, mat._21, mat._22, mat._31, mat._32 );
m.Invert();

FPointF ptlog = m.TransformPoint( ptdev );
return ptlog;
}