Article 74Y42 Finding a parabola through two points with given slopes

Finding a parabola through two points with given slopes

by
John
from John D. Cook on (#74Y42)

The Wikipedia article on modern triangle geometry has an image labeled Artzt parabolas" with no explanation.

artz_triangle.png

A quick search didn't turn up anything about Artzt parabolas [1], but apparently the parabolas go through pairs of vertices with tangents parallel to the sides.

The general form of a conic section is

ax^2 + bxy + cy^2 + dx + ey + f = 0

and the constraintb^2 = 4ac means the conic will be a parabola.

We have 6 parameters, each determined only up to a scaling factor; you can multiply both sides by any non-zero constant and still have the same conic. So a general conic has 5 degrees of freedom, and the parabola condition b^2 = 4ac takes us down to 4. Specifying two points that the parabola passes through takes up 2 more degrees of freedom, and specifying the slopes takes up the last two. So it's plausible that there is a unique solution to the problem.

There is indeed a solution, unique up to scaling the parameters. The following code finds parameters of a parabola that passes through (xi, yi) with slope mi for i = 1, 2.

def solve(x1, y1, m1, x2, y2, m2): x = x2 - x1 y = y2 - y1  = 4*(x*m1 - y)*(x*m2 - y)/(m1 - m2)**2 k = x2*y1 - x1*y2 a = y**2 + *m1*m2 b = -2*x*y - *(m1 + m2) c = x**2 +  d = 2*k*y + *(m1*y2 + m2*y1 - m1*m2*(x1 + x2)) e = -2*k*x + *(m1*x1 + m2*x2 - y1 - y2) f = k**2 + *(m1*x1 - y1)*(m2*x2 - y2) return (a, b, c, d, e, f)

[1] The page said Artz" when I first looked at it, but it has since been corrected to Artzt". Maybe I didn't find anything because I was looking for the wrong spelling.

The post Finding a parabola through two points with given slopes first appeared on John D. Cook.
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments