基本上,平铺总结了一个问题 - 我想知道qt类中是否存在类似于QRect的构建,但是对于3D对象(描述方框而不是矩形)?
答案 0 :(得分:3)
基本上,平铺总结了一个问题 - 我想知道qt类中是否存在类似于QRect的构建,但是对于3D对象(描述方框而不是矩形)?
当然,有。
目前所需的课程目前在Qt3D,虽然Qt 5尚未重新发布。
我一直是3D世界模拟项目中这个类的活跃用户,它的工作非常好。
如果您愿意这样做,实际上甚至还有一个3D基础QML项目曝光:
答案 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点。