MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My apologies if this is asked in the wrong spot, I believe that this problem has a fairly simple solution... but it is beyond me. Given three points (A,B,C) drawn at random, how do you figure out the middle point's (B) control points (B1?, B2?) for a bezier curve? The image below will help illustrate what I am looking for. The best way I can describe it (not knowing the lingo that is) would be needing the tangent of the angle formed.

I have the incorrect control points (B1, B2) coordinates calculated now as 1/6 the distance of the line length. But they would have to be higher (in this example) to give a proper bezier curve. How can I calculate those coordinates (B1?, B2?) given that I have the coordinates for all the other points labeled below? Hopefully this is as simple as I imagine!

Image: link text

Here is how I calculate the incorrect (B1, B2) control points:

B1x = Bx - ((Bx - Ax)/6)
B1y = By - ((By - Ay)/6)

B2x = Cx + ((Bx - Cx)/6)
B2y = Cy + ((By - Cy)/6)

Thank you SO much in advance!

share|cite|improve this question
This question might be better at – David Roberts Jul 16 '11 at 0:28

I am not sure I understand your question, but if you want the set of points that will describe the quadratic Bezier curve defined by the three points A, B and C, try the DeCasteljau algorithm. That is, you go halfway the points A and B, then halfway the points B and C, then join these two new points, then go halfway these two new points, and the point you obtain lies in the quadratic Bezier curve .. and you do this for every value on the interval [0,1], to construct the whole quadratic curve.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.