Dart board question - Check where is the dart located

Dear All,

I am creating a dartboard in grasshopper and now facing some problems. I would like to ask for advice on the following question:

The location of the dart, my approach is to check the distance between my dart (point) and the score curves, then determine the zone where is my dart located then calculate the score. However, this approach will have chances to identify the incorrect zone where the dart is located (see below figures):

Incorrect outcome:

Ideal outcome

Thus, I would like to ask for some advice on the checking approach. Thank you in advance.

question 2.gh (14.9 KB)
question box 1.3dm (48.3 KB)


You could use the surfaces of each ring instead of curves…

question 2_re.gh (20.8 KB)


Hi @HS_Kim,

Thanks for the fast response, using the surface to check the zone works well on the location. But it might increase the difficulties in the later stages, in which I am going to determine the score for the point (see below figure). Thus, I prefer to solve the zoning problem with curves. May I have your advice on this issue?


I thought this could be solved mathematically. There are issues however.

As a general advice when working with circular geometry, I would place it on the origin whenever possible.

Are you aware your radii aren’t regular? The segments do not have equal width.

dartboard.gh (17.3 KB)


2021-10-21 08-53-56.2021-10-21 08_55_27

This should be a little faster than constructing surfaces and looking for closest points on a brep. With peace and love, but it seems unnecessarily wasteful for this example.


answer 2.gh (22.5 KB)

1 Like

Check this as well.
question 2_rev2.gh (16.6 KB)


Hi all, I am wondering if I use the ellipse for the dartboard. This approach using “deconstruct arc” might be not working? :thinking:

Well, yes, that’s a totally different case. Ellipses can’t really be sorted by a single radius. You asked about circles, and that’s what was provided.
In that case, you can probably check whether the point is inside curves or something, like in the the square grid example.

1 Like

Here’s another way…

dart_re.gh (15.5 KB)

1 Like

You received excellent advice in the first reply by @HS_Kim and rejected it.


Hi -

… since this doesn’t look like a dart board at all and you later moved to ellipses, the following is probably irrelevant, but anyway…

At least in archery, the result in that picture is the correct outcome. When an arrow breaks the line, the higher score is attributed.

1 Like

just another try :slight_smile:
not completely clear to me if you want only perfect mid-points (perfect 50%/50% distance between previous and next circle) to assign + half value, or you want the value to be calculated continuously

question 2_RRRRe.gh (18.3 KB)

1 Like

Hi, yes, I think it is a totally different case, and Kim has provided an excellent example for this. I just wonder if the dartboard is another shape and how does it work. Let me have a try these days.


Hi @HS_Kim,

Thanks for the excellent example, let me give a try after work. Many thanks!

Definitely my bad. Would you guys prefer working it in surface rather than curve?

That’s interesting, creating different shape for the dashboard. I would like to give a try on different files this weekend.

Thanks all!

What can I say, you are a genius.