qt中的QRect有3D类比吗?

时间:2013-11-22 18:53:01

标签: c++ qt 3d qt3d qrect

基本上,平铺总结了一个问题 - 我想知道qt类中是否存在类似于QRect的构建,但是对于3D对象(描述方框而不是矩形)?

3 个答案:

答案 0 :(得分:3)

  

基本上,平铺总结了一个问题 - 我想知道qt类中是否存在类似于QRect的构建,但是对于3D对象(描述方框而不是矩形)?

当然,有。

目前所需的课程目前在Qt3D,虽然Qt 5尚未重新发布。

我一直是3D世界模拟项目中这个类的活跃用户,它的工作非常好。

QGLCube Class Reference

如果您愿意这样做,实际上甚至还有一个3D基础QML项目曝光:

QML Item3D Element

答案 1 :(得分:1)

假设3D矩形是一个高度(Z轴)的2D矩形,我会用以下方式实现它(平行六面体?):

class Box: public QRect
{
public:
    Box(int x, int y, int width, int height, int length)
        :
            QRect(x, y, width, height),
            m_length(length)
    {}
    int length() const { return m_length; }

private:
    int m_length;
};

因此你有形状,有宽度,高度和长度。我使用length作为第三维参数,因为QR {1}已经保留了单词height。 当然,您可以扩展此类,但我想主要功能就在那里。

答案 2 :(得分:0)

如果你正在寻找一个内置类,我不确定是否存在,但你可以用一些3D矢量知识构建自己的类。最难的功能可能是交叉,翻译或实施运算符,例如&&=||=!=<<==>>

您可以考虑通过其尺寸及其位于框中心的坐标来表示框。然后你会得到一个特定宽度,高度和深度的盒子,其中心位于原点(x,y,z)的3D点。