基本上,瓷砖总结了这个问题 - 我想知道在 qt 类中是否有任何类似于 QRect 的构建,但用于 3D 对象(描述一个盒子而不是矩形)?
问问题
888 次
3 回答
3
基本上,瓷砖总结了这个问题 - 我想知道在 qt 类中是否有任何类似于 QRect 的构建,但用于 3D 对象(描述一个盒子而不是矩形)?
当然,有。
所需的类目前在 Qt3D 中,尽管它还没有在 Qt 5 中再次发布。
在 3D 世界模拟项目中,我一直是这门课程的活跃用户,它工作得很好。
如果您愿意这样下去,实际上甚至还有一个 3D 基础 QML 项目:
于 2014-01-12T00:06:23.473 回答
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
用作第三维参数,因为 wordheight
已经被 QRect 类保留。当然,你可以扩展这个类,但我想主要功能就在那里。
于 2013-11-22T20:49:41.113 回答
0
如果您正在寻找一个内置类,我不确定是否存在,但您可以用一点 3D 矢量知识构建自己的类。最难的函数可能是交集、平移或实现运算符,例如&
, &=
, |
, |=
, !=
, <<
, ==
, 和>>
。
你可以考虑用它的尺寸和它在盒子中心的坐标来表示一个盒子。然后,您将有一个以原点 (x,y,z) 处的 3D 点为中心的具有特定宽度、高度和深度的框。
于 2013-11-22T19:11:12.357 回答