How to calculate the vertex of a parabola given three points

后端 未结 8 1107
故里飘歌
故里飘歌 2020-11-30 03:11

I have three X/Y points that form a parabola. I simply need to calculate what the vertex of the parabola is that goes through these three points. Preferably a quick way as I

8条回答
  •  离开以前
    2020-11-30 04:16

    Thanks David, I converted your pseudocode to the following C# code:

    public static void CalcParabolaVertex(int x1, int y1, int x2, int y2, int x3, int y3, out double xv, out double yv)
    {
        double denom = (x1 - x2) * (x1 - x3) * (x2 - x3);
        double A     = (x3 * (y2 - y1) + x2 * (y1 - y3) + x1 * (y3 - y2)) / denom;
        double B     = (x3*x3 * (y1 - y2) + x2*x2 * (y3 - y1) + x1*x1 * (y2 - y3)) / denom;
        double C     = (x2 * x3 * (x2 - x3) * y1 + x3 * x1 * (x3 - x1) * y2 + x1 * x2 * (x1 - x2) * y3) / denom;
    
        xv = -B / (2*A);
        yv = C - B*B / (4*A);
    }
    

    This is what I wanted. A simple calculation of the parabola's vertex. I'll handle integer overflow later.

提交回复
热议问题