C++ 将D2D1::Matrix3x2F转换为XMMATRIX

C++ 将D2D1::Matrix3x2F转换为XMMATRIX,c++,matrix,directx,C++,Matrix,Directx,我在屏幕上画了一些文字。。。但是,由于需要使用D2D1::Matrix3x2F作为翻译,所以没有在我真正想要绘制它的地方绘制它。。。其他一切都在使用XMMATRIX。。。有没有办法转换这两个 文本转换内容: D2D1::Matrix3x2F screenTranslation = D2D1::Matrix3x2F::Translation( Window::width - hud->textMetrics.layoutWidth, Window::height - hud-

我在屏幕上画了一些文字。。。但是,由于需要使用D2D1::Matrix3x2F作为翻译,所以没有在我真正想要绘制它的地方绘制它。。。其他一切都在使用XMMATRIX。。。有没有办法转换这两个

文本转换内容:

D2D1::Matrix3x2F screenTranslation = D2D1::Matrix3x2F::Translation(
    Window::width - hud->textMetrics.layoutWidth,
    Window::height - hud->textMetrics.height
    );

d2dDeviceContext->SetTransform( D2D1::Matrix3x2F::Translation( hud->starEndPositionX, hud->starEndPositionY ) );
其他一切都是这样做的:

XMMATRIX rot = XMMatrixRotationY( a->rot );
XMMATRIX trans = XMMatrixTranslation( a->x, a->y, 0.0f );
XMATRIX final = rot * trans;
所以问题是,我所有的坐标都是以0,0,0为屏幕中心,而文本是0,0为左上角。1920 x 1080位于右下角。呜呜

旁注:我的3d变换设置如下:

// trans
matView = XMMatrixOrthographicLH( Window::width, Window::height, -1.0, 1.0 );

//projection

float fieldOfView = ( float )PI;
float screenAspect = Window::width / Window::height;

matProjection = XMMatrixPerspectiveFovLH( fieldOfView, screenAspect, -1.0, 1.0 );
总之。。。有没有办法将一些2d坐标转换为3d坐标,或者甚至可以将其转换为3d坐标,这样我就可以将3d坐标转换为2d 3x2F坐标


D2D1::Matrix3x2F到XMMATRIX

你有什么问题?是的,我发现很难理解该问什么。。。我基本上有这样一个两难境地,我用2D设备来画文本,用3D设备来做其他一切。。。因此,我希望我的2d文本能够使用3d设备坐标绘制到屏幕上,这些坐标是正交的,0,0是屏幕的中间