Q3DSurface, Q3DCamera::yRotation(180)
Verfasst: 10. Oktober 2017 18:17
Hallo zusammen,
ich kann die Figur leider nicht von unten betrachten, nur seitlich oder von oben. Ich kann nur zwischen 0 bis 90° die Grafik vertikal drehen.
Hat jemand eine Idee wie ich die Grenzen verändern kann?
In der Doku von Qt steht:
Q3DScene::wrapYRotation: https://doc.qt.io/qt-5/q3dcamera.html#w ... ation-prop
This property holds the behavior of the minimum and maximum limits in the Y-rotation.
... jedoch wo kann ich die min- bzw. max-Limite setzen?
ich kann die Figur leider nicht von unten betrachten, nur seitlich oder von oben. Ich kann nur zwischen 0 bis 90° die Grafik vertikal drehen.
Hat jemand eine Idee wie ich die Grenzen verändern kann?
In der Doku von Qt steht:
Q3DScene::wrapYRotation: https://doc.qt.io/qt-5/q3dcamera.html#w ... ation-prop
This property holds the behavior of the minimum and maximum limits in the Y-rotation.
... jedoch wo kann ich die min- bzw. max-Limite setzen?
Code: Alles auswählen
#include <QtDataVisualization>
using namespace QtDataVisualization;
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
Q3DSurface surface;
surface.setFlags(surface.flags() ^ Qt::FramelessWindowHint);
QSurfaceDataArray *data = new QSurfaceDataArray;
QSurfaceDataRow *dataRow1 = new QSurfaceDataRow;
QSurfaceDataRow *dataRow2 = new QSurfaceDataRow;
QSurfaceDataRow *dataRow3 = new QSurfaceDataRow;
// Punkte einer Pyramide
*dataRow1 << QVector3D(0,0,0) << QVector3D(1,0,0) << QVector3D(2,0,0);
*dataRow2 << QVector3D(0,0,1) << QVector3D(1,1,1) << QVector3D(2,0,1);
*dataRow3 << QVector3D(0,0,2) << QVector3D(1,0,2) << QVector3D(2,0,2);
*data << dataRow1 << dataRow2 << dataRow3;
QSurface3DSeries *series = new QSurface3DSeries;
series->dataProxy()->resetArray(data);
series->setDrawMode(QSurface3DSeries::DrawSurfaceAndWireframe);
surface.addSeries(series);
surface.show();
surface.scene()->activeCamera()->setCameraPosition(0, 180, 100); // horizontal in °, vertikal in °, zoom in %
surface.scene()->activeCamera()->setWrapYRotation(true);
return app.exec();
}