Привет всем
Подскажите пожалуйста как быть, у меня есть позиция предмета в 3d пространстве и его я хочу отобразить в QtOpenGlWidget с помощью QPainter или можно оставить это в 3d и рисовать с помощью средств OpenGl
Как происходит эта проекция? Есть ли готовые методы от Qt? Где можно почитать про это_?
circlePosition - это позиция моего обьекта сохраненая как Vector3d
QPoint circlePositionPoint = QPoint(circlePosition.x(), circlePosition.y());
painter.drawEllipse(circlePositionPoint, 30, 30);
void Navigation::paintEvent(QPaintEvent * event)
{
naviTargetWidget->makeCurrent();
initGL( naviTargetWidget->width(), naviTargetWidget->height());
glClearColor((float)(121 / 255.0), (float)(188 / 255.0), (float)(255 / 255.0), (float)1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
QPainter painter(naviTargetWidget);
// Crosshair
painter.setPen(Qt::black);
int targRadius = 30, icx, icy;
icx = naviTargetWidget->width() / 2;
icy = naviTargetWidget->height() / 2;
QPointF widgetCenter(icx, icy);
//Cicle Gradient
QRadialGradient radialGrad(QPointF(icx, icy), 300);
radialGrad.setColorAt(0, Qt::white);
radialGrad.setColorAt(1, Qt::yellow);
painter.setBrush(radialGrad);
painter.drawEllipse(widgetCenter, 300, 300);
painter.setPen(Qt::black);
painter.drawLine(icx - targRadius, icy, icx + targRadius, icy);
painter.drawLine(icx, icy - targRadius, icx, icy + targRadius);
// Little TargetCircle
painter.setBrush(Qt::transparent);
painter.drawEllipse(widgetCenter, 15, 15);
// Big TargetCircle
painter.setBrush(Qt::transparent);
painter.drawEllipse(widgetCenter, 30, 30);
//Circle from drill
painter.setBrush(Qt::transparent);
////// ---->>>> circlePosition это Vector3d
QPoint circlePositionPoint = QPoint(circlePosition.x(), circlePosition.y());
painter.drawEllipse(circlePositionPoint, 30, 30);
painter.end();
Спасибо за внимание