用于计算机图形中对约束曲线的自动化生成的方法和系统与流程

文档序号:20167392发布日期:2020-03-24 21:54阅读:347来源:国知局
用于计算机图形中对约束曲线的自动化生成的方法和系统与流程

本公开总体上涉及计算机辅助设计和图形领域,并且更具体地,涉及用于基于计算机设计和图形应用中的约束对曲线的自动化生成的方法和系统。



背景技术:

计算机图形和设计应用通常需要产生弯曲的形状,以用于物理对象的设计和用于艺术图示(illustration)两者。当然,现代计算机化的图示系统可以捕获来自人类用户的手绘曲线,但是在许多实例中,曲线必须遵循针对物理对象设计的特定约束。例如,许多道路包括直线性部分和遵循弧形状的弯曲部分(诸如圆的外圆周的一部分)。在另一个示例中,高速公路和铁路线的设计通常采用回旋曲线(clothoid),该回旋曲线在本领域也被称为“羊角螺线(eulerspiral)”或“考纽螺线(cornuspiral)”,其沿着曲线的长度提供具有不断改变的曲率的曲线,该曲线例如在高速公路中的上坡道和下坡道中是有用的,这使得车辆在沿着高速公路从第一方向转向第二方向时能够经历平滑的过渡。

虽然各种类型的曲线对于本领域而言是众所周知的,但是在计算机化图形系统中,将各种曲线类型组合成复杂形状仍可能在计算图形系统中提出挑战。特别地,计算机化图形系统通常使用众所周知的构造(诸如样条线)来表示计算机图形中的曲线。然而,给定对于不同点配置在运行中切换曲线类型的需要,将直线、弧和回旋曲线组合成样条线提出挑战。因此,对能够以自动化方式生成复杂曲线的计算机图形系统的改进将是有益的。



技术实现要素:

在一个实施例中,已经开发了一种用于对计算机图形的曲线的自动化生成的方法。所述方法包括:利用输入设备接收与二维平面中的第一位置相对应的第一控制点和与二维平面中的第二位置相对应的第二控制点,第一位置和第二位置是在二维平面中的曲线上的两个点。所述方法包括:利用输入设备接收针对第一控制点和第二控制点中的至少一个的至少一个约束;以及利用处理器来生成第一组参数点,以使用多网格求解器、基于所述至少一个约束来生成将第一控制点连接到第二控制点的第一样条线,第一组参数点包括第一预定数量的参数点,在第一组参数点中的每个参数点与二维平面中的位置和一维曲率参数相对应。

在另一个实施例中,已经开发了一种用于生成图形的系统。所述系统包括:输入设备;图形显示设备;存储器;以及处理器,其操作性地连接到输入设备、图形显示设备和存储器。处理器被配置成:利用输入设备接收与二维平面中的第一位置相对应的第一控制点和与二维平面中的第二位置相对应的第二控制点,第一位置和第二位置是在二维平面中的曲线上的两个点;利用输入设备接收针对第一控制点和第二控制点中的至少一个的至少一个约束;生成第一组参数点,以使用多网格求解器、基于所述至少一个约束来生成将第一控制点连接到第二控制点的第一样条线,第一组参数点包括第一预定数量的参数点,在第一组参数点中的每个参数点与二维平面中的位置和一维曲率参数相对应;以及响应于第一样条线满足所述至少一个约束,利用图形显示设备在二维平面中生成将第一控制点连接到第二控制点的第一样条线的图形呈现。

附图说明

图1是自动生成样条线和基于样条线的曲线的图形描绘的计算机化系统的示意图。

图2是用于对样条线和基于样条线的曲线的图形描绘的自动生成的过程的框图。

图3是描绘对具有不同一维曲率参数的样条线段的生成的图,该样条线段包括线性线段、弧线段和回旋曲线段。

图4是由样条线形成的曲线的两个图示的描绘,系统100使用图2的过程200生成该样条线来满足针对一组控制点的不同约束。

图5是描绘形成针对不同曲线的约束的基础的不同类型的连续性的现有技术图。

具体实施方式

