Player to enemy orbits

I’ve been stuck on trying to get a Player ship to orbit around a moving enemy ship (and vice versa).

The easiest way to visualize what I’m trying to achieve is exactly the same way EVE Online approaches a target, and then slowly rotates around a given radius.

I could only make the fleet turn and fly toward the enemy fleet, but it is necessary that when a certain distance is reached, the fleet starts to rotate around enemys fleet orbit.


if ( >= 100 /* distance */) {
    let targetQuaternion = new THREE.Quaternion();
    let rotationMatrix = new THREE.Matrix4();
    rotationMatrix.lookAt(this.mesh.position,, this.mesh.up);

    if (!this.mesh.quaternion.equals(targetQuaternion)) {
        let step = velocity;
        this.mesh.quaternion.rotateTowards(targetQuaternion, step);
} else {
    //how to make a fleet (this.mesh) fly around the orbit of enemy fleet (

ps. grouping of objects is not suitable, because these are separate game objects with their speed and other parameters.