计算机图形学实验规则曲线,计算机图形学实验报告四 自由曲线绘制算法

实验题目:实验四 自由曲线绘制算法

1. 实验目的:

掌握曲线的表示形式、曲线的连续性条件、拟合和逼近的基本概念

掌握Bezier曲线的性质

编程实现Bezier曲线生成算法

2. 实验描述:

绘制三次Bezier曲线,可以采用公式法或德卡斯特里奥(De Casteliau)算法绘制

3. 算法设计:

当n=3时,Bezier曲线的控制多边形有四个控制点P0、P1、P2和P3,Bezier曲线是三次多项式。 p(t) 3 PBi

i 0i,3(t) (1 t) P0 3t(1 t) P1 3t(1-t) P2 t P3 3223

3232323 ( t 3t-3t 1)P0 (3t 6t 3t)P1 ( 3t 3t) P2 tP3

其中:B0,3(t),B1,3(t),B2,3(t),B3,3(t)称为基函数。

4. 源程序:

//1)TestView.h

class CTestView : public CView

{

…….

protected:

bool Flag;//标志

CPoint *pt;//顶点

int CtrlPoint;//控制多边形顶点

} ……..

2) //TestView.cpp

#include "math.h"//数学头文件

#define N_MAX_POINT 10//控制多边形的最大顶点数

#define ROUND(a) int(a+0.5) //四舍五入

。。。。。。

CTestView::CTestView()

{

}

void CTestView::OnMENUBezierCurve()

{

// TODO: Add your command handler code here RedrawWindow(); AfxGetMainWnd()->SetWindowText("三次Bezier曲线");//显示标题 MessageBox("单击左键绘制控制多边形,单击右键绘制曲线","提示",MB_OK); Flag=false;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值