Привет) Примерно это тебе надо, пусть и на JS но принцип тотже
https://jsfiddle.net/8wm49k0e/2/
что касается коллизий можно проверять если точка уже не нарисована на той же координате или рядом с каким нибудь радиусом
Также можно почитать про формулы тут
https://gamedev.stackexchange.com/qu...a-circle-image