I have a 2D curve which represents an airfoil shape, e.g, LE & TE (Leading and Trailing Edges), CC & CV (Concave and Convex).
I need to distribute points along this curve however I don't want an even distribution, I need more points on the LE and TE than I do on the CC and CV.
I would be grateful for any suggestions on how to work my work along the curve and determine whether to increase the density of points being output.
I guess it might be something to do with Rhino.CurveCurvature.
Hi Keith- I guess I'd try to cook up some rule to march along the curve testing curvature- at each point mark a point and move along the curve X amount, check curvature again- if the curvature > the last point , mark a point and check again with a reduced X along the curve; if it is less curved, mark a point and move along at an increased X and check again, etc. Something like that. The increase in distance traveled along the curve can be tied to the amount of curvature, or the change in curvature... Details to be worked out...
Re-reading this, I think you might want to sample points according to parallel-ness of the curve tangent to the wing forward direction- the more parallel, the lower point density. But, I am not sure... this may work well on the leading edge but not the trailing- can you post an example of the desired distribution, even roughly plotted? I'm trying to think of what the rule should be...
A cheap way out, to map point density to curvature, is to FitCrv the airfoil (a copy) to a really tight tolerance and then extract the edit points (EditPtOn, then select these and ExtractPt)
Or, Convert, with Output=Lines and all settings at zero except Tolerance. ExtractPt from the result.
You can have fun with this and see the results in realtime in Grasshopper, unfortunately there is no Convert component yet, so I wrote my own with Python... David has just added a ConvertToPolyline component for the next version of GH.