Grasshopper

algorithmic modeling for Rhino

i have an issue with using the subcurve component. i have a series of domains which i use to "split" the curves which works fine when the domain is within 0-1.

however i am limited to the starting point of curve for the start of the domain. therefore i use an addition component to add a value to both numbers in the number which should give the effect that the starting point is "rotating". a domain that was once 0.25 to 0.75 now becomes 0.75 to 1.25 once i add 0.5, but as the subcurve only draws a curve to a value of 1.0, and so all curves are theoretically shorter than they should be.

i also tried to do an process of subtracting 1 from all numbers larger than 1 to get a domain within 0 and 1, but as you can see from the image, it draws a curve that is from 0.25 to 0.75 (not 0.75 to 1.25), therefore flipped.

does anyone know how i can draw a curve that is from a domain of 0.75 to 1.25?

I know this application for a circle could be easily solved with a rotate but if i apply this to an irregular shape, it would not work. 

Views: 1277

Attachments:

Replies to This Discussion

I'm not sure of the following, but here it goes:

I think in Rhino 4 the domain of a curve was:

for linear curves, e.i. polylines, the length of the curve (polyline)

for splines, the lenght of the (straight) polyline that joins the control points. 

If an operation (scaling for example) is applied on the (original) curve, the domain is still the domain of the firstly created curve.

In Rhino 5 the domain of a curve goes from 0 to 1. Therefore you cannot split a curve along a domain above 1 because the curve doesn't exist there. Maybe you should try an solving your problem using something other than the split component. 

Can you explain what you are trying to achieve?
Not the process of how could you achieve that in grasshopper, but generally what do you want to do?
You want to make a series of circles, equally and gradually distances one from another, were each circle will be shorter by 1/4 of it's length in comparison with the previous one?
As the circles length shrinks (0.75, 0.5, 0.25) you will get to the circle with 0 length. You want to skip that one , and instead of it to have a 0.25 circle? And then again: 0.5, 0.75, 0.25, 0.5, 0.75?

i have the domains which are applied on a subcurve of series of offset curves (all closed) as you can see in the image. my aim is to basically show an effect of rotating these curves, not by rotating, but by changing the domain of the subcurve. the problems is, that when the domain goes above 1, the subcurve doesnt work properly. the reason i cannot simply use the rotate component is that i aim to input a series of irregular shapes instead of circles. 

i hope you understand my intention


Sorry I do not understand you.

I think what you are looking to do is to remap the domain. But since the remap component remaps scalars and not domains, you first have to obtain the domain components, i.e. the start and end of the domain. Then you can use the remap component with these scalars. 

Also the starting curve which you want to remap should have the extent of the original curve and the "rotated" curve. For example if it's an arc that which you want to rotate, the starting curve would be a subdomain of the circle. And the "rotated" curve would be the circle with the subdomain shifted. 

Attachments:

i have reparametrized the curves, so that the domain is always 0-1. however whenever i pass 1, the curve no longer draws anything past 1. basically, this can be seen in your help file, whenever i set the R0-2 for the upper endpoints to above 2

thanks

The problem your having is interesting: the moment the domain of the curve exceeds 2*Pi you need a set of two curves for every curve, one for the beginning (for example from 1.8 to 2 Pi) and one for the end (for example from 0 to 0.25 Pi)

I managed to do two revolutions of (up to 4Pi). Maybe you can work it out up to n-Pi

Attachments:

a couple of ideas...first of all, here you are managing a series of circles.  If your project utilizes this particular geometry, why not rather conceive of them as arcs developed by a base plane, radius and angle domain instead.  Simply adjust your starting point as an angle, and add to this the radians to define the arc length.

If, however, you would want to extend this definition to other types of closed curves, I would use the "adjust seams" component to simply change the location of the closed curve start and end points to define your sub-curve starting "t" value, and get the "t" value for the end point from a curve length component.  The problem here would arise from whether or not you wanted to have your slider go negative, in which case you'll have to add in some conditionals to adjust the seam in the opposite direction.

Attachments:

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