急找绘制bezier曲面代码(matlab)

来源:百度知道 编辑:UC知道 时间:2024/06/20 02:15:28
要曲面的 不要曲线的 用matlab编写

/*
产生三次方贝塞尔曲线的程序码
*/

typedef struct
{
float x;
float y;
}
Point2D;

/*
cp 在此是四个元素的阵列:
cp[0] 为起始点,或上图中的 P0
cp[1] 为第一个控制点,或上图中的 P1
cp[2] 为第二个控制点,或上图中的 P2
cp[3] 为结束点,或上图中的 P3
t 为参数值,0 <= t <= 1
*/

Point2D PointOnCubicBezier( Point2D* cp, float t )
{
float ax, bx, cx;
float ay, by, cy;
float tSquared, tCubed;
Point2D result;

/* 计算多项式系数 */

cx = 3.0 * (cp[1].x - cp[0].x);
bx = 3.0 * (cp[2].x - cp[1].x) - cx;
ax = cp[3].x - cp[0].x - cx - bx;

cy = 3.0 * (cp[1].y - cp[0].y);
by = 3.0 * (cp[2].y - cp[1].y) - cy;
ay = cp[3].y - cp[0].y - cy - by;

/* 计算位于参数值 t 的曲线点 */

tSquared = t * t;
tCubed = tSquared * t;

result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
result.y = (a