I have two points and I want to connect them with a bezier curve. The curve must have a certain length.

I need these for pattern making. So I need to be a certain length to match the lenght of other curves.

I have two points and I want to connect them with a bezier curve. The curve must have a certain length.

I need these for pattern making. So I need to be a certain length to match the lenght of other curves.

There will be an infinite number of solutions if you allow the two interior bezier points to be fully variable. If you restrict yourself to arcs within a plane, there’ll be only two solutions (or exactly one, or zero depending on how far apart the end-points are). What sort of additional constraints do you want on your bezier? Tangent directions? Symmetry?

Either way, the length of a bezier does not change linearly with control-point positions, so there will not be an analytic solution. But you may still be able to get an acceptable answer by generating N bezier, plotting their lengths and intersecting that plot with the desired length. That does require you simplify your problem to a single variable though, rather than the 4 variables you have now.

Hello David!

I need the curve to be in a plane, and restricted by a vector director on each point.

These is for making patterns for bags where you have to match a straight line with a curve. and the curve has to have the same lenght.

I don t know I I made myself clear.

Thank you!

Locking down the end-points and the tangent directions reduces your problem to 2 variables, still giving you a whole family of solutions.

Here’s a file for creating a bezier from a 4-point set, with control over tangent lengths: bezier_curve.gh (15.4 KB)

And here’s that file embedded as a cluster into another file which generates a whole bunch of solutions with different tangent lengths, measures all the resulting bezier lengths, plots that data as a mesh (x = start-tangent-length, y = end-tangent-length, z = bezier-length) and intersects it to find the family of bezier curves that are all equally long: bezier_curves.gh (17.6 KB)

You don’t! Curve length is a result of start/end points, vector directions and magnitudes.

If I have 2 points start and end and I have 2 vector directions for each point, I need the curve to be x long. Magnitud can change.