第三次作业三次Bezier曲线及绘制.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三次作业三次Bezier曲线及绘制

第三次作业 三次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曲线。 程序中有绘制曲线,清空,清屏,退出四个按钮,其中点击绘制曲线按钮可根据控制点绘制出相应的曲线;点击清空按钮则可以将已绘制的曲线清除;点击清屏按钮可以将输入文本框中的数据清除,以方便输入新的数据;点击退出按钮则退出程序。 二.程序代码 Function f() Picture1.FontSize = 9 Picture1.Scale (-900, 1000)-(900, -1000) Picture1.Line (-800, 0)-(800, 0) Picture1.Line (0, 800)-(0, -800) For i = -7 To 7 Picture1.Line (100 * i, 0)-(100 * i, 20) Picture1.CurrentX = i * 100 - 50: Picture1.CurrentY = -5: Picture1.Print i * 100 Next i For i = -7 To -1 Picture1.Line (0, 100 * i)-(20, 100 * i) Picture1.CurrentX = -100: Picture1.CurrentY = 100 * i + 20: Picture1.Print i * 100 Next i For i = 1 To 7 Picture1.Line (0, 100 * i)-(20, 100 * i) Picture1.CurrentX = -100: Picture1.CurrentY = 100 * i + 20: Picture1.Print i * 100 Next i End Function Private Sub Form_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 End Sub Private Sub command1_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.Print X Picture1.CurrentX = 10: Picture1.CurrentY = 810: Picture1.Print Y For t = 0 To 1 Step 0.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)

ctuorn0371 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档