出于促进理解本文中公开的实施例的原理的目的,现在做出对附图和以下书面说明书中的描述的参考。不意图通过参考对本主题的范围进行限制。如本公开所属领域的技术人员通常将想到的,本公开还包括对所说明的实施例的任何更改和修改并且包括所公开的实施例的原理的另外应用。

如本文中所使用,术语“曲率”指代曲线段的角度改变率。直线段在线段的长度上没有曲率,这是因为线的角度(斜率)是恒定的。弧线段具有在弧(诸如,限定圆的一部分的弧)的长度上非零的恒定曲率。回旋曲线段具有在回旋曲线段的长度上以恒定率改变的曲率。如本文中所述,所生成的样条线的不同线段具有利用曲率参数项k表达的不同曲率水平。曲率参数k被称为一维曲率参数,这是因为与参数点或控制点相关联的曲率是将曲率限定为平坦线或具有恒定斜率的线的一维多项式函数的参数。

如本文中所使用的,术语“样条线”指代分段多项式数值函数,其使用具有使用一维曲率参数描述的曲率的至少一个线段来描述复杂曲线,其中许多样条线包括两个或更多个线段,该线段由一系列较小的曲线形成较大的复杂曲线。在本文中的描述中,样条线的一些线段可以是被广泛认为是具有零曲率的“曲线”的直线段。在本申请中,样条线的每个线段使用多项式函数来描述,该多项式函数描述联结样条线中的两个控制点的曲线,并且在一些配置中,样条线包括将样条线分离成线段的三个或更多个控制点,其中给定n个控制点,样条线具有n-1个线段(例如,在具有三个(n=3)控制点的情况下,样条线中有两个(2)线段)。由于曲线经过每个控制端点和中间控制点(如果有的话),因此称该曲线为“端夹紧的”。在一个实施例中,所生成的样条线是具有一般形式的均匀b样条线,其中项1至n中的每一个表示具有一维曲率参数k的样条线的一个线段。

如本文中所使用的,术语“控制点”指代样条线中的如下固定点:该固定点影响在形成曲线中固定位置的两个或更多个控制点之间的样条线的形状,同时系统100动态地生成满足所有约束的曲线的剩余形状。整个曲线的起始点和结束点是两个控制点,但是在一些实施例中,样条线包括一个或多个中间控制点,所述中间控制点经由输入设备或通过计算机生成的图形方面的自动化过程而生成。在本文中所述的实施例中,样条线由经过控制点的两个或更多个线段形成,其中每个样条线段具有使用一维曲率函数生成的曲率。相邻线段的端在空间上彼此连续,并且如下面描述的那样,可选地满足下面所描述的切线、曲率和加速度连续性约束。

如本文中所使用的,术语“参数点”指代样条线中的动态生成的点,该点影响样条线中的控制点之间、其他参数点之间、或控制点与其他参数点的组合之间的样条线形状。在连接的参数点或控制点之间的样条线的每个线段被限定为具有一维曲率函数的曲线,其中样条线的不同线段可以包括不同的曲率。如本文中所述,自动化系统使用控制点和参数点两者来生成满足一个或多个约束的样条线。在完成的样条线中,控制点和参数点在限定样条线的结构中实际上彼此等同。然而,在形成样条线的自动化过程期间,控制点和参数点的区别在于:控制点位于具有形成样条线必须满足的固定约束的固定位置处,而参数点是在自动化过程中动态生成的,该自动化过程使得能够生成满足一组切线、曲率和加速度连续性约束的样条线。

图3提供了直线、弧和回旋曲线的一维曲率参数的视觉描绘。在图3中,图形300描绘了在样条线s的长度上的不同位置处的曲率k的度数,样条线s进一步包括单独的样条线元素324、328、332和336。图示350描绘了使用样条线元素324-336与限定样条线段的第一控制点p1、第二控制点p5和三个中间参数点p2-p4生成的曲线。在图3中,弧线段324具有恒定的曲率,如在图形300中被示出为恒定的、非零的一维曲率参数,并且如在图示350中被描绘为外接圆的一部分的弧324。图形300描绘了被限定为具有恒定非零斜率的线的两个一维曲率参数,其形成回旋曲线328和336,回旋曲线328和336均在回旋曲线样条线段的长度上在曲率方面具有线性改变。回旋曲线328具有带有负斜率的正曲率,并且回旋曲线336具有带有较陡负斜率的负曲率。直线段332具有为零的恒定一维曲率参数。如图示350中所描绘,直线样条线段332连接回旋曲线样条线段328和336。

