Один из способов - самому построить кривую Безье. Имеются начальная и конечная точки (P0, P3). Вы добавляете две промежуточные точки.
Bez.png
Уравнение кривой:
C(s) = P0 * (1 - s)^3 + P1 * 3 * s * (1 - s)^2 + P2 * 3 * s^2 * (1 - s) + P3 * s^3
где s меняется от 0 до 1.
Вот процедура (писал для DirectX) - из книги Адамса
Код:
procedure CubicBezierCurve(vecPoint1,
vecPoint2,
vecPoint3,
vecPoint4: TD3DXVECTOR3;
Scalar: Single;
var vecOut: TD3DXVECTOR3);
var v1: TD3DXVECTOR3;
begin
// C(s) =
// P0 * (1 - s)^3 +
D3DXVec3Scale(vecOut, vecPoint1, (1.0-Scalar)*(1.0-Scalar)*(1.0-Scalar));
// P1 * 3 * s * (1 - s)^2 +
D3DXVec3Scale(v1, vecPoint2, 3.0*Scalar*(1.0-Scalar)*(1.0-Scalar));
D3DXVec3Add(vecOut, vecOut, v1);
// P2 * 3 * s^2 * (1 - s) +
D3DXVec3Scale(v1, vecPoint3, 3.0*Scalar*Scalar*(1.0-Scalar));
D3DXVec3Add(vecOut, vecOut, v1);
// P3 * s^3
D3DXVec3Scale(v1, vecPoint4, Scalar*Scalar*Scalar);
D3DXVec3Add(vecOut, vecOut, v1);
end;