algorithmic modeling for Rhino
A curve can always be treated as a line which is potentially bend and stretched in 3D space. This means that we do not allow for curves that have gaps in the middle nor curves which split up into multiple strands. If a curve is closed, it simply means that the start and end points are in the same location, but not the curve is really a closed loop without start or end.
When you define a curve in this way it becomes possible to say that each curve has a 'domain' in which it exists. The start of the domain represents the start of the curve and the end of the domain the end of the curve. A domain is a numeric range, say {0.0 to 12.67}. The curve is undefined for numbers outside of the domain. The numbers inside the domain are called 'parameters' and are usually represented with the symbol t. It's important to realize that parameters have little or nothing to do with length. The domain of a curve may well go from zero to the length of the entire curve, but that doesn't mean that when you measure a curve at t=1.5 that you'll get a point 1.5 units along the curve. 'Parameter density' is not guaranteed to be constant meaning that if you walk along the curve at fixed parameter intervals, your speed in 3D space will not be constant.
Curve parameters are usually closely related to the mathematical definition of a particular type of curve. For Lines the parameters tend to go from zero (start) to one (end) regardless of the actual length of the line. Circles tend to have parameter domains from zero to 2*Pi as circles are described using Sine and Cosine functions. Nurbs curves are defined by a set of consecutive polynomials and the parameters are related to the variables in those polynomials.
Long story short, parameters are the only way in which you can measure/sample/evaluate a curve at a specific location. You can measure the location of a curve at a parameter, but also the tangent vector and the curvature etc. etc. It is possible to compute what parameter represents the curve at a certain distance from the start-point, but that computation can be quite complicated and expensive (from a processor point of view), which is why most curve evaluation components use curve parameters as input.
So when you use the Evaluate Curve component and you provide a parameter outside of the curve domain, the component will complain. If you provide a parameter inside the domain then you'll get the location and tangent vector of the curve at that parameter.
You never pick parameter by hand btw., they are almost always the result of a previous step in the algorithm.
--
David Rutten
david@mcneel.com
Poprad, Slovakia
thank you very much , I appreciate your help
So if the t parameter is based upon a mathematical definition of the curve, is there a way to reconstruct this definition so that when you evaluate curves the parameter on the curve is directly proportional to length? Realizing now that any script or definition I have written that intends to find midpoints by reparameterizing is actually giving me false results.
Realizing now that any script or definition I have written that intends to find midpoints by reparameterizing is actually giving me false results.
For example, the divide length component gives you the t-parameter along the curve, but this does not work without shattering the curve if you want to measure the length of a curve from one parameter to another. How does the divide length component return the t-parameter on the curve?
Hi Pantelis,
Evaluate curve component, evaluates (puts a point) at specific part of the curve, related to the "t" parameter.
"t" input is not an angle input, but rather a curve domain parameter. By clicking on the "C" input of the Evaluate curve component and choosing "reparametarize" you are changing the domain of the curve to "0 to 1". If the curve length represents the curve domain, then you can assign a point at the middle of the curve by inputting "0.5" as your "t" parameter.
This great book, about grasshopper basics, will make some of your questions more clear:
thank you very much ... need to do some studying i guess !!!
thaaaaaaan you ... great !!!!!!!!!!!
© 2022 Created by Scott Davidson. Powered by