|
下面是对过三点的抛物线的一种情况的推导,欢迎讨论
如果给出的三点满足条件:
关于抛物线对称轴对称的两点p0,p2,和抛物线的顶点坐标p1。 (*)
则抛物线的方程式可精确求得:
设p(u)=c0 + c1*u + c2*u^2是抛物线的方程,参数u∈[0.0, 1.0]; c0,c1,c2为常数;
抛物线过p0点,此时u=0, 得 p0 = c0;
抛物线过p1点,此时u=1/2,得 p1 = c0 + c1/2 + c2/4;
抛物线过p2点,此时u=1, 得 p2 = c0 + c1 + c2;
| 1 0 0 |
写成矩阵的形式:P = | 1 1/2 1/4|* C;
| 1 1 1 |
其中P为(p0,p1,p2)',C为(c0,c1,c2)' (注意向量(p0,p1,p2)和(c0,c1,c2)右上角的“'”,向量的转置)
| 1 0 0 |
记M =| 1 1/2 1/4| ,则记M的逆矩阵为N; (M为非奇异阵,则M的逆存在),容易求得M的逆矩阵N:
| 1 1 1 |
| 1 0 0 |
N = | -3 4 -1 |, 则 C = N*P;
| 2 -4 2 |
记 U为(1,u,u^2),(抛物线的基),则p(u) = U*C; (向量可看作某一维度为1的一个矩阵),而C = N*P,则有:
p(u) = U*N*P; 由矩阵的结合律:p(u) = (U*N)*P; 写开即为:
p(u)=(1-3*u+2*u^2, 4*u-4u^2, 2*u^2-u)*P
=(1-3*u+2*u^2)*p0 + (4*u-4u^2)*p1 + (2*u^2-u)*p2; (p0,p1,p2,即为刚才的三个插值点,u∈[0.0, 1.0])
随着参数u在区间[0,1]上的变化,p(u)为该抛物线上的一系列的点。
一个不精确的情况为:如果三点不符合条件(*),则也可以得到一条抛物线或者近似抛物线,貌似不可控制。 |
|