Grasshopper

algorithmic modeling for Rhino

Hello

I am trying to place points along a curve, specifically I want the point density to increase as the curvature increases.

The method I was thinking about is to take vectors along the curve and measure the distance along the vector to the point where the curve has deviated from the vector by an X distance (or degrees) that could be determined by a slider, and place the next point there, hence where curvature is high, points are close together.

I have found this:

http://www.grasshopper3d.com/forum/topics/divide-curve-by-curvature

but it is not really what I need.

Thanks for your attention

P.S. It would be great if someone could think of a way to determine if curvature is positive or negative and have high density of points in the positive and low density where curvature is negative or viceversa.

Thanks again

Views: 2313

Replies to This Discussion

Positive and Negative curvature only make sense in 2D I think, not 3D. But it's possible to do the maths in a plane rather than XYZ world space.

The problem with adding a point and then picking the next point based on the previous one is that it requires iteration with communication between loops. Grasshopper cannot handle that. You can probably do it using the HoopSnake plugin, but I don't know how.

I don't think your algorithm will work though, curves that nearly* intersect themselves will start to skip entire loops (see attached).

--

David Rutten

david@mcneel.com

Poprad, Slovakia

* where "nearly" means within a tolerance of X, where X equals the length of the tangent vector.

Attachments:

Thank you for your reply.

I am unable to open your attached file, I get a "Object reference not set to an instance of an object" error message.

However, my curve is flat on the XY plane, as a matter of fact my "several curves" are contour lines and I want elements to be distributed along each individual curve in a way that "ridges" are more densely populated, and "valleys" have almost no population at all, hence the positive and negative curvature.

I would really appreciate any suggestion on how to achieve this.

Thank you again

Which version do you have?

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Version August-02, 2012

Build 0.9.0006

Rhino 4 sr9

Hmm, I would have been worried if it didn't open on 0.9.0013 or 0.9.0014, though forward file compatibility was never an important consideration for GH development.

The file I posted contained a VB script that performed the iteration, but as mentioned it doesn't work very well at all because

  1. The possible variation in terms of spacing is severely limited
  2. If the step size is too large then large sections of the curve might get skipped.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

I do realize that the method I proposed requires loops and iteration to work, therefore any suggestion that will achieve the expected result will be appreciated.

thnks

Here's something that will give you the 'hills'.  Variable distribution of points based on curvature still needs to be solved.

Attachments:

Thanks Chris,

Will use it as a base to try a few ideas

I was unable to open your .gh, so I copied it from the image, however, the Evaluate(Eval) element turns orange, did you assign any value to the F variable?

thanks

My grasshopper version was too old, I have updated it now and am able to open new .gh files, but thanks anyway

This one has some ability to vary the point density.  It might not be as smooth as you want though.

Attachments:

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service