二次贝塞尔曲线的公式为:
**B** (t)= **a** (1-t)2 + 2 **b** t(1-t)+ **c** t 2 = **a** (1-2t + t 2)+ 2 **b** t-2 **b** t 2 + **c** t 2 =( **a** -2 **b** + **c** )t 2 +2( **b** - **a** )t + **a**
其中粗体表示向量。随着 乙 X给出(T),我们有:
x =( **a** x -2 **b** x + **c** x)t 2 +2( **b** x - **a** x)t + **a** x
其中 v X是的x分量 v 。
根据二次方程式
-2( **b** x - **a** x)±2√(( **b** x - **a** x)2 - **a** x( **a** x -2 **b** x + **c** x))t = ----------------------------------------- (2 **a** x( **a** x -2 **b** x + **c** x)) **a** x - **b** x ±√( **b** x 2 - **a** x **c** x) = ---------------------- **a** x( **a** x -2 **b** x + **c** x)
假设存在解,则将t插回原始方程式,以得到给定x处 B (t)的其他分量。
第2部分您可以仅将参数参数的域限制为[0,1]的适当子区间,而不是生成与第一条曲线的一部分重合的第二条Bezier曲线(我现在不喜欢对符号进行运算)。也就是说,使用第1部分来找到x的两个不同值的t值;将这些t值称为i和j。为t∈[i,j]
绘制 B (t)。等效地,为t∈[0,1] 绘制 B (t(ji)+ i)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)