# Bezier curve, y(x)

1. Jan 9, 2010

### tuoni

Is it possible to from a cubic Bezier curve (B) first calculate t as a function of x, and then y as a function of t?

I am currently using:

$B(t) = (1-t)^{3} \cdot P_{0} + 3(1-t)^{2} \cdot P_{1} + 3(1-t)^{2} \cdot P_{2} + t^{3}P_{3}$

; which works just fine to model several curves I need to use in my calculations, however, I would need to be able to calculate y as a function of x, as opposed to B as a function of t.

Is it possible? Simple rearranging doesn't seem to be possible.

2. Jan 10, 2010

### hotvette

If I understand correctly, you want to convert a cubic bezier to the form y = f(x). I'm curious as to what situation you have that you'd want to do this. The beauty of bezier curves is that they can easily describe complicated shapes that can't readily be done with functions of the form y = f(x).

Conversion could potentially be done, but things get messy real fast since with bezier curves x is in general a cubic function in t. If the curve is a degernate one where x is a linear function of t, the conversion is straightforward.

3. Jan 10, 2010

### tuoni

At the moment I have to step through t in small increments until I find the x value I want, and then get the y value. I was just wondering whether there was a quicker and more accurate way of doing this.

4. Jan 10, 2010

### hotvette

Tell us a little more about what you are doing. Maybe there is a different approach.

5. Jan 11, 2010

### tuoni

I am using Bezier curves to model drag constant curves.

http://enes.fi/temp/kdrag.png [Broken]

Previously I divided the curve into smaller segments, then for each segment plotted a regression curve using the power function: ak^b (k is the Mach constant). The regression curves were sometimes poor approximations, so I looked for better alternatives.

Last edited by a moderator: May 4, 2017
6. Jan 11, 2010

### hotvette

Is data interpolation the ultimate objective? If so, I'd try standard cubic splines.