是否有人知道在Windows上应用仿射变换的方法,使用桌面窗口管理器,或者与DirectX的组合?
想想Windows 7中的Flip3D - 如果我想在桌面上实现这样的过渡。
澄清: 问题是仅关于启用DWM的窗口。所以Windows> = 7。
答案 0 :(得分:-1)
Microsoft在2D affine transform effect
中有一个built-in effectsC ++ 中documentation的一个例子是:
ComPtr<ID2D1Effect> affineTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D12DAffineTransform, &affineTransformEffect);
affineTransformEffect->SetInput(0, bitmap);
D2D1_MATRIX_3X2_F matrix = D2D1::Matrix3x2F(0.9f, -0.1f, 0.1f, 0.9f, 8.0f, 45.0f);
affineTransformEffect->SetValue(D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(affineTransformEffect.Get());
m_d2dContext->EndDraw();
执行以下矩阵操作:
答案 1 :(得分:-1)
为Win95 / XP / Win2000编写了一个名为“madotate”的库。它是一个用于在Windows上进行3d翻转等的开源C ++ API。如果尚未适应DWM,可能不会采取太多措施。