Hi I have a View3D with MouseArea on top, I'm moving a camera when pressing and moving the mouse. It works but I get a strange flicker because of mapTo3DScene() strange results. A small example project is here
CameraMove.zip | | | | CameraMove.zip | | | Relevant code of moving the camera is here: property vector3d mousePosition property vector3d worldPos3D_old: worldPos3D property vector3d worldPos3D property vector3d cameraPos //! [mouse area] MouseArea { id: ma anchors.fill: view //! [mouse area] onPressed: { cameraPos = mainCamera.position mousePosition = Qt.vector3d(mouseX, mouseY, 0) worldPos3D_old = worldPos3D = view.mapTo3DScene(mousePosition) } onMouseYChanged: { updateCamera(mouseX, mouseY) } function updateCamera( mouseX_, mouseY_){ mousePosition = Qt.vector3d(mouseX_, mouseY_, 0) worldPos3D = view.mapTo3DScene(mousePosition) console.log("worldPos3D: "+worldPos3D + " ; mousePosition: "+mousePosition ) mainCamera.position.x = cameraPos.x - worldPos3D.x + worldPos3D_old.x mainCamera.position.y = cameraPos.y - worldPos3D.y + worldPos3D_old.y //mainCamera.position = cameraPos - worldPos3D + worldPos3D_old } }//MouseArea ----------------------- The lines mousePosition = Qt.vector3d(mouseX_, mouseY_, 0) console.log("worldPos3D: "+worldPos3D + " ; mousePosition: "+mousePosition ) shows me strange values, when moving the mouse, in worldPos3D returned by mapTo3DScene(), see below qml: worldPos3D: QVector3D(152.83, 7.24083, 190) ; mousePosition: QVector3D(568.372, 216.524, 0) qml: worldPos3D: QVector3D(141.141, 1.82567, 190) ; mousePosition: QVector3D(568.372, 216.88, 0) qml: worldPos3D: QVector3D(152.474, 7.24082, 190) ; mousePosition: QVector3D(568.016, 216.88, 0) qml: worldPos3D: QVector3D(140.785, 1.46959, 190) ; mousePosition: QVector3D(567.66, 217.237, 0) qml: worldPos3D: QVector3D(152.117, 6.88474, 190) ; mousePosition: QVector3D(567.304, 217.593, 0) qml: worldPos3D: QVector3D(140.428, 1.46959, 190) ; mousePosition: QVector3D(566.948, 217.593, 0) qml: worldPos3D: QVector3D(151.761, 6.17257, 190) ; mousePosition: QVector3D(566.592, 218.305, 0) qml: worldPos3D: QVector3D(140.072, 1.1135, 190) ; mousePosition: QVector3D(566.236, 218.661, 0) See the last 3 values of mousePosition for example, the x value, they show coerent mouse move: 566.948 -> 566.592 -> 566.236But the equivalent world coordinates stored in worldPos3D by mapTo3DScene() make no sense to me:140.428 -> 151.761 ->140.072 The values are leaping wich explain the huge flicker. Any ideias why I get these strange values ? ThanksJoão
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest