二次曲线的高效绘图法的制作方法

文档序号:6406622阅读:430来源:国知局
专利名称:二次曲线的高效绘图法的制作方法
技术领域
本发明属于计算机图形学(ComputerGraphics),特别是涉及计算机辅助设计(ComputerAidedDesign,简写CAD),计算机图形编辑、图形输入技术领域。
在计算机绘图、计算机辅助设计、计算机标图等领域都要用到图形输入、图形编辑。目前,当用户在屏幕上进行图形编辑、图形输入时,都要告知计算机有关各种图形的参数。英国爱丁堡大学目前使用的图形工作站系统中,用户绘制椭圆时需要从键盘上输入椭圆的圆心坐标、长轴和短轴的长度,椭圆的方向角度,这些参数都是数字量,用户需要准确地知道这些参数,需要进行很多的操作,才能将这些数据输入计算机,而且在操作过程中不能有误,因此,使用该系统,操作过程繁杂;另外,这种作图方法很不直观,且不易修改,这种作图方法不符合人画椭圆的习惯思维。因为在很多场合,用户无需预置椭圆的参数,就能画出一个合适的椭圆。人在画一个椭圆的时候并没有明确意识到椭圆的圆心位置、长短轴的长度及方向角这样的概念,而只是在脑海中有一个椭圆的大体形状而已。此外,爱丁堡大学的图形系统尚没有向用户提供直接绘制曲线的手段。
代表着世界计算机领先水平的Apple公司为其Macintosh计算机上配备的图形系统中,椭圆、曲线的作图手段与英国爱丁堡大学使用的系统类似。
美国Autodesk公司推出的商品化的CAD计算机辅助设计系统AutoCAD中依然只提供了直接画椭圆的手段,而没有直接作曲线的绘图手段。
在AutoCAD中提供了三种绘制椭圆的方法1、已知一个轴的两个端点位置,另一个轴的半长度。
2、已知一个轴的两个端点,以这一轴作圆再绕其旋转一定角度。
3、已知椭圆的中心和两个端点。
这些方法都要用户以数字形式将坐标参数输入,因此,尚有上述种种缺陷。
在AutoCAD中没有提供直接画曲线的方法。用户需要绘出~条曲线只能通过折线与圆弧拼接。它是由计算机计算出各种圆弧逼近,所以,效果往往不理想。为此,AutoCAD提供了顶点编辑(EditVertex)功能,用来修改切线方向或改变顶点的位置,再重新进行拟合。因而用户想画一条曲线所要进行的工作是非常烦琐的。不仅如此,由于它只用圆弧去拟合曲线,曲线的精度与光滑度是无法保证的,况且在处理工作中非常费时。
《计算机时代》1991年第一期刊出浙江大学CAD&CG(计算机辅助设计与计算机图形学)国家重点实验室罗国明的文章,介绍了一种交互图形编辑技术,该技术可以绘制直线,但没有椭圆绘制法。对于曲线,则需要用户在屏幕上画出折线,然后通过各种选择,对折线进行样条曲线拟合,因而曲线的精度和光滑度亦无法保证。
本发明的目的在于提供一种用计算机绘制椭圆及二次曲线的方法,以解决目前椭圆与曲线绘图操作方法上的缺陷。本发明的方法方便、直观,使用户和计算机获得高效的人机交互功能,能保证曲线的精度和光滑度。
本发明的设计思想是在绘制一个椭圆时,并不要求用户直接输入数值参数,即在用户不知道或无需知道椭圆的具体参数时,计算机应该能够绘出一个供用户自由调节大小、方位的椭圆,这样,用户确定椭圆的方式就符合人用笔在纸上画图的习惯。
在绘制一条曲线时,舍弃了让用户先画折线再进行拟合的方法,曲线是一次完成。要求用户定出的是曲线上的一些点,且允许用户随时调节、控制曲线的形状。
以下结合附图详细阐述本发明的思想方法。


图1是椭圆轴的绘制示意2是椭圆的绘制示意3是曲线的绘制示意4.1、图4.2是用计算机绘制椭圆的画法流程5.1、图5.2是用计算机绘制曲线的画法流程1中P1点为第一操作点,P2为第二操作点,两点的坐标分别为(x1,y1)、(x2,y2)。为产生一个直线P1P2,就要计算出P1P2上各个点的坐标。如果用N个点来表示虚直线,则只需计算该直线中N个点。设P为要计算点,其坐标为(x,y),则直线的参数方程为
其中t=|PP1|/|P1P2|,0≤t≤1。使t=0开始,步长为1/N,即可计算出直线上N个点的坐标,由此可得出一直线。要想改变直线P1P2的长短、方向,只需改变P2点的位置,则可得出新的直线。这样椭圆的一个轴及方向角就得以确定。
在此基础上,可方便地给出椭圆的中心点O。在图2中,O点的坐标为
点(x0,y0)由计算机提供给用户。在图4.1中,给出了绘制椭圆轴的计算机程序框图。
选椭圆上一点P3,其坐标为(x3,y3),为绘制椭圆,就要计算出椭圆上任意一点P(x,y)的坐标值。
以θ为椭圆轴与x轴的夹角,0≤θ≤π,以参数t表示OP与x的夹角,0≤t≤2π,则椭圆的参数方程为
其中
(b的分母有意义则椭圆存在)a、b、θ的数值由计算机提供给用户。在图4.2中,给出了绘制完整椭圆的计算机程序框图。
使t=0开始,步长为2π/N,即可画出椭圆上的N个点,构成虚线椭圆。改变P3点的坐标,就可改变椭圆的偏平程度。
用本坐标的上述方法形成椭圆时,t的步长△t由下式确定△t=2π/(max(a,b)×μ)由此求得椭圆上的max(a,b)×μ个点,μ值一般取2~6,由此画一组折线来逼近椭圆,获得良好的精度和光滑度。
曲线的形成方法图3中,为了绘制二次曲线,现有技术需要给出P0、P1、P2、P3点,这几个点均不在曲线上,且无法连续作图。
本发明选取曲线拐点Q0、Q1、Q2、Q3来形成曲线。
由二次B样条曲线的性质可知P0=Q0P1=2Q1-Q0P2=2Q2-2Q1+Q0于是,Q1Q2上任意一点P(x,y)为
=2Q0(t2-t)-Q1(3t2-2t-1)+Q2t2其中0≤t≤1,t是归一化参数。这样,P点的坐标为
令t=0开始,步长△t=1/N,即可计算出Q1Q2曲线上N个点形成曲线,改变Q2点,则曲线Q1Q2的形状即可变化,画出新的曲线。
当Q2点确定以后,可取步长△t=μ/(|P1Q1|+|P1Q2|),μ可选取1~2,计算出1/△t个点,将这些点用折线连接,可保证足够的精度。
当Q1Q2确定以后,可再选Q3,依此画出所需曲线。
图5.1和5.2给出了绘制曲线的计算机程序框图。
实现本发明方法的所有程序都可用Pascal或C语言编写,以8086系列的汇编语言编写的实时性最好,效果最佳。图4.1、图4.2、图5.1、图5.2中“以异或的方式画点”可使用ROMBIOSINT10H的中断调用,也可使用自己编写的汇编语言程序,这样效果最好。若使用高级语言编写程序,画直线可使用高级语言提供的子程序,如使用汇编语言编写程序,画直线的子程序要自己编写。
本发明可在大多数IBMPC/XT/AT及386/486微机的图形控制卡上实现。为提高程序的实时性,使用数学协处理器进行浮点运算。
本发明的绘图方法符合人的习惯,作图直观,简单,人机交互非常方便。
本发明充分考虑了人与计算机各自的优势,充分发挥人的形象思维与智能决策的优势,按照人的习惯选择图形参数,而在计算机进行复杂的数学推导与求解。因此,在目前各种CAD及绘图系统中,用本发明提供的方法,可提高系统的效率,降低人的劳动强度。
权利要求
1.一种用计算机绘制二次曲线的方法,其特征在于(a)绘制椭圆可选择一个轴的两个端点和椭圆上的任意一点,即可形成任意方向的椭圆;(b)绘制二次曲线,只需给出曲线的拐点,即可绘出连续光滑的曲线。
2.根据权利要求1所述的方法,其特征在于用折线逼近椭圆时,折线的顶点和椭圆圆心形成的连线与起始位置夹角(t)的增量(△t)等于2π除以参数(μ)与长轴的乘积。
3.根据权利要求1所述的方法,其特征在于用折线逼近曲线时,归一化参数(t)的增量(△t)为参数(μ)除以相邻两拐点与本段曲线特征多边形的顶点构成的折线的长度。
4.根据权利要求2所述的方法,其特征在于参数(μ)的取值在2至6之间。
5.根据权利要求3所述的方法,其特征在于参数(μ)的取值在1~2之间。
全文摘要
本发明属于计算机图形学,特别是涉及计算机辅助设计,计算机图形编辑和图形输入技术领域。本发明从人机交互观点出发,给出椭圆和二次曲线绘制的参数选取方法,可用计算机绘制出任意方向、大小的椭圆和任意走向光滑连续的二次曲线。本发明给出用折线逼近曲线时的参数值可保证不同大小的图形都具有较高的精度,绘图方便、直观。
文档编号G06F3/13GK1079316SQ92104040
公开日1993年12月8日 申请日期1992年5月23日 优先权日1992年5月23日
发明者秦桉 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1