Curve midpoint confusion

Does anyone know why evaluating a curve at 0.5 might return a different point than the CurveMiddle component? I’m stumped.

I have a polycurve (an arc with a short tangent line at either end) that is created inside a Python component, and I get different results when evaluating at 0.5 or using Curve Middle. I’ve tried manually creating a similar curve, but I can’t make it “break”. Does anyone have any idea why this could be?

Here’s a gh file with the data internalized, there are 2 similar polycurves at the origin, one works, one doesn’t. As I said, I’m stumped. Any help or explanation is greatly appreciated.

Midpoint Confusion.gh (4.8 KB)

Midpoint Confusion Edited v0.gh (13.0 KB)
I also like to know the reason.

Group 1 is the same, and 2 is not.
I guess it is related to the uneven curve domain.
If so I like to ask if there is a way to visualize the unevenness of the curve domain.

I think the following link may be helpful.

3 Likes

Yes, aside from very particlar cases parameter space has nothing to do with length ratio.
Curve Middle, Point on Curve at 0.5 (that one is confusing so I don’t use it anymore) or Evaluate Length at 0.5 with Normalized = True will all give the same result. Evaluate Curve at 0.5 will not.

1 Like

Wow, consider me gobsmacked.

Now that I understand (well, mostly :-)) it all makes perfect sense, but it also means that many of my Grasshopper scripts over many years contain potential inaccuracies. It was blind luck that I found this one.

Smuckers. (A brand of jams and jellies in the US, and also a substitute term for something far less polite.)

Thank you all very much for the explanation(s). Now if I can just remember to use Evaluate Length instead of Evaluate Curve…

Try using divide curve, 2 for the input in the middle characteristic bottom input is for knot curve point division set. Lists the item.