2013-11-22 2 views
3

기본적으로 타일은 질문을 요약합니다. QRect와 비슷한 QT 클래스에 빌드가 있는지 궁금하지만 3D 오브젝트 (사각형이 아닌 상자를 설명하기 위해)가 궁금합니다.qt에서 QRect에 대한 3D 유추가 있습니까?

+0

이 OpenGL을 실시간 그래픽을위한 것이다 : 당신이 그런 식으로 아래로 갈 기꺼이하는 경우에

QGLCube Class Reference

실제로 거기에도 3D 기본 QML 항목이 노출? 그렇다면 Qt의 내장 클래스로 3D 객체를 만들려고하지는 않을 것입니다. –

+0

아니요, 3D 영역을 내부적으로 정의하여 주변을 전달하고 이러한 영역을 더하거나 뺄 수 있습니다. 응용 프로그램은 콘솔이며 3D 영역 내에서 임의의 점을 생성하는 등의 작업을 수행합니다. 화면에서 렌더링을 시도하지 않습니다. –

+0

@IlyaKobelevskiy : Qt3D를 보셨습니까? – lpapp

답변

3

기본적으로 타일은 질문을 요약합니다. QRect와 비슷한 QT 클래스의 빌드가 있으면 궁금하지만 3D 개체 (사각형 대신 상자를 설명하는 데 사용)가 궁금합니다.

물론 있습니다. 아직 Qt는 5

다시 재 출시되지는 않지만

원하는 클래스는, Qt3D 현재 내가있는 3 차원 세계 시뮬레이션 프로젝트에서이 클래스의 활성 사용자가 있었고 꽤 괜찮 작동합니다.

QML Item3D Element

+0

고마워, 재미있어 보이고, 나는 Qt3D를 몰랐다. 이전에! –

+0

@IlyaKobelevskiy : 아, 환영합니다 .-) – lpapp

0

내장 클래스를 찾고 있다면 확실하지 않지만 3D 벡터에 대한 지식 만 있으면 자신 만의 클래스를 만들 수 있습니다. 가장 어려운 기능은 &, &=, |, |=, !=, <<, ==>>과 같이 교차, 변환 또는 구현 연산자 일 수 있습니다.

상자의 크기와 상자의 중심에있는 좌표로 상자를 표시하는 것이 좋습니다. 그런 다음 원점 (x, y, z)에서 3D 점을 중심으로 특정 너비, 높이 및 깊이의 상자를 갖게됩니다. 3D 사각형은 높이 (Z 축)가 2 차원 직사각형이라고 가정

+0

네, 그게 제가 피하려고했던 것입니다 - 직접 구현해라. (다른 것이 나오면 조금 기다렸다가이 대답을 받아 들인다 ... –

1

, 나는 다음과 같은 방법으로 (? 평행)을 구현하는 것이 :

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; 
}; 

은 따라서 당신이 모양을 가지고, 폭이, 높이와 길이. 단어 height은 QRect 클래스에 의해 이미 예약되어 있으므로 length을 3 차원 매개 변수로 사용합니다. 물론이 클래스를 확장 할 수는 있지만 주요 기능은 여기에 있습니다.

관련 문제