Calcular el Vértice de una Parabola dados 3 Puntos en Código (Explicación)



Dados 3 puntos X/Y que estan en una parabola, se necesita calcular el vértice de la misma que pasa por esos 3 puntos.

(x1,y1) (x2,y2) (x3,y3)

Se sustituyen los valores de los 3 puntos y se multiplica el vector a la matriz. En pseudocódigo, quedaría así:


denom = (x1 - x2)(x1 - x3)(x2 - x3)
A = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2)) / denom
B = (x3^2 * (y1 - y2) + x2^2 * (y3 - y1) + x1^2 * (y2 - y3)) / denom
C = (x2 * x3 * (x2 - x3) * y1 + x3 * x1 * (x3 - x1) * y2 + x1 * x2 * (x1 - x2) * y3) / denom

El resultado serían las variables A, B y C, que corresponden a la ecuación de la parábola: Ax^2 + Bx + C = y



Desde este punto, es sencillo convertirlo a algún lenguaje de programación como Java, C++, C#, entre otros. Para Java sería:

double denom = (x1 - x2)(x1 - x3)(x2 - x3):
double A = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2)) / denom;
double B = (x3^2 * (y1 - y2) + x2^2 * (y3 - y1) + x1^2 * (y2 - y3)) / denom;
double C = (x2 * x3 * (x2 - x3) * y1 + x3 * x1 * (x3 - x1) * y2 + x1 * x2 * (x1 - x2) * y3) / denom;

2 comentarios:

  1. pero estás asumiendo que las distancias al punto punto 2 son las que determinan el punto de inflexión... cosa que no es necesariamente así. Digo, con esos tres puntos el vértice podría estar a la izquierda del punto de menor cardinalidad X, no?
    Muy bueno igual, saludos!

    ResponderEliminar
    Respuestas
    1. Lo que se calcula es la ecuación de la parabola, es decir:
      Ax^2 + Bx + C = y
      He agregado una imagen a la publicación para que se entienda mejor.
      Muchas gracias por tu comentario!

      Eliminar