图1描绘了系统100,其自动生成满足输入约束的曲线,并且针对包括图示和计算机辅助设计应用的各种应用生成曲线的图形。系统100包括一个或多个输入设备120、图形显示设备124、处理器128和存储器140。

在系统100中,输入设备120包括例如如下各项中的一个或多个:鼠标、键盘、数字化绘图板、触摸屏、或者使得用户能够提供针对曲线的起始点和结束点的输入坐标并录入与该曲线的起始点和结束点之一或两者相对应的约束的任何其他合适的输入设备。如本文中所使用的,对接收输入的输入设备的参考指代单个输入设备,或从用户接收输入的输入设备的任何组合。图形显示设备124是例如lcd显示面板、或生成在包括虚拟现实(vr)护目镜等的系统100中生成的曲线的图形描绘的任何其他输出设备。在一些实施例中,图形显示设备124与触摸屏输入设备集成,以使用手写笔或经由直接触摸输入来使能实现来自用户的触摸输入。在另一个实施例中,图形显示设备124是形成打印图像的打印机。在图1中,图形显示设备124显示由样条线形成的曲线160的示例,该样条线在二维平面中的第一位置处的第一控制点162处开始,并且继续到第二控制点174。如下面更详细地描述的,系统100使用分段的样条线自动生成连接两个或更多个固定控制点(诸如,控制点162和174)的样条线段,该分段的样条线被划分成多个线段,诸如使用图1中的动态生成的参数点164、168和170形成的线段。系统100生成样条线160以满足与控制点162和174相关联的至少一个约束,同时还优化样条线段的形状以最小化满足针对曲线的约束所需的参数点的数量。虽然在本文档中图示的曲线160和其他曲线出于说明性目的提供了控制点和参数点的图形描绘,但是本领域技术人员将认识到,一些图形显示设备在不产生限定样条线的对应控制点和参数点的图形描绘的情况下,生成由样条线形成的曲线的图形。

在系统100中,处理器128包括操作性地连接到输入设备120、图形显示设备124和存储器140的中央处理单元(cpu)132和图形处理单元(gpu)136。在处理器128中,cpu132例如是实现x86、arm、power、mips或risc指令组的变体的单核或多核通用数字处理器。gpu136包括实现图形处理和图形输出的生成的多个着色器处理器和数字硬件单元之一,包括例如为显示设备124生成图形输出数据的纹理管理单元和光栅操作管线单元。在一些实施例中,cpu132和gpu136是经由数据互连(诸如,pciexpress或另一合适的互连)彼此连接的分立组件,而在其他实施例中,cpu132和gpu136被组合成片上系统(soc)配置中的单个数字逻辑设备。在操作期间,cpu132和gpu136两者执行保存在存储器140中的所存储的程序数据144,以使用多网格求解器来执行对样条线和本文中描述的与样条线相对应的其他图形的自动化生成。虽然图1出于说明性目的描绘了使用单个计算设备实现的单个处理器128,但是在其他实施例中,使用集群配置中的多个分立计算设备来实现处理器128。

存储器140包括例如易失性数字数据存储设备(诸如,随机存取存储器(ram))和非易失性数据存储设备(诸如,磁盘或光盘和固态数据存储设备)两者。在图1的实施例中,存储器140存储与针对经过所存储的控制点148的曲线的约束相对应的约束数据146和所存储程序指令144。存储器140还存储动态生成的参数点152,系统100使用多网格求解器生成该参数点152,以形成经过固定控制点的样条线而同时满足与控制点相关联的约束。在系统100生成以分段样条线形式的满足所有约束的曲线之后,处理器128将该样条线的编码表示与编码的样条线数据156一起存储,以使得系统100或另一个计算机图形系统能够基于编码的样条线数据156再现曲线的图形描绘,该编码的样条线数据156包括控制点和参数点在二维平面中的相对位置以及与参数点相关联的一维曲线参数数据。

图2描绘了过程200,过程200用于对满足输入约束的曲线的自动化生成和对曲线的计算机图形输出的生成。在下面描述中,对过程200执行功能或动作的参考指代:一个或多个数字处理设备执行所存储的程序指令的操作,来与计算机图形系统中的其他组件相关联地执行该功能或动作。出于说明性目的,结合图1的系统100来描述过程200。

过程200在系统100接收用户输入时开始,该用户输入指定分别在二维平面中的第一位置和第二位置处的曲线起始点和结束点、可选地一个或多个手动录入的控制点、以及与起始点和结束点中任一个或两者相关联的针对曲线的至少一个约束(框204)。如上所描述,在系统100中,用户经由用户接口设备120提供输入,以指定曲线的起始控制点和结束控制点、以及可选地限定曲线的大致形状和约束的一个或多个中间控制点的位置。使用图4中的曲线504的图示作为示例,控制点包括在曲线504的任一端处的起始控制点505和结束控制点542。曲线504还包括多个中间控制点,诸如控制点506、507、508、510和512。至少一个约束与控制点相关联,或者单独地或者应用于所有控制点。

在一些实施例中,起始和结束控制点是用户提供给系统100的手动图示的一部分,以使得系统100能够自动生成将复杂曲线合并到手动图示中的样条线。例如,在一个实施例中,输入设备120接收与用户绘制的直线或更复杂的线(诸如,贝塞尔曲线)相对应的用户输入。处理器128将线的一个端点标识为曲线的第一控制点或最终控制点,并且过程200通过一个或多个附加控制点生成曲线,该一个或多个附加控制点可以平滑地连接到手动绘制的图示中的线。

如本文中所使用的,术语“约束”指代在样条线的起始点或样条线的结束点处对样条线的一类连续性的要求。取决于约束,连续性使得能够生成与具有各种性质的物理对象相对应的曲线,该物理对象诸如使得车辆能够以恒定速度或加速度行驶通过样条线的起始点和结束点的道路。系统100经由输入设备120接收针对控制点中的至少一个的约束输入,以指定“切线”连续性、“曲率”连续性、以及“加速度”连续性约束中的至少一个。虽然本文中没有进一步详细描述,但是系统100始终生成具有空间连续性的样条线,这也就是说,所生成的样条线形成始终经过系统100在过程200期间从用户接收到的控制点位置的曲线。

图5是描绘了针对约束的每种类型的连续性的示例的现有技术图。切线连续性(其有时被称为“g1”连续性)指代如下连续性:其中,在联结两个曲线段602和606的点608处的单个切线与曲线段602和606两者相切。曲率连续性(其有时被称为“g2”连续性)指代如下连续性:其中,两个曲线段610和614的曲率在其中这两个曲线段彼此连接的点616处是相同的,尽管沿着曲线段610和614的其他位置可能具有不同的曲率水平。在图5中,从曲线段610和614延伸的垂直线表示在曲线段610和614的不同位置处的曲率的方向和量值。加速度连续性(其有时被称为“g3”连续性)指代如下连续性:其中,在点624处,一个弯曲样条线段618的曲率的量值和改变率与另一个弯曲样条线段622的曲率的量值和改变率相同。例如,在图5中,曲线段618示出了接近点624的线性增加的曲率率,并且在点624处,曲线段622具有相同的曲率水平和曲率中的增加率以在点624的位置处提供加速度连续性。点608、616和624例如是样条线的起始点或结束点、或者系统100在过程200期间自动生成的样条线段的端点。虽然切线、曲率和加速度连续性是本领域公知的,但是系统100使用如下样条线段自动生成满足指定的切线、曲率和连续性约束的样条线中的曲线段:该样条线段是以对于本领域未知的方式、使用针对直线、弧和回旋曲线的统一多项式表示而产生的。

以数学方式表达,针对具有共享参数点s1和s2的两个邻接线段l1和l2而将切线连续性表达为:

