首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows组合API支持2.5D投影旋转吗?

Windows组合API支持2.5D投影旋转吗?
EN

Stack Overflow用户
提问于 2019-03-06 01:52:57
回答 2查看 155关注 0票数 0

我已经开始在UWP应用程序中使用Windows组合API来激活UI的元素。

可视化元素公开RotationAngleInDegrees和RotationAngle属性以及RotationAxis属性。

当我将矩形对象的RotationAngleInDegrees值围绕Y轴动画时,矩形会像我所期望的那样旋转,但在2D应用程序窗口中,它似乎不是用2.5D投影显示的。

有没有办法用组合api在旋转时得到2.5D的投影效果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-07 19:56:54

正如@BarryWang给我演示的示例所示,在执行动画之前,有必要向页面(或育儿容器)应用一个TransformMatrix,以便使用组合api获得2.5D的旋转效果或其他空间转换动画。

代码语言:javascript
复制
    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
    }
票数 0
EN

Stack Overflow用户

发布于 2019-03-06 08:02:03

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

通常,动画是基于X轴旋转的:

rectanglevisual.RotationAxis =新System.Numerics.Vector3(1f,0f,0f);

然后利用旋转动画实现基于RotationAngleInDegrees的旋转。

您也可以通过使用来自图像控制的PlaneProjection在XAML平台上直接这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55014325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档