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.

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.

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.