为了确定两个生成的曲线段是否在预定误差边界内彼此相切以满足切线连续性约束,约束误差函数为:

以数学方式表达,确定两个线段是否满足曲率连续性约束的约束函数为,其中l1和l2再次是具有共享参数点s1和s2的相邻弯曲样条线段。在上面的等式中,函数k指代每个线段l1和l2分别在特定点s1和s2处的曲率函数,该曲率函数产生数值曲率值,并且scale1scale2是预定数值缩放系数。

加速度连续性约束指代如下约束:该约束试图最小化与在每个控制点处连接在一起的样条线段的曲率中的改变率相对应的二阶导数(或可选地更高阶导数)中的差异。在一个示例中,在控制点处彼此联结的每个样条线段的“加速度”指代:在控制点的位置处标识的每个样条线段(实际上是每个样条线段的零长度部分)的曲率以类似于通常理解的对象速度的加速度作为对象速度随时间的瞬时改变率的方式在该样条线段的长度上的改变率。系统100将误差标识为控制点处的两个不同样条线段的加速度值之间的差异,以标识样条线段是否满足加速度约束。

在图4的示例曲线504中,控制点506与g1切线连续性约束相关联,并且控制点512与g2曲率连续性约束相关联。曲线504中的所有控制点(包括被标记的控制点507)被指派空间连续性约束“g0”,空间连续性约束“g0”仅仅需要用于所生成的曲线的样条线经过每个固定控制点。

再次参考图2,当处理器128执行所存储的程序指令144以实现多网格求解器时,过程200继续,该多网格求解器在二维平面中的第三位置处生成至少一个附加参数点,并且通过至少一个动态生成的参数点生成两个或更多个样条线段以将两个控制点连接在一起(框208)。在系统100中,多网格求解器尝试通过如下方式生成满足所有约束的多线段样条线:使用离散的空间和曲率值的组(其在多网格求解器中也被称为“网格”)将参数点调整到多个网格中与控制点所占据的二维平面中的位置相对应的位置。多网格求解器中的每个网格具有“分辨率”,该“分辨率”指代给定解空间内的潜在解的数量,诸如曲线周围预定区域内部的参数点的离散二维坐标的数量。多网格求解器产生具有从高分辨率空间到较低分辨率空间的变化分辨率水平的候选解,较低分辨率空间为“粗略”调整提供较少数量的潜在解。多网格求解器还调整连接的控制点与参数点之间的一维曲率参数以产生样条线,该样条线将控制点连接在一起,同时经过每个参数点。多网格求解器调整一组一维“网格”上的每个参数点的一维曲率参数,该一维曲率参数指定一对参数点之间的曲率,诸如针对直线或弧将曲率设置为单个值、或针对回旋曲线将曲率设置为具有线性斜率。多网格求解器使用较高分辨率和较低分辨率的解空间两者,以减少结果中的高频和低频误差的影响,并且以计算高效的方式生成满足针对所有控制点的约束的样条线。

在图2的实施例中,系统100使用多网格求解器来调整在每组控制点之间具有预定数量的参数点的一组或多组参数点,以在满足约束的同时生成将所有控制点联结在一起的样条线。系统100生成第一组控制点以生成连接两个控制点的曲线,并且在限定更复杂曲线的附加控制点对之间生成第二组、第三组等附加参数点。对于包括三个或更多个控制点的曲线(诸如,图4的曲线504),多网格求解器生成参数点组,以使用相邻控制点对之间的每组中的相等数量的参数点来产生满足针对所有控制点的约束的样条线。

对于包括三个或更多个控制点的实施例,多网格求解器以“全局”方式来操作以生成满足针对所有控制点的所有约束的样条线,而不是仅孤立地聚焦于单独的控制点对。在图4的示例中,曲线504包括在形成曲线的每组控制点之间的四个参数点,诸如控制点510与512之间的参数点524a-524d、以及控制点507与508之间的参数点528a-528d。

