Não sei até que ponto vc conhece, mas um salto em meia lua perfeita normalmente
é feito em 32 fazes, sendo que cada uma varia exatamente 5,625 graus em relacao ao movimento anterior.
Então seria assim:
O boneco está em posicao 0,0
Ele se movimenta 1 m em direção a 5,625 graus, depois:
Ele se movimenta 1 m em direção a 11,25 graus, depois:
Ele se movimenta 1 m em direção a 16,875 graus, e assim por diante, ou seja
Você pode fazer um loop de 0 a 31 que modifique um valor iniciado em 0 somando a ele 5,625 e você terá a direção.
Agora com ela, e com a distancia 1 (de cada movimento) vc aplica a fórmula:
destino.x = origem.x + sin ( angulo em radianos ) * distancia;
destino.y = origem.y + cos ( angulo em radianos ) * distancia;
obs.: Para conseguir o angulo em radianos basta multiplicar o valor dele por PI e dividir por 180.
Os 32 pontos de destino formarão uma meia-lua perfeita.