Grasshopper

algorithmic modeling for Rhino

Hi,

while dividing a surface through "divide surface" and feeding the uv values to a "isocurve" component, I get the desired curves - but duplicated several times on top of each other - please see the attached screenshot.
I don't understand why this is happening, as I get the correct number of evaluation points from the divide component.

What logic am I missing, here?

x

edit: also, something I was always wondering about:
the isocurve component wants to be fed with uv coordinates on the surface, that is, three coordinates. I thought UV only had paired coordinates, so where does the third value come from? I'm probably mixing things up...

Views: 1499

Attachments:

Replies to This Discussion

You're getting a lot of curves on top of each other because you're getting the UV values of each division point. The number of duplicate curve will be related to the the number of divisions that you're making on the surface in each direction. There are several ways you can go about this, but I think the easiest would be to either create the UV points for the isocurves manually or extract the points you want from the UV list..

As to surface coordinates versus world coordinates. The Isocurve component wants to be fed coordinates that represent 2D space. For example, if I had 2 surfaces that both had U and V domains of 0 to 1 and I fed a UV value of 0.5,0.5 to both, it doesn't matter how different those two surfaces are, because I'm expressing that point in relation to the 2D parameterization of the surface itself. Evaluating the surface at that 2D point then leads to a 3d coordinate expressed in world space.

Surfaces do have a third dimension, which is commonly refered to as W. The axis/direction of this third dimension is the normal of the surface at that point. So "technically" supplying a third coordinate value should also represent the point moving along that normal. In practice however, this is only really supported on operations that actually deal with normals on some level or another. So evaluating the surface wouldn't be one, but doing something like displacement would be something that might be interested in that third W value.

In GH, there is no 2 coordinate point because there's just no need for it. It would just be some extra components that would clutter up the space and do pretty much nothing beyond what could already be achieved with a 3 coordinate point.
Here's a quick example for duplicating the isocurves without duplicates. The only gotcha is that the component will always create the same number of curves in each direction, so which ever dimension has the largest value, will never have any duplicates, but the smaller dimension will have however many duplicates that represent the difference between its list and the longer list...
Attachments:
whoops, did some answers we received get deleted since my last refresh?

anyways, thanks a million for your explanation, Damien! I had totally forgotten that there is a "W" coordinate component.. that explains the "triple" values.

I've made a file with three different ways to get isocurve sets with different subdivision levels in U and V direction. One method is Damien's, another one uses the "evaluate" component's points to manually construct "poly"Isocurves or regular isocurves by swapping path and indices, and finally the last method automatically culls duplicate curves and constructs one path per curve - and I've inverted that, too, just for kicks.

x
Attachments:

Hi "But Why" and Damien,

I'm posting a few more (hopefully simpler) solutions to this problem that avoid complex data restructuring, which seems to be overkill for basic isocurve extractions. Damien, the "gotcha" you mentioned in your solution is easily fixed with the shorter list component, one of the new components in Gh0.9. I've provided full explanations of each process in the definition. Let me know if you have any questions or further suggestions, as this is a topic that comes up often with my students.

Best,

Brian

Attachments:

The issue comes up in this video:

http://www.designalyze.com/customtoolpaths

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service