虽然图4描绘了每组控制点之间的四个参数点,但是在其他配置中,多网格求解器使用不同数量的参数点。更一般地,在过程200中,多网格求解器以每组中的最小预定数量的参数点而起始(例如,在系统100的一个实际实施例中,针对每对控制点的两个参数点,尽管不同的实施例可以以不同数量的参数点而起始),该参数点与控制点组合以形成完整的样条线。对于参数点的每种配置,多网格求解器使用一维曲率参数标识所生成的曲线的误差,该所生成的曲线连接两个控制点同时经过参数点。在过程200的上下文中,误差指代来自多网格求解器的一个所生成的解到每个控制点处的约束要求(诸如,上面描述的切线、曲率和加速度约束)的偏离。多网格求解器使用不同分辨率的网格以迭代方式生成参数点的不同位置以及一维曲率参数,直到如下两个事件之一发生:1.多网格求解器标识满足所有约束的参数点的配置(例如,如果误差值为零或小于预定阈值水平,则满足约束);或者2.多网格求解器确定不能使用可用数量的参数点来生成曲线同时还满足约束(例如,在预定数量的迭代内,误差水平没有降至零或预定误差阈值水平以下)。

如果多网格求解器未能生成满足约束的样条线(框212),则处理器128增加控制点对之间的每组参数点中的参数点的数量(框216),并且返回到上面参考框208所描述的处理,以用于使用多网格求解器、使用在每对控制点之间更大的一组参数点来生成另一个样条线。

在一个实施例中,在多网格求解器的一个或多个应用中,处理器128从初始数量的参数点(例如,两个参数点)起始,将单个参数点添加到每组中的预定数量的参数点,直到每组中存在足够数量的参数点,以使得多网格求解器能够生成满足所有约束的样条线。例如,在上面框208中描述的处理的第二次迭代中,多网格求解器使用三个参数点的组来生成样条线,如果必要,则接着是四个或五个参数点。虽然过程200在没有针对生成样条线的每组中参数点的数量的严格上界的情况下操作,但是在计算机图形中生成曲线的大多数实际应用中,系统100使用每组参数点中的至多五个参数点来生成满足约束的样条线。在多网格求解器的每次迭代中,处理器128忽略在过程200的较早迭代中在候选解中生成的参数点的任何先前位置和曲率参数。例如,当生成具有四个参数点的解时,多网格求解器不依赖于来自仅使用三个参数点的过程的先前迭代的参数点位置和曲率参数。出于解释目的,图2描绘了增加参数点的数量来为多网格求解器提供在如下方面的更大灵活性的过程:作为与多网格求解器操作分离的过程而生成样条线。然而,本领域技术人员将认识到,在多网格求解器的单个操作期间,如果必要,则多网格求解器的至少一些实施例增加参数点的数量。

如上所描述,在图4的样条线中,不同控制点之间的曲线具有不同类型的曲率,诸如直线段514(k=0)和曲线段516,曲线段516在参数点528a-528d之间具有变化的曲率值k。多个参数点为多网格求解器提供更高的自由度,以形成不同的样条线形状,来满足不同控制点处的不同约束。更一般地,在过程200期间,多网格求解器尝试使用预定初始数量的参数点来生成满足所有约束的样条线,其中过程200的一个实际实施例以多网格求解器的第一次迭代中的两个参数点而起始。在一些实例中,多网格求解器不能够使用初始数量的参数点来生成满足针对控制点的所有约束的样条线。在过程200期间,如果必要,则参数点的数量增加一次或多次,以使得多网格求解器能够使用附加参数点生成满足所有约束的样条线。

参数点的添加使得多网格求解器能够产生更大范围的潜在解来满足约束,这是因为多网格求解器现在可以将附加参数点放置在每组控制点之间的二维空间上,并且将更多不同的曲率参数指派给增加数量的参数点,以生成满足针对控制点的所有约束的样条线。添加附加参数点来为多网格求解器提供更大的灵活性以生成不同解的过程被称为“松弛(relaxation)”。本领域技术人员将认识到,一种用于生成满足所有约束的样条线的方法仅仅使用大量参数点来产生解。然而,如果将参数点的数量设置在大于满足所有约束所必要的数量,则多网格求解器可能遇到如下情形:其中非常大量的有效曲线解存在,尤其是可能具有不切实际大的尺寸和复杂的曲率形状但在技术上仍满足所有约束的曲线。因此,在过程200期间,多网格求解器以每对控制点之间的预定少量的参数点而起始,并且尝试使用最小数量的参数点来找到满足所有约束的有效样条线解。

