Как создать эффект водоворота / вихря?

Я пытаюсь сделать эффект вихря на круговое тело, которое является датчиком. Я искал это, и все примеры, которые я ищу, находятся на C ++ или Objective C, и я, кажется, не очень хорошо их переводил.

когда мои объекты сталкиваются, он вызывает beginContact (..) и устанавливает флаг, чтобы я мог вызвать bodyToUpdate.applyForce (...);

 public void beginContact(Contact contact) {
             setColliding(true);
 }

 //updating collition every frame
 public void act(){
     if (colliding) {
        ball.getBody().applyForce(....);

 }

Как рассчитать величину силы, чтобы применить каждый кадр, чтобы сделать его вихрем?

Редактировать:

так что теперь у меня есть объект, идущий прямо к центру вихря, но нет "вращения"

public void act() {
    if (colliding) {
        ball.getBody().setLinearVelocity(0, 0);

        ball.getBody().applyForce((portal.getBody().getPosition().x - ball.getBody().getPosition().x) * i,
                (portal.getBody().getPosition().y - ball.getBody().getPosition().y) * i,
                ball.getBody().getPosition().x, ball.getBody().getPosition().y, true);

        i++;
    } else
        i = 10;
}

Ответы на вопрос(2)

Ваш ответ на вопрос