gpt4 book ai didi

c++ - 在 3d 空间中的 QT 中围绕其 Y 轴旋转小部件

转载 作者:行者123 更新时间:2023-11-28 07:47:46 24 4
gpt4 key购买 nike

我想在 QT 中围绕其 Y 轴(或任何轴)旋转小部件,与此处显示的方式完全相同:

Image rotation in 3D space around Y axis

我已经搜索过了,但我得到的都是二维变换,比如顺时针或逆时针旋转

我真的想要一些非常简单的东西,因为我会在整个项目中做一次。

最佳答案

首先,由于绘画引擎的运行方式(它完全是 2D)和布局管理器的工作方式,普通的 Qt 小部件无法做到这一点,因此任何解决方案都是重要的。

最简单的方法是将小部件作为 QGraphicsProxyWidget 放入 QGraphicsScene/View 中,并使用 setTransform(const QTransform&, bool ) 应用变换矩阵的方法。

但是因为引擎仍然是 2D 的,所以您必须创建一个 3D 转换矩阵来描述您想要的操作,然后使用投影转换为 2D 矩阵。这并不简单,但您可以通过使用静态方法 squareToQuad(const QPolygonF&, QTransform&) 来“伪造”效果,就像您链接到的效果一样 - 当用户“旋转”小部件时,一个垂直边缘变为变小并向四边形中心移动,而相对边缘变大并向四边形中心移动。

关于c++ - 在 3d 空间中的 QT 中围绕其 Y 轴旋转小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14545586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com