再次参考图2,如果多网格求解器成功地生成包括具有满足所有约束的位置和一维曲线参数的一组或多组参数点的样条线(框212),则处理器128使用所生成的样条线数据执行至少一个操作以将编码的样条线表示数据156存储在存储器140中(框220),或者利用设备124生成样条线的图形显示(框224)。在图1的实施例中,处理器128将所存储的控制点数据148和动态生成的参数点数据152进行组合,以形成所存储的编码的样条线数据156。在一些实施例中,编码的样条线数据适合与矢量图形软件一起使用,该矢量图形软件使用图形显示设备124来生成样条线的图形显示。

在系统100中,矢量图形程序使用样条线的控制点和参数点在二维平面中的位置、以及样条线的一维曲率参数,来从编码的样条线数据生成满足所有约束的曲线的图形描绘。例如,如上面在图1中所描述的,处理器128使用图形显示设备124、基于所生成的样条线来生成曲线160的图形显示。编码的样条线数据156使得系统100能够在稍后的时间处再现曲线的图形描绘,或者以高效编码的数据格式将编码的样条线数据156传输到其他计算机,以用于在其他计算系统上显示该曲线。本领域技术人员将认识到,图形程序可以将附加的仿射变换应用于样条线以缩放、重新定位和旋转样条线,而不影响图形显示器124中的样条线的曲率。在过程200中,系统100可以以任何次序或并发地执行框220和224的处理。

系统100和过程200使得能够生成包括基于在过程200期间生成的样条线的参数化曲线的宽范围图形,以形成遵循各种约束的曲线的图形描绘。例如,在图4中,图示504示出了具有满足上面描述的用户指定的不同约束的不同点的复杂曲线。点506在两个不同回旋曲线之间具有简单的空间连续性,所述两个不同回旋曲线均在点506处结束。点506满足两个不同回旋曲线之间的切线连续性约束,所述两个不同回旋曲线具有不同水平的曲率,如从图示504中的曲线延伸的垂直线所描绘的。当具有线性变化曲率的回旋曲线在点512处达到零曲率时,点512满足曲率连续性约束,该点512也是具有零曲率的直线的端。如上所描述,在一些实施例中,图示504的一部分(诸如,图4中的直线段514)由用户经由输入设备120手动形成,而系统100从手动图示中指定的起始点和结束点自动生成曲线的其他部分。系统100基于用户输入、以及如上所描述的在过程200中对一个或多个样条线的自动生成来产生图示504中的曲线。在图示550中,系统100生成用于各种曲线的样条线,所述曲线与手绘图示集成以形成人脸的图示。

使用具有仅在必要时增加参数点数量的松弛过程的多网格求解器的过程200的操作的一个优点在于:多网格求解器生成具有高稳定度的样条线。在过程200的上下文中,稳定性性质使得多网格求解器在被提供有彼此类似但不等同的输入控制点和约束时能够产生具有类似大致形状的曲线。例如,在许多交互式图形应用中,用户提供控制点以生成初始曲线,并且然后以交互式方式对控制点的位置进行微小调整。在用户对控制点的位置进行微小调整时,系统100在过程200中使用多网格求解器重新生成曲线,以产生具有类似大致形状的样条线。

本文中描述的实施例提供了对以自动化方式生成图形的计算机化系统的功能的特定改进,并且更特别地对满足上面描述的切线、曲率和加速度连续性约束的样条线、以及基于样条线的曲线图形的自动化生成的特定改进。特别地,系统100和过程200改进具有新曲线类型的参数化曲线的图形的生成效率,该曲线类型通过分段线性曲率函数而被参数化。

将领会到,上面公开的和其他特征及功能的变体或其替代方案可以被合期望地组合成许多其他不同的系统、应用或方法。可以随后由本领域技术人员做出各种目前未预见或未预测到的替代方案、修改、变型或改进,这些也意图由以下权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1