Em um dos meus projetos, tenho uma área de jogo na forma de um círculo. Dentro deste círculo, outro pequeno círculo está se movendo. O que eu quero fazer é impedir que o pequeno círculo se mova para fora do maior. Abaixo, você pode ver que, no quadro 2, o pequeno círculo está parcialmente fora, preciso de uma maneira de recolocá-lo antes que ele esteja prestes a sair. Como isso pode ser feito?
Além disso, preciso do ponto de colisão ao longo do arco do grande círculo para poder atualizar a velocidade do pequeno círculo. Como alguém calcularia esse ponto?
O que eu gostaria de fazer é antes de mover o pequeno círculo, prevejo sua próxima posição e, se estiver fora, encontro o tempo de colisão entre t = 0 et = 1 (t = 1 etapa em tempo integral). Se eu tiver o tempo de colisão t, basta mover o pequeno círculo durante t em vez de uma etapa em tempo integral. Mas, novamente, o problema é que não sei como detectar naquele momento a colisão quando se trata de dois círculos e um dentro do outro.
EDITAR:
Exemplo de ponto de colisão (verde) que desejo encontrar. Talvez a imagem esteja um pouco errada, mas você entendeu.