Q3DSurface, Q3DCamera::yRotation(180)

Alles rund um die Programmierung mit Qt
Antworten
PRoth
Beiträge: 3
Registriert: 10. Oktober 2017 17:00

Q3DSurface, Q3DCamera::yRotation(180)

Beitrag von PRoth »

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?

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();
}
PRoth
Beiträge: 3
Registriert: 10. Oktober 2017 17:00

Re: Q3DSurface, Q3DCamera::yRotation(180)

Beitrag von PRoth »

Das Probelm konnte ich lösen:

Code: Alles auswählen

surface.axisY()->setReversed(true);
...damit wird die y-Achse um 180° gedreht.
Antworten