2013-11-22 52 views
3

基本上,瓷磚總結了這個問題 - 我想知道是否有類似於QRect的qt類中的任何構建,但是對於3D對象(描述框而不是矩形)?qt中是否有QRect的3D比喻?

+0

這是爲實時圖形用OpenGL?如果是這樣,我不會嘗試用Qt的內置類構建一個3D對象。 –

+0

不,它純粹是在內部定義3D區域,將其傳遞並添加/減去這些區域。應用程序是控制檯,並處理在3D區域內產生隨機點等 - 不會嘗試在屏幕上渲染任何東西。 –

+0

@IlyaKobelevskiy:你看過Qt3D嗎? – lpapp

回答

3

基本上,瓷磚總結了這個問題 - 我想知道是否有類似於QRect的qt類中的任何構建,但是對於3D對象(描述框而不是矩形)?

當然,有。

所需類是目前在Qt3D,雖然不能再次使用Qt 5

重新發布我一直在這個類在3D世界中模擬項目的活躍用戶,和它的作品相當不錯。

QGLCube Class Reference

其實是有,即使在有一個3D的基礎QML項目外露,如果你願意走這條途徑:

QML Item3D Element

+0

謝謝,這看起來很有趣,我不知道Qt3D以前! –

+0

@IlyaKobelevskiy:啊,歡迎,然後。:-) – lpapp

0

如果你正在尋找一個內置的類,我不確定是否存在,但你可以建立你自己的類與3D矢量的一點知識。最難的功能可能是交叉點,翻譯,或實現運營商如&&=||=!=<<==,和>>

你可能會考慮用盒子中心的尺寸和座標表示一個盒子。然後,您將擁有一個以原點(x,y,z)處的3D點爲中心的特定寬度,高度和深度的框。

+0

是的,那正是我想要避免的 - 自己實現它:(如果有其他事情出現,我會等一下,然後接受這個答案... –

1

假設三維矩形是2D矩形具有高度(Z軸),我會以下列方式實現它(平行六面體):

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作爲第三維參數,因爲文字height已被QRect類保留。 當然,你可以擴展這個類,但我猜主要的功能在那裏。