Bezier曲线的绘制

Bezier曲线是参数多项式曲线,它由一组控制多边形折线(控制多边形)的顶点唯一定义,在控制多边形的各顶点中,只有第一个和最后一个顶点在曲线上,其他的顶点则用以定义曲线的导数,阶次和形状

Bezier曲线的数学基础是能够在第一个和最后一个顶点之间进行插值的一个多项式混合函数,对于有n+1个控制点的Bezier曲线段用参数方程表示如下:


式中pk(xk,yk,zk),k=0,1,2…..n是控制多边形的n+1个顶点,BENk,n(t)是Bernstein基函数


下面输入n个点并绘制Bezier曲线

#include
#include
#include
#include
#include 
#include
#define N 1000
int n;//控制点的个数
struct point  //控制点的坐标
{
	double x;
	double y;
}point[N];
void init()  //输入控制点的坐标
{
	int i;
    printf("please input the number of the points: ");
	scanf("%d",&n);
	printf("please input the location of the points\n");
	for(i=0;i

给出一组测试用例


(红色为控制多边形,绿色为Bezier曲线)




你可能感兴趣的:(计算机图形学)