Nem*_*emo 49
设P0,P1,P2为控制点,Pc为您希望曲线通过的固定点.
然后Bezier曲线定义为
P(t) = P0*t^2 + P1*2*t*(1-t) + P2*(1-t)^2
Run Code Online (Sandbox Code Playgroud)
......其中t从零到1.
你的问题有无数的答案,因为它可能会通过你的点来获得任何t值...所以只需选择一个,如t = 0.5,并求解P1:
Pc = P0*.25 + P1*2*.25 + P2*.25
P1 = (Pc - P0*.25 - P2*.25)/.5
= 2*Pc - P0/2 - P2/2
Run Code Online (Sandbox Code Playgroud)
那里的"P"值是(x,y)对,所以只需对x应用一次方程式,对y应用一次:
x1 = 2*xc - x0/2 - x2/2
y1 = 2*yc - y0/2 - y2/2
Run Code Online (Sandbox Code Playgroud)
...其中(xc,yc)是您希望它通过的点,(x0,y0)是起点,(x2,y2)是终点.这将为您提供一个在t = 0.5时通过(xc,yc)的Bezier.