# Make Curve In VEX

## Recommended Posts

How can I make curve in VEX? In Documentation I found spline function but I do not understand how to use. I would like to make smooth blend-curve between many lines.

Thanks!

##### Share on other sites
Posted (edited)

Put all point positions into an array and make parameter "t" slide e.g. from 0 to 1 inside a for loop.

```int steps = chi('steps');
vector all_points[];
resize(all_points, npoints(0));

for (int i = 0; i < npoints(0); i++){
all_points[i] = point(0, "P", i);
}

for(int i = 0; i < steps; i++){
float slide = i / float(steps - 1);
vector pos = spline("catrom", slide, all_points);
}```

Also a simple function for interpolating 4 points to a curve by yourself would be:

```int steps = chi('steps');

vector pt0 = point(0, "P", 0);
vector pt1 = point(0, "P", 1);
vector pt2 = point(0, "P", 2);
vector pt3 = point(0, "P", 3);

for(int i = 0; i < steps; i++) {

float slide = i / float(steps - 1);
vector pos0 = lerp(pt0, pt1, slide);
vector pos1 = lerp(pt2, pt3, slide);
vector ipol = lerp(pos0, pos1, slide);

}```

Edited by konstantin magnus
• 5

##### Share on other sites

On 17.3.2017 at 0:18 AM, Igor said:

I would like to make smooth blend-curve between many lines

please take a look at the attached file. it´s an example how you could create bezier curves with arbitrary degree and another one relying on beziers in hermite form since you wrote about blending curves...

petz

• 8

##### Share on other sites

Thank you very much Konstantin and Petz! Your method work perfect!

## Create an account

Register a new account