# Use vector to rotate an quaternion?

It seens there is still some operations with quaternions that still blow my mind.
I have objects orbiting an sphere using central nodes, I rotate the nodes, the objects moves arround it. Each object have its own central node at diferent rotations.
The player is one of this objects, and other objects may be repeled or atracted by it.
How to make one object to be “attracted” by the player since they are moved using central node rotations ?
I could get the vector from one object to another, but how to rotate a bit those objects ?
Should I use LookAt with slerp insted and forget about vectors ?
If so, how to do the repeling effect, inverting the values in the rotation I got from the slerp will do ?

You can continue to rotate using the central node, but just set the individual “objects” localTranslation to move them, so they can be moved further out, and continue to rotate around a central point.

Maybe I’m totally wrong but from what I can understand you’re basically simulating something like a solar system right? The sun being the central point you rotate around, and other “objects” could be planets that attract others and change their orbit?

I’d be inclined to forget rotating around a point and create an entire movement system myself. Each planet would have an initial velocity, x y and z, and then for every update you’d need to change that velocity by looping through every other “object” (or planet in my example) and adjust x y and z velocity dependent on the distance from said planet, and its size.

Perhaps I have gotten the wrong end of the stick though. Just my thoughts.

Yes, kind of an solar system, I am building an space ship game, the ship is allways circulating an planet, also all other objects are. But I want some objects to run away from the ship and others to go run into the ship.
Also, I cant use translation since they cant get out from the orbit.
I was thinking, slerp can do the job for the attraction, but how could I do the repelling, maybe I could:

1. create an new node
2. set the same rotation from the reppeling obj into this node.
3. Invert ths rotation from it into 180 º using what ? upvector ?
4. do slerp into it…
If someone has better idea I would like to hear !