Je travaille sur un projet SceneKit et je souhaite faire pivoter un objet sur trois axes (axe du monde) mais une fois que je fais tourner l'objet, la prochaine rotation est effectuée par rapport au nouvel axe pivoté. Imaginez un cube que vous devriez pouvoir faire tourner sur les axes x et y et z absolus en utilisant trois boutons par rapport au monde.Rotation le long de l'axe du monde
Pour autant que je sais que les options suivantes pour SCNAction:
- SCNAction.rotateTo (x: 1,0, y: 0,0, z 0,0, durée: 0,5, usesShortestUnitArc: true)
- SCNAction.rotateTo (x: 1,0, y: 0,0, z 0,0, durée: 0,5)
- SCNAction.rotateBy (x: 1,0, y: 0,0, z 0,0, durée: 0,5)
- SCNAction. rotate (par: 0.0, autour de: SCNVector3, duration: 0.5)
- SCNAction.rotate (toAxisAngle: SCNVector4, durée: 0,5)
Malheureusement, aucun d'entre eux sont absolus, tous d'entre eux comptent sur la rotation précédente. Connaissez-vous un moyen de mettre en œuvre la véritable rotation de l'axe mondial absolu?
Merci pour l'aide à l'avance!
Merci Orangenkopf, bonne idée! – Velykovits
Sauvé ma journée, merci !! –
Est-ce que cela devrait également s'appliquer si la position du parent n'est pas (0,0,0)? Lorsque j'essaie cette approche, le nœud tourne autour de l'axe parent plutôt que de tourner sur son propre axe (converti) - ai-je raté quelque chose? –