用于绘制椭圆弧的系统和方法

文档序号:6403460阅读:234来源:国知局
专利名称:用于绘制椭圆弧的系统和方法
技术领域
本发明一般涉及计算机辅助设计/计算机辅助制造(CAD/CAM)领域,具体上但不是唯一地涉及一种提供用于指定参数的直观和交互的接口的系统和方法,其中所述参数用于包括椭圆圆弧段的圆弧段的计算机实现的作图。
背景技术
存在包括椭圆弧的某些CAD/CAM作图工具。为了简化用户接口,这些工具通常固定某些椭圆的参数。例如,一种用于创建椭圆的普通简化的作图技术是强制椭圆与x或y轴平行,然后使得用户画出椭圆所适合的方框。其他作图工具允许用户手动输入(例如打字输入)参数,这可以提供一些设计的灵活性。
某些CAD应用程序输入和输出可缩放的向量图形(SVG)数据,其中包括椭圆弧段。SVG是基于向量的CAD格式,它使得用户能够建立可以实时地调整大小的、动的、旋转的动态交互图形。每个椭圆弧段在SVG中被指定5个椭圆参数外加所涉及的段的端点。

发明内容
本公开提供了一种用于指定用于计算机实现的作图的弧参数的方法和系统。按照一个实施例,提供了一种交互弧控制系统来用于作图应用,它使得用户能够完整地指定连接两个节点的弧(例如椭圆弧)的参数。
在一个实施例中,所述弧控制系统提供了用户可以交互地操纵的两个控制点——中心控制点和焦距控制点——以便改变被显示的特定圆弧(例如椭圆弧)的参数。例如,如果显示或画出椭圆弧,则中心控制点控制在x方向上的椭圆的半径(长半轴),同时将在y方向上的椭圆的半径(短半轴)与在x方向上的椭圆的半径(长半轴)的比率保持不变。中心控制点也可以控制扫描标记(例如用于指定是要顺时针还是要逆时针地画出圆弧的标记)对大弧标记(例如用于指定是要使用椭圆的较大圆弧还是较小圆弧的标记)的关系。焦距控制点控制在y方向上的椭圆的半径(短半轴)与在x方向上的椭圆半径(长半轴)的比率、从坐标系的x轴到椭圆的x轴(旋转)的角度、以及扫描标记。结果,所述的两个控制点可以用于指定用于以直观和相对容易的方式来连接两个节点的圆弧的参数。
在另一实施例中,圆弧控制系统提供了用户可以交互地操纵的三个控制点——一个中心控制点和两个焦距控制点——以便改变被显示的特定圆弧(例如椭圆弧)的参数。类似地,在这个实施例中,如果显示椭圆弧,则中心控制点控制在x方向上的椭圆的半径(长半轴),同时将在y方向上的椭圆的半径(短半轴)与在x方向上的椭圆的半径(长半轴)的比率保持不变。中心控制点也可以控制扫描标记(例如用于指定是要顺时针还是要逆时针地画出圆弧的标记)对大弧标记(例如用于指定是要使用椭圆的较大圆弧还是较小圆弧的标记)的关系。两个焦距控制点的每个可以控制在y方向上的椭圆的半径(短半轴)与在x方向上的椭圆半径(长半轴)的比率、从坐标系的x轴到椭圆的x轴(旋转)的角度、以及扫描标记。结果,所述的三个控制点可以用于指定用于以直观和相对容易的方式来连接两个节点的圆弧的参数,并且提供所显示的控制的更大对称性。


