基于VisualFortran和AutoCAD的

中国科技论文在线http://www.paper.edu.cn基于VisualFortran和AutoCAD的Bezier曲线的自动绘制及应用杨帆扬州大学水利科学与工程学院江苏扬州(225009)Email:sqyzyangfan@126.com摘要:Bezier曲线是计算机图形学中最基本、最重要的内容之一,在计算机辅助几何设计领域得到广泛地应用。本文以Fortran90语言和AutoCAD图形软件为平台,开发了Bezier曲线绘制子程序,该程序能够保存、处理数据文件,形成直观地曲线供用户输出,实现了计算机自动绘图的目的,并基于该程序编制了部分应用主程序来实现自动绘图子程序的价值。关键词:Bezier曲线自动绘制应用中图分类号:TP312;TP391.721.Bezier曲线及其原理上世纪60年代,法国雷诺汽车公司的工程师贝济尔提出了用控制多边形定义曲线的方法,即Bezier曲线,因该曲线采用了一组独特的多项式基函数,使得它具有许多优良的特性,在诸多形式的参数多项式曲线中独树一帜,一经问世,就受到工业界和计算机辅助几何设计研究者的广泛重视[1]。Bezier曲线算法是一种直观、易于调整、高效率的曲线拟合方法,这种方法能使使用者在工程设计中比较直观地意识到所给条件与设计出的曲线之间的关系,能方便地控制输入控制点以改变曲线的形状。Bezier曲线的形状由点的位置确定,而且曲线可能并不通过除两端点外的所有给定点,点数量不够或点位置难以处理的情况下,用三次样条曲线方法也许不能生产光滑曲线。Bezier曲线有不同的数学定义形式,如德卡斯特里奥递归(deCasteljau)算法,波恩斯坦基(Bernstein)原理等。本文中Bezier曲线的自动绘制方法采用Bernstein原理。Bezier曲线的数学基础(影响曲线形状的加权系数)来自下式给出的Bernstein原理:éùn-énùn!Jt,()=t(1-t)êúniêúini其中:=iniêúiêúi!(-)!....式中:n是多项式的次数,i是有序集中(0与n之间)的某个顶点。ini,()t1)i曲线点定义为:Pt()=.(n)PJt(0££其中:i=1~n,S包含各个点的向i=0量分量。-为构造Bezier曲线,需要计算Jtni,()=!(n-!)!ti(1-t)niini其中:nm1=-,m为给定的顶点个数,n为多项式的次数。2.软件的接口及编程1中国科技论文在线http://www.paper.edu.cn中国科技论文在线http://www.paper.edu.cn,AutoCAD具有强大的图形绘制和编辑功能,两种软件均是许多行业的工程技术人员所必备的工具,若集成两种软件的优势,将两者有机地结合起来却并非易事。目前,Fortran语言与AutoCAD软件间数据通信方式主要有下面两种[2]:⑴将Fortran的计算结果输出为DXF格式,利用AutoCAD将其打开即可看到计算的结果图像。DXF(AutodeskDrawingExchangeFormat)是AutoCAD中的矢量文件格式,它以ASCⅡ码方式存储文件,在表现图形的大小方面十分精确。⑵通过VB实现Fortran与AutoCAD之间的数据通信,VB是通过AutoCADActiveXAutomation接口来建立于AutoCAD对象之间的联系。本文采用第一种方法,对AutoCAD软件常用的基本绘图命令利用Fortran语言编写相应的接口子程序,即建立Fortran与AutoCAD间的接口软件。通过Fortran语言编程直接读取离散控制点数据,通过对离散控制点进行曲线拟合,最后生成AutoCAD支持的DXF文件,最终利用编程生成的模型在AutoCAD环境下显示,使其具有工程技术人员熟悉的友好的用户界面,并且具有人机交互的功能。下面仅给出了部分程序的清单。绘制多段线的程序:SUBROUTINEPLINE(X,Y,K,LY)WRITE(3,200)NANA=0CHARACTER*(*)LYWRITE(3,600)LYWRITE(3,200)NADIMENSION(X(K),Y(K))DOI=1,KWRITE(3,600)‘SEQEND’NA=0NA=0NA=8WRITE(3,200)NAWRITE(3,200)NAWRITE(3,200)NAWRITE(3,600)’POLYLINE’WRITE(3,600)’VERTEX’WRITE(3,600)LYNA=8NA=8FORMAT(I3)WRITE(3,200)NAWRITE(3,200)NAFORMAT(F12.6)WRITE(3,600)LYWRITE(3,600)LYFORMAT(A)NA=66NA=10RETURNWRITE(3,600)LYWRITE(3,200)NAENDWRITE(3,600)LYWRITE(3,210)Y(I)NA=70CONTINUE计算影响曲线形状的加权系数的程序:allocate(j(k+1,n))callfactorial(w,b)enddom=n-1c=m-wenddot=1.0/kcallfactorial(c,d)callfactorial(m,a)callpower(i,w,e)doi=0,1,tf=1.0-iq=q+1callpower(f,c,g)dow=0,mj(q,w+1)=a/(b*d)*e*g233.实例应用本...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?