Windows组成API是否支持2.5D投影旋转



我已经开始使用UWP应用程序中的Windows组成API来动画UI的元素。

视觉元素暴露了旋转词根和旋转属性以及旋转属性。

当我对矩形对象的旋转式旋转式旋转轴围绕y轴进行动画作用时,矩形如我所期望的那样旋转,但是在2D应用程序窗口中,它似乎并未以2.5D投影显示。

有没有办法获得与组合API旋转的2.5D投影效应?

这取决于您想要的效果。GitHub上有一个流利的设计应用程序样本,这是链接。您将可以从商店下载演示。您可以从深度样本中获得一些想法。例如,翻转以显示旋转图像卡的方法,您可以从此处找到源代码。有关更多详细信息,请检查示例和演示。

通常,动画是根据x轴旋转的:

rectanglevisual.rotationaxis = new System.numerics.Vector3(1f,0f,0f,0f);

然后使用旋转动画根据旋转旋转旋转。

您也可以通过使用图像控件中的planeprodoxjoction直接在XAML平台上执行此操作。

作为@barrywang指向我指出的样本,证明有必要在执行动画以获得旋转或旋转或旋转的2.5D效果之前,将transformmatrix应用于页面(或育儿容器)其他空间转换动画具有组成API。

    private void UpdatePerspective()
    {
        Visual visual = ElementCompositionPreview.GetElementVisual(MainPanel);
        // Get the size of the area we are enabling perspective for
        Vector2 sizeList = new Vector2((float)MainPanel.ActualWidth, (float)MainPanel.ActualHeight);
        // Setup the perspective transform.
        Matrix4x4 perspective = new Matrix4x4(
                    1.0f, 0.0f, 0.0f, 0.0f,
                    0.0f, 1.0f, 0.0f, 0.0f,
                    0.0f, 0.0f, 1.0f, -1.0f / sizeList.X,
                    0.0f, 0.0f, 0.0f, 1.0f);
        // Set the parent transform to apply perspective to all children
        visual.TransformMatrix =
                           Matrix4x4.CreateTranslation(-sizeList.X / 2, -sizeList.Y / 2, 0f) *      // Translate to origin
                           perspective *                                                            // Apply perspective at origin
                           Matrix4x4.CreateTranslation(sizeList.X / 2, sizeList.Y / 2, 0f);         // Translate back to original position
    }

相关内容

  • 没有找到相关文章

最新更新