为了更完整地理解本公开,现在结合附图来参阅下面的说明,其中图1是示出可以用于实现本公开的一个或多个实施例的一个示例工作站的示意图;图2是按照本公开的椭圆弧控制系统的作图工具的示意方框图;图3A-B是用户通过交互地操纵所示出的一个或多个控制点可以指定的椭圆弧的示意显示;图4图解了用于在SVG系统中的端点参数化的椭圆弧参数;图5图解了用于中心点参数化的椭圆弧参数;图6图解了用于焦点参数化的椭圆弧参数;图7是用于实现本公开的一个示意实施例的示意流程图。
具体实施例方式
参见图1,其中提供了可以用于实现本公开的系统和方法的一个或多个实施例的示意工作站10。工作站10可以是计算机,通常用于CAD/CAM或工程应用、桌面印刷、软件开发或提供较高质量的图形能力的其他类型的应用。例如,工作站10可以是台式计算机,它包括高分辨率图形监控器12、内部存储器(例如随机存取存储器)14和图形用户接口(GUI)16。可以提供鼠标20、其他定位设备(pointing device)或触摸屏来使得用户可以指定、选择、移动和/或控制由GUI 16在监控器12上显示的单元。存储器14也可以包括海量存储器件或媒体18,如盘驱动器。
一种用于工作站10的适当操作系统可以是UNIX或WINDOWS NT操作系统。工作站10可以是单用户计算机,或是多个工作站、服务器和/或其他计算机设备,它们链接在一起来形成一个或多个局域网(LAN)、城域网(MAN)、广域网(WAN)或诸如因特网的全球网的一部分。
参见图2,它是按照本公开的一个实施例的圆弧控制系统100的示意方框图。所述圆弧控制系统100包括应用窗口110和交互圆弧控制部件102。可以以软件和/或硬件来实现椭圆弧控制系统100。应用窗口110被GUI 16显示在监控器12上,并且使得用户可以产生对象(例如椭圆弧)和通过操纵与对象相关联的一个或多个控制点来交互地修改对象。
交互圆弧控制系统102包括端点参数化部件104、中心点参数化部件106和焦点参数化部件108。端点参数化部件104被系统100使用来支持可缩放的向量图形(SVG)。中心点参数化部件106用于绘制圆弧(例如椭圆弧)以显示在应用窗口110中。中心点参数化部件106和焦点参数化部件108的组合通过从用户通过应用窗口110以图形指定的控制点来确定圆弧参数来提供对圆弧参数(例如椭圆弧)的用户控制。在一个特定的实施例中,圆弧控制系统102可以通过例如将椭圆参数从一种类型转换为另一种种类并且同时保持圆弧的端点固定来确定所有的参数。在一个具体的实施例中,例如,圆弧控制系统102可以将端点参数映射为中心和/或焦点参数,并且可以将中心和/或焦点参数彼此映射和/或映射为端点参数。
图3A图解了被显示给用户和由用户通过应用窗口110可以控制的示意椭圆弧120。椭圆弧120和任何适当的SVG弧可以被显示给用户和由用户实时地操纵。椭圆弧120连接两个端点P1和P2。用于定义椭圆弧的配置的控制点也被显示在应用窗口110上。在图3A的实施例中,可以使用三个控制点——中心点(C)和焦点(F1或F2)——来操纵所显示的圆弧。在另一实施例中,如图3B所示,可以使用两个控制点——中心点(C)和焦点(F1或F2)——来用于操纵所显示的圆弧。用户可以通过交互地操纵中心(C)或焦点(F1或F2)控制点的一个或多个来指定椭圆弧120的配置。可以通过使用连接到工作站10的GUI 16的鼠标20选择和拖动所述点来独立地操纵每个端点P1、P2和控制点C和F1和/或F2。
在图3A-B的实施例中,基于所使用的指定的控制点,使用焦点F1或F2的至少一个,可以确定用于呈现椭圆弧120和支持SVG或用于限定椭圆弧的其他标准的参数。在一个特定的实施例中,通过端点参数化部件104(如图2所示)来提供用于SVG的标准化参数,并且使用中心点参数化部件106和焦点参数化部件108根据控制点来确定用于SVG的标准化参数。
图4图解了由端点参数化部件104指定的示意椭圆122和椭圆弧121。例如,使用端点参数化,参数P1和P2表示圆弧121的开始点和结束点。参数Rx和Ry分别表示在x方向和y方向中的椭圆122的半径。参数表示从坐标系的x轴到椭圆122的x轴(例如旋转)的角度。参数fA指定是使用椭圆122的较大圆弧还是较小圆弧(例如大圆弧标记),参数fS指定圆弧121是被逆时针绘制还是被顺时针地绘制(例如扫描标记)。如下所述,由用户输入端点P1和P2,并且通过中心点参数化部件106和焦点参数化部件108由控制点间接地确定要显示的圆弧的其余参数。
图5图解了由中心点参数化部件106指定的椭圆弧121。例如,使用中心点参数化,参数C表示圆弧121的中心点。参数、Rx和Ry如上所述。参数θ表示圆弧121的开始角度(从坐标系的x轴起),参数Δθ表示圆弧121的扫描角度(例如对于顺时针圆弧是负的)。
图6图解了由焦点参数化部件108指定的椭圆122。例如,使用焦点参数化,参数F1表示椭圆122的第一焦点,参数F2表示椭圆122的第二焦点,参数FR表示所涉及的椭圆的焦距(从每个焦点到在椭圆上的任何点的距离的和)。
在操作的一个方面,椭圆弧控制系统102使得用户可以以交互和直观的方式来移动图3所示的一个或多个端点和控制点(例如,C、P1、P2、F1或F2),并且根据那些点来指定基于可以在所涉及的椭圆参数之间存在的算术关系的、在图4、5和6中所示的所有其余端点、中心点和焦点参数。通过用户在监控器12(例如经由GUI 16)上直接“拖动”这些控制点(例如使用由鼠标20控制的光标)来改变这些控制点。
例如,参见图3,焦点F1和F2位于椭圆弧120的长半轴上。因此,可以从焦点F1和F2来计算旋转角度(图4和5)。而且,可以通过关系式Rx=FR/2(其中在图6中的FR是所涉及的椭圆122的焦距)来确定在x方向上的椭圆的半径(长半轴)Rx(图4和5)。如果参数FC表示从任意焦点F1或F2到所涉及的椭圆122的中心的距离(图6),则在y方向中的椭圆的半径(短半轴)的平方Ry2等于在x方向中的椭圆的半径(长半轴)的平方Rx2减去参数FC的平方(例如Ry2=Rx2-FC2)。中心点C(图3)可以确定可以使用两个可能的椭圆的哪个,并且也可以建立在扫描标记FS和大圆弧标记FA之间的关系(例如FA=FS或FA不等于FS)。而且,焦点F1和F2(图3)可以相互交换(即F1和F2的值的交换可以产生同一椭圆)。结果,可以使用焦点F1和F2的相对位置来确定扫描标记的值FS而不失一般性。同样,将椭圆旋转180度可以导致翻转扫描标记FS的值(从真到假或反之亦然)。
图7图解了按照本公开的可以用于绘制圆弧的的示例方法200。同样,可以使用上述的几何关系来通过用户使用例如GUI 16和椭圆弧控制102(图2)操纵三个控制点C、F1或F2(例如如图3所示)中的一个或多个而确定一个椭圆弧的所有端点参数。在步骤202,如果用户在步骤203移动中心控制点C,则可以计算焦距控制点F1和F2的新值,并且保持从任一个焦距控制点到椭圆中心FC的距离的值固定。在步骤204,可以根据点P和P来两次计算焦半径FR的值。在步骤205,可以使用基于P1或P2的FR的较小值来重新计算在x方向中的椭圆半径(长半轴)Rx。在步骤206,可以从Ry/Rx的比率来计算在y方向中的椭圆的半径(短半轴)的值Ry。在步骤208,如果将中心控制点C移动通过连接端点P1和P2的直线,则在步骤209,可以交换FS的值(例如,保持FA的值,但是改变在FA和FS之间的关系)。否则,在步骤210,可以根据新的端点参数来重新计算中心控制参数C和焦点控制参数F1、F2,并且可以重新绘制结果产生的曲线和控制点。
在步骤212,如果用户在步骤213移动或“拖动”椭圆的第一焦点F1,则可以计算新的FC(从任何一个焦点到椭圆中心的距离)和椭圆的第二焦点F2,并且保持C和焦半径FR固定。在步骤214,可以根据焦距控制点F1和F2的新值来重新计算旋转角。在步骤215,可以使用所述新的FC来重新计算在x方向中的椭圆的半径Rx和在y方向中的椭圆的半径Ry。在步骤216,如果用户在步骤217将第一焦距控制点F1移动通过x轴,则可以交换扫描标记fS和大圆弧标记fA的每个的值。否则,在步骤218,可以根据新的端点参数来重新计算中心控制参数C和焦点控制参数F1、F2,并且可以重新绘制结果产生的曲线和控制点。可以通过执行与对第一焦点F1执行的相同步骤212-218来操纵椭圆的第二焦点F2。事实上,可以使用仅仅所示的控制点的两个(例如中心控制点和焦距控制点之一)来提供用于交互指定椭圆参数的上述函数。但是,可以包括第二焦距控制点(例如F1或F2)以提供要使用的对称和更直观的接口。
端点参数可以被映射为中心控制点C和焦距控制点F1、F2以其他多种方式的移动。例如,如果用户移动中心控制点C而不是计算在y方向中的椭圆的半径Ry以保持Ry/Rx的比率不变,则可以计算Ry的值以保持FC不变。而且,如果用户移动焦距控制点(例如F1),则可以保持其他焦距控制点(例如F2)不变,而不是保持中心控制点C的位置不变,反之亦然。
虽然已经在附图中图解了并且在上述描述中描述了本公开的方法和装置的一个优选实施例,但是应当明白,所述公开不限于所公开的实施例,而是可以在不脱离所附的权利要求所限定和给出的本公开的精神的情况下具有多种重新布置、修改和替换。
权利要求
1.一种用于响应于用户输入而呈现椭圆弧的方法,包括经由图形用户接口(GUI)的指示设备来接收用于椭圆弧的第一端点和第二端点;经由GUI的指示设备来接收用于所述椭圆弧的中心点;经由GUI的指示设备来接收用于所述椭圆弧的焦点;和呈现通过第一端点和第二端点的椭圆弧,并且使得中心在所述中心点,长半轴沿着将所述中心点和焦点连接的直线。
2.按照权利要求1的方法,还包括经由GUI的指示设备接收用于椭圆弧的第二焦点;呈现所述椭圆弧,其长半轴沿着连接所述中心点和所述第二焦点的直线。
3.按照权利要求1的方法,还包括根据所接收的用户输入来确定沿长半轴的椭圆的半径和沿着短半轴的椭圆的半径。
4.按照权利要求1的方法,还包括根据所接收的用户输入来确定从GUI的坐标系的x轴到椭圆的x轴的角。
5.按照权利要求1的方法,还包括根据所接收的用户输入来确定椭圆的圆弧和所述圆弧的方向。
6.一种用于响应于用户输入而产生椭圆弧的方法,包括接收与所述椭圆弧相关联的中心控制点、第一焦距控制点和第二焦距控制点的至少一个的移动;如果移动至少一个中心控制点,则确定与所述椭圆弧相关联的第一焦距控制点和第二焦距控制点的至少一个的值;根据至少一个焦距控制点的值来确定与所述椭圆弧相关联的焦半径的值;根据所述焦半径的值来确定椭圆弧的第一半径的值,所述第一半径是相对于与椭圆弧相关联的第一几何轴而被定义的;确定所述椭圆弧的第二半径的值,所述第二半径是相对于与所述椭圆弧相关联的第二几何轴而被定义的;和根据第一半径和第二半径的值来确定与所述椭圆弧相关联的至少一个中心控制点、以及第一焦距控制点和第二焦距控制点的至少一个的新值。
7.按照权利要求6的方法,还包括如果移动第一焦距控制点或第二焦距控制点,则确定从第一焦距控制点或第二焦距控制点的至少一个到椭圆弧的中心的距离的值;根据所述焦距控制点的至少一个来确定与椭圆弧相关联的旋转角的值;确定椭圆弧的第一半径的值;确定椭圆弧的第二半径的值;和根据所述旋转角、第一半径和第二半径的值来确定与所述椭圆弧相关联的至少一个中心控制点、以及第一焦距控制点和第二焦距控制点的至少一个的新值。
8.按照权利要求7的方法,其中如果移动中心控制点则确定与椭圆弧相关联的第一焦距控制点和第二焦距控制点的至少一个的值还包括固定从第一焦距控制点或第二焦距控制点的至少一个到椭圆弧的中心的距离的值。
9.按照权利要求7的方法,其中对于椭圆弧的第一端点和椭圆弧的第二端点执行确定与椭圆弧相关联的焦半径的值的操作,并且确定椭圆弧的第一半径的值是基于为焦半径所计算的两个值的较小值。
10.按照权利要求6的方法,其中第一几何轴包括x轴,第二几何轴包括y轴。
11.按照权利要求6的方法,还包括如果中心控制点被移动通过连接到椭圆弧的第一端点和椭圆弧的第二端点的直线,则交换用于与椭圆弧相关联的扫描标记的值。
12.按照权利要求7的方法,其中确定椭圆弧的第二半径的值包括保持在用于椭圆弧的第一半径的值和用于椭圆弧的第二半径的值之间的比率。
13.按照权利要求7的方法,其中确定从第一焦距控制点或第二焦距控制点的至少一个到椭圆弧的中心的距离的值还包括保持用于中心控制点的值和与椭圆弧相关联的焦半径。
14.按照权利要求7的方法,其中确定与椭圆弧相关联的旋转角的值还包括根据第一焦距控制点或第二控制点的值来确定旋转角的值。
15.按照权利要求6的方法,其中如果焦距控制点被移动通过表示第一几何轴的直线,则交换用于与椭圆弧相关联的扫描标记的值以及用于与椭圆弧相关联的大弧标记的值。
16.一种用于响应于用户输入而呈现椭圆弧的系统,包括图形用户接口;和指示设备,连接到所述图形用户接口,所述图形用户接口可用于经由指示设备来接收椭圆弧的第一端点和第二端点;经由指示设备来接收椭圆弧的中心点;经由指示设备来接收椭圆弧的焦点;呈现通过第一端点和第二端点的椭圆弧,并且使得中心在所述中心点,长半轴沿着连接所述中心点和所述焦点的轴。
17.按照权利要求16的系统,其中所述图形用户接口还用于经由GUI的指示设备接收椭圆弧的第二焦点;呈现其长半轴沿着连接所述中心点和焦点的轴的椭圆弧。
18.按照权利要求16的系统,其中所述图形用户接口还用于根据所接收的用户输入来确定沿着长半轴的椭圆半径和沿着短半轴的椭圆半径。
19.按照权利要求16的系统,其中所述图形用户接口还用于根据所接收的用户输入来确定从GUI的坐标系的x轴到椭圆的x轴的角。
20.按照权利要求16的系统,其中所述图形用户接口还用于根据所接收的用户输入来确定椭圆的圆弧和所述圆弧的方向。
21.一种用于产生椭圆弧的系统,包括处理器单元;显示器单元,所述显示器单元连接到所述处理器单元;和输入设备,所述输入设备连接到所述处理器单元,响应于所述输入设备,所述处理器单元用于在显示器上移动与椭圆弧相关联的中心控制点、第一焦距控制点和第二焦距控制点的至少一个;如果移动至少一个中心控制点,则确定与所述椭圆弧相关联的第一焦距控制点和第二焦距控制点的至少一个的值;根据至少一个焦距控制点的值来确定与所述椭圆弧相关联的焦半径的值;根据所述焦半径的值来确定椭圆弧的第一半径的值,所述第一半径是相对于与椭圆弧相关联的第一几何轴而被定义的;确定所述椭圆弧的第二半径的值,所述第二半径是相对于与所述椭圆弧相关联的第二几何轴而被定义的;根据第一半径和第二半径的值来确定与所述椭圆弧相关联的至少一个中心控制点、以及第一焦距控制点和第二焦距控制点的至少一个的新值。
22.按照权利要求21的系统,其中处理器单元还用于如果移动第一焦距控制点或第二焦距控制点,则确定从第一焦距控制点或第二焦距控制点的至少一个到椭圆弧的中心的距离的值;根据所述焦距控制点的至少一个来确定与椭圆弧相关联的旋转角的值;确定椭圆弧的第一半径的值;确定椭圆弧的第二半径的值;根据所述旋转角、第一半径和第二半径的值来确定与所述椭圆弧相关联的至少一个中心控制点、以及第一焦距控制点和第二焦距控制点的至少一个的新值。
23.按照权利要求21的系统,其中所述处理器单元用于如果移动中心控制点,则确定与椭圆弧相关联的第一焦距控制点和第二焦距控制点的至少一个的值,并且还用于固定从第一焦距控制点或第二焦距控制点的至少一个到椭圆弧的中心的距离的值。
24.按照权利要求22的系统,其中所述处理器单元用于对于椭圆弧的第一端点和椭圆弧的第二端点执行来确定与椭圆弧相关联的焦半径的值,并且根据为焦半径所计算的两个值的较小值来计算椭圆弧的第一半径的值。
25.按照权利要求21的系统,其中第一几何轴包括x轴,第二几何轴包括y轴。
26.按照权利要求21的系统,其中所述处理器单元还用于如果中心控制点被移动通过连接椭圆弧的第一端点和椭圆弧的第二端点的直线,则交换用于与椭圆弧相关联的扫描标记的值。
27.按照权利要求22的系统,其中所述处理器单元用于确定椭圆弧的第二半径的值,并且还用于保持在用于椭圆弧的第一半径的值和用于椭圆弧的第二半径的值之间的比率。
28.按照权利要求21的系统,其中处理器单元用于确定从第一焦距控制点或第二焦距控制点的至少一个到椭圆弧的中心的距离的值,并且还用于保持用于中心控制点的值和与椭圆弧相关联的焦半径。
29.按照权利要求22的系统,其中所述处理器单元用于确定与椭圆弧相关联的旋转角的值,并且还用于根据第一焦距控制点或第二控制点的值来确定旋转角的值。
30.按照权利要求21的系统,其中如果焦距控制点被移动通过表示第一几何轴的直线,则所述处理器单元还用于交换用于与椭圆弧相关联的扫描标记的值以及用于与椭圆弧相关联的大弧标记的值。
31.一种用于响应于用户输入而呈现椭圆弧的软件,所述软件被包含在媒体中被编码的逻辑中,并且当被执行时用于经由GUI的指示设备来接收用于椭圆弧的第一端点和第二端点;经由GUI的指示设备来接收用于椭圆弧的中心点;经由GUI的指示设备来接收用于椭圆弧的焦点;呈现通过第一端点和第二端点的椭圆弧,并且使得中心在所述中心点,长半轴沿着将所述中心点和所述焦点连接的直线;和根据所接收的用户输入来确定沿长半轴的椭圆的半径、沿着短半轴的椭圆的半径和从GUI的坐标系的x轴到椭圆的x轴的角。
32.一种用于响应于用户输入而呈现椭圆弧的系统,包括用于从用户接收椭圆弧的第一端点和第二端点的装置;用于从用户接收椭圆弧的中心点的装置;用于接收椭圆弧的焦点的装置;用于呈现通过第一端点和第二端点的椭圆弧,并且使得中心在所述中心点,长半轴沿着将所述中心点和所述焦点连接的直线的装置;用于根据所接收的用户输入来确定沿长半轴的椭圆的半径、沿着短半轴的椭圆的半径和从GUI的坐标系的x轴到椭圆的x轴的角的装置。
全文摘要
公开了一种交互椭圆弧控制系统和方法。提供了三个控制点,中心控制点和两个焦距控制点,用户可以交互地操纵它们以便指定和改变所涉及的椭圆参数。所述中心控制点可以控制在x方向中的椭圆的半径,同时将在y方向中的椭圆的半径与在x方向中的椭圆的半径的比率保持不变。所述中心控制点也可以控制所涉及的扫描标记对大弧标记的关系。所述两个焦距控制点可以控制在y方向中的椭圆的半径与在x方向中的椭圆的半径的比率、从坐标系的x轴到椭圆的x轴的角和扫描标记的值。
文档编号G06T11/80GK1633659SQ03803940
公开日2005年6月29日 申请日期2003年2月14日 优先权日2002年2月15日
发明者阿诺德·F·斯帝德 申请人:电脑联合想象公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1