//介乘
int factrial(int factrialCount)
{
int factrialResult = 1; //声明一个long型的变量
if (factrialCount == 0) //0的阶乘为1
{
return 1;
}
for (int i = 2; i <= factrialCount; i++){ //求大于等于2的数的阶乘
factrialResult = factrialResult*i;
}
return factrialResult; //返回结果
}
//bezierPoints 生成的贝塞尔线段的点集合
//bezierControlPoints 贝塞尔控制点的集合
//sectionNum 贝塞尔的阶乘数
//bezierStep 贝塞尔的点的个数
void makeUpBezierLine(float* bezierPoints, float* bezierControlPoints, int sectionNum, int bezierStep)
{
int sectionNumber = sectionNum - 1;
float factResArr[1000];//介乘结果的集合
for (int i = 0; i <= sectionNumber; i++){ //求0到n的阶乘
factResArr[i] = factrial(i);
}
//循环每个点
for (int i = 0; i <= bezierStep; i++)
{
//在bezier曲线上的节点的百分数
float bezierPercentFractor = float(i) / float(bezierStep);
if (bezierPercentFractor > 1)
{
bezierPercentFractor = 1;
}
float tka[1000];
float otka[1000]
任意次bezier曲线的生成 C++ 代码
于 2022-04-06 23:56:28 首次发布