Grasshopper

algorithmic modeling for Rhino

Why does a circle or ellipse with equal radius not have the same t value at a parameter?

In the below image / gh I have a radius for a circle(r) and ellipse(r1,r2).  These two curves are re-parametrized and then evaluated at a specific length (normalized) L value.

At the axis L sampling points (0, .25, .5, .75) the resultant t value is the same for both curves.  But any other L sampling results in different t values from the eval component.

I guess this has something to do with a circle vs ellipse and the fact that L is not a t parameter, but I would have expected with the radius set to the same for both the circle and the ellipse that the resultant t values would be equal. Can anyone explain why they are not?

Views: 1028

Attachments:

Replies to This Discussion

I don't have an explanation, but I would guess that it has to do with how the two shapes are plotted differently, even thought the resulting curve is the same...

And as mentioned, parameter and length are not the same thing

 

But what I did realize is that by rebuilding both curves, the values do match.

Maybe someone will have an actual explanation...

The actual explanation is curve parameterization like you said. Circles are analytic entities in Rhino while an ellipse is a Nurbs curve with weighted control points.

--

David Rutten

david@mcneel.com

Thanks for the confirmation, David.  I was thinking that curve parameterization was the answer.  Now I just have to really think about what approach I take and what it means as, on the surface, it would seem like a value at Length would result in the same t value for curves, but it obviously doesn't.

I have to be careful what I use... I might just be wrong....

It seems like Length is the "safer" parameter to use as - I would think - a length on a curve is always that length no mater what the "shape" of the curve is.  While parameter t is more "risky" as t will fall on various locations on the curve depending on the curve "shape".

But from reading your other post on t parameters and length, it sounds like length is a much more compute intensive operation and will suck the mips. 

Evaluating at a length is typically slower than at a parameter, but sometimes you don't have a choice. Parameters are used internally so when you perform a Curve CP operation or an intersection operation then you already have the parameter. 

As long as you don't make the mistake of thinking that equi-distant steps in the curve domain will give you equi-distant steps along the curve shape you'll be fine.

--

David Rutten

david@mcneel.com

Thanks for checking in on this Gui... it makes sense that rebuilding the curve causes the t values to be equal, as after rebuilding I would think the two curves are identical with identical control points.

This is not true. Rebuilding will reduce the variability but it will not result in consistent arc-length-parameterization.

--

David Rutten

david@mcneel.com

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service