4
$\begingroup$

In common CAD programs there is a function with which you can distribute any number of points on a curve as a percentage / arc length between the start point (0%) and the end point of a curve (100%).

How can you easily realize something like this with Geometry Nodes? The picture below shows two examples, one from the center curve and one from the left boundary curve. In this example, four points are distributed along each curve, starting at the top. The first point is placed at 20% and the last at 80% arc length. In between, the remaining points are distributed evenly.

enter image description here

Another consideration would be to scale the points along and on the curve. How can you set a point to scale from? For example the point in the middle of the curve?

All in all the idea is to be more flexible in the distribution of points on a curve.

Many thanks in advance for any assistance, support or helpful ideas!

$\endgroup$

2 Answers 2

3
$\begingroup$

The "percentage" in your screenshots is named (Curve) Factor in Geometry Nodes. It is available as a manipulation mode in a couple of curve-related nodes (Trim Curve and Sample Curve, off the top of my head) and also as an input field socket on the Spline Parameter node. It's just based on float values between $0-1$ instead of a percentage.

Here's a setup where I use Trim Curve to determine the start and end "percentages" of a Bezier Segment. Then I subdivide that leftover curve to evenly distribute some spheres. Finally, I control the scales of these spheres according to their placement factor with the help of a Float Curve:

enter image description here

enter image description here

$\endgroup$
1
  • $\begingroup$ Thank you @Kuboå!! This is exactly what I was looking for :) $\endgroup$
    – pb1893
    Jan 25 at 7:53
1
$\begingroup$

If you divide the index $+1$ by the number of points of the curve you'll get a number from $0$ to $1$.

Then you can use a Compare node and a Boolean Math node to choose where to instance.

img

$\endgroup$
1
  • $\begingroup$ Thank you @Luiz Antonio and @quellenform! This is also very useful, which I will certainly apply later :) $\endgroup$
    – pb1893
    Jan 25 at 7:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .