Hello,
Quote: "algorythm needed to detect a circular collision?"
from the description of trying to find the hit areas in relation to the rings on a target, I don't think circular collision algorithms are what you are really after. That can get quite complicated. I think all you need is a radius.
For example, if you have a flat target with rings painted on it and you shoot arrows at it, you want the program to tell you which ring is being hit. Each ring (including the bullseye) is a certain distance from the center. On a circle this is a radius. The outer rings will have a larger radius than the inner rings. You could use a distance calculation radius=sqrt((x-centerx)^2,(y-centery)^2) where x and y is the point the arrow hits and centerx and centery are the center of the target and if the value falls in between the width of a ring, then you know the hit is in the particular ring.
ring1:
if radius < 10 and radius > 5 then ring1=hit
ring2:
if radius < 15 and radius > 10 then ring2=hit
etc.
Enjoy your day.