- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学的课程设计
计算机图形学课程设计
设计题目:画三次Bezier曲线和三次B样条曲线
班级:
姓名:
学号:
一、总体目标和要求
1 课程设计目的
本课程主要内容包括计算机图形学的研究内容、发展与应用,图形输入输出设备,图形显示原理,图形软件标准,基本图形生成算法,图形几何变换与裁剪,自由曲线和曲面,三维实体造型,分形几何造型,分形艺术,隐藏面消除,光照模型,颜色模型,光线跟踪,纹理细节模拟,常用的计算机动画技术和软件等。
通过本,使自己了解计算机图形学的有关原理、算法及系统,掌握基本图形显示程序设计方法,及二维和三维图形变换程序设计方法,为进一步学习计算机辅助设计方面的技术知识打下基础。根据 Q(t)=∑Pi?Bi,n(t) = ∑Pi? C in ti(1-t)n-i (∑中的n=3)
并且 C in =C(n,k)= C(n,k-1)
BEZ 0,3 (u)=(1-u)(1-u)(1-u)
BEZ 1,3(u)=3u(1-u)(1-u)
BEZ2,3(u)=3uu(1-u)
BEZ3,3(u)=3uuu
三次Bezier函数可以写成
P(u)=[ u3 u2 u 1]×M×[a b c d]
其中M=[ -1 3 -3 1 ]
3 -6 -3 0
-3 3 0 0
1 0 0 0
(2)画三次B样条曲线
Qi,3(t)=∑Pi+l Fl,3(t)= Pi F0,3(t)+ Pi+1 F1,3(t)+ Pi+2 F2,3(t)+ Pi+ 3 F3,3(t)
(其中∑中的n=3)因为四个调和函数F0,3(t)、F1,3(t)、F2,3(t)和F3,3(t) 已知(参看公式7-5-3)因此只要给出四个控制点的位置矢量的坐标,当t在[0,1]范围内取离散地取100个点时(dt=0.01),分别求出每一个曲线上点,相邻点用直线段连接起来,就可以得到相应的B样条曲线。
设控制点的个数为PointNum,要求PointNum≥4,则可以生成(PointNum-3)段三次B样条曲线。其中第i段三次B样条曲线的代数形式为:
Qi,3(t)x= Pi x F0,3(t)+ P (i+1) x F1,3(t)+ P (i+2) x F2,3(t)+ P (i+3) x F3,3(t)
Qi,3(t)y= Pi y F0,3(t)+ P (i+1) y F1,3(t)+ P (i+2) y F2,3(t)+ P (i+3) y F3,3(t)
其中,i=1,2,…, PointNum-3
四、程序源代码
(1)画三次Bezier曲线的程序源代码如下:
void __fastcall TForm1::N1Click(TObject *Sender)
{
float a[4][2]={100,100,200,250,300,130,400,250};
double t,t1,t2,t3,t4,t5,dt;
int x,y,i,m=20;
String str;
Image1-Canvas-TextOutA(180,50,三次Bezier曲线);
dt = 1.0/(m+1);
for(i=0; i=m; i++)
{
t = i*dt;
t1 = t*t;
t2 = t1*t;
t3 = (1-t);
t4 = t3*t3;
t5 = t4*t3;
x = t5*a[0][0]+3*t*t4*a[1][0]+3*t1*t3*a[2][0]+t2*a[3][0];
y = t5*a[0][1]+3*t*t4*a[1][1]+3*t1*t3*a[2][1]+t2*a[3][1];
if(i==0)
Image1-Canvas-MoveTo(x,y);
else
Image1-Canvas-LineTo(x,y);
}
// 绘制坐标点连成的折线
Image1-Canvas-Pen-Color=clBlue;
for(i=0;i4;i++)
{
str = IntToStr(i);
Image1-Canvas-Brush-Color=RGB(255,250,0);
Image1-Canvas-Brush-Style=0;
if(i==0)
Image1-Canvas-MoveTo(a[i][0],a[i][1]);
您可能关注的文档
最近下载
- 国家开放大学电大本科《社会政策》2024期末试题及答案(试卷号:1306).pdf VIP
- 涉路施工安全培训教育.pptx
- 2022-2023学年人教版小学数学一年级下册期末试卷 含答案.docx
- 五邑大学2021-2022学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
- 创新工作室活动记录.pdf
- DB37_T 1914—2024 液氨存储与装卸作业安全技术规范.pdf
- 2021国家开放大学电大本科《社会政策》期末试题及答案(试卷号:1306).docx VIP
- GBT 50476-2019 混凝土结构耐久性设计标准规范.pdf
- optics教程.doc
- 最新动态葡萄糖图谱报告临床应用专家共识要点.pdf
文档评论(0)