第三次作业---三次Bezier曲线的绘制.doc

第三次作业---三次Bezier曲线的绘制.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第三次作业三次Bezier曲线的绘制

一.解题思路:

Bezier曲线是用N+1个顶点〔控制点〕所构成的N根折线来定义一根N阶曲线。本次作业中的三次Bezier曲线有4个顶点,设它们分别为P0,P1,P2,P3,那么对于曲线上各个点Pi〔x,y〕满足以下关系:

x=x0*1-u)*(1-u)*(1-u)+x1*3*u*(1-u)*(1-u)+x2*3*u*u*(1-u)+x3*t*t*t

y=y0*(1-u)*(1-u)*(1-t)+y1*3*u*(1-u)*(1-u)+y2*3*u*u*(1-u)+y3*u*u*u

所以只要确定控制点的坐标,该曲线可通过编程即可绘制出来。

此题取的初始控制点为:p0(-600,100)、p1(-300,400)、p2(300,600)、p3(600,100)。还可以通过输入不同的控制点画出不同的三次Bezier曲线。

程序中有绘制曲线,清空,清屏,退出四个按钮,其中点击绘制曲线按钮可根据控制点绘制出相应的曲线;点击清空按钮那么可以将已绘制的曲线去除;点击清屏按钮可以将输入文本框中的数据去除,以方便输入新的数据;点击退出按钮那么退出程序。

二.程序代码

Functionf()

Picture1.FontSize=9

Picture1.Scale(-900,1000)-(900,-1000)

Picture1.Line(-800,0)-(800,0)

Picture1.Line(0,800)-(0,-800)

Fori=-7To7

Picture1.Line(100*i,0)-(100*i,20)

Picture1.CurrentX=i*100-50:Picture1.CurrentY=-5:Picture1.Printi*100

Nexti

Fori=-7To-1

Picture1.Line(0,100*i)-(20,100*i)

Picture1.CurrentX=-100:Picture1.CurrentY=100*i+20:Picture1.Printi*100

Nexti

Fori=1To7

Picture1.Line(0,100*i)-(20,100*i)

Picture1.CurrentX=-100:Picture1.CurrentY=100*i+20:Picture1.Printi*100

Nexti

EndFunction

PrivateSubForm_Load()

Picture1.AutoRedraw=True

Picture1.ScaleWidth=900

Picture1.ScaleHeight=900

f

Text1.Text=-600:Text2.Text=100:Text3.Text=-300:Text4.Text=400

Text5.Text=300:Text6.Text=600:Text7.Text=600:Text8.Text=100

EndSub

PrivateSubcommand1_Click()

x0=Text1.Text:y0=Text2.Text

X1=Text3.Text:Y1=Text4.Text

X2=Text5.Text:Y2=Text6.Text

X3=Text7.Text:Y3=Text8.Text

Picture1.FontSize=18

Picture1.CurrentX=800:Picture1.CurrentY=-5:Picture1.PrintX

Picture1.CurrentX=10:Picture1.CurrentY=810:Picture1.PrintY

Fort=0To1Step0.001

x=x0*(1-t)*(1-t)*(1-t)+X1*3*t*(1-t)*(1-t)+X2*3*t*t*(1-t)+X3*t*t*t

y=y0*(1-t)*(1-t)*(1-t)+Y1*3*t*(1-t)*(1-t)+Y2*3*t*t*(1-t)+Y3*t*t*t

Picture1.CurrentX=x0+10:Picture1.CurrentY=y0+10:Picture1

文档评论(0)

147****4268 + 关注
实名认证
内容提供者

认真 负责 是我的态度

1亿VIP精品文档

相关文档