這裏的計算貝塞爾混合函數的樣品,直接從formulation以下:
double choose(long n, long k)
{
long j;
double a;
a = 1;
for (j = k + 1; j <= n; j++)
a *= j;
for (j = 1; j <= n - k; j++)
a /= j;
return a;
};
double bezierBlend(int i, double t, int n)
{
return choose(n, i) * pow(1 - t, n - i) * pow(t, i);
}
對於雖然大多數應用中,計算所述功率和二項式係數每次是荒謬低效的。在典型應用中,曲線的程度是恆定的(例如,2代表二次方程或3代表三次方程),並且可以通過預擴展公式來更高效地計算函數。以下是三次曲線的示例:
double BezCoef(int i, double t)
{
double tmp = 1-t;
switch (i)
{
case 0: return tmp*tmp*tmp;
case 1: return 3*tmp*tmp*t;
case 2: return 3*tmp*t*t;
case 3: return t*t*t;
}
return 0; // not reached
}