缩放方法、装置、设备及介质与流程

文档序号:16898718发布日期:2019-02-19 17:44阅读:149来源:国知局
缩放方法、装置、设备及介质与流程
本发明涉及一种缩放方法、装置、设备及介质。
背景技术
:在二维或三维空间的设计过程中,经常有调整物体大小的需求,例如拉长或缩短等,现有技术的技术方案通常使用每个维度上独立的比例拉伸方法,确保每一个点相对于形状的位置百分比,在拉伸前后保持不变。然而,设计中,对复杂物体的操作是常态,复杂物体是指由不止一种材质、颜色、透明度、大小或方向的物体组合而成的物体。在对复杂物体进行等比例拉伸或缩短时,若仍然采取针对每个维度分别执行等比例拉伸的方式,经常会导致复杂物体中的一些特定形状的子物体变形或失真,而要避免这种失真或变形,则可能需要按照想要的尺寸来重新制作复杂物体,操作复杂,十分不便。技术实现要素:本发明的目的在于提供一种缩放方法,用于二维或三维设计。本发明的第一方面提供了一种缩放方法,包括:针对复杂物体的坐标轴方向中的每一个:为复杂物体中的每个子物体赋予一个在该方向上的缩放方式,缩放方式包括:比例拉伸、不拉伸和单元重复;对于复杂物体的每个垂直于该方向的截面,计算截面的缩放比例限制;将相邻且缩放比例相同的截面合并,得到复杂物体在该方向上的分段缩放比例范围;根据复杂物体在该方向上的调整目标值,计算复杂物体在该方向上的分段缩放比例;以及根据每个子物体在每个方向上的缩放比例,计算每个子物体的新的位置范围,并调整复杂物体的大小。该方法使得对物体进行设计或处理后,再对该物体修改大小时不会造成局部的失真。进一步地,对于复杂物体的每个垂直于该方向的截面,计算截面的缩放比例限制可以包括:判断截面是否与一个或多个子物体相交;若否,则缩放比例无限制;若是,则将截面的缩放比例限制为不超过与截面相交的子物体在该方向上的缩放限制值。进一步地,根据复杂物体在该方向上的调整目标值,计算复杂物体在该方向上的分段缩放比例可以包括:判断目标值是否超过该方向的最大值或最小值;若超过最大值,则将目标值调整为最大值;若低于最小值,则将目标值调整为最小值;否则,分别计算复杂物体中的每个分段的理论缩放比例r;若某一分段求得的r值不在分段的缩放比例范围内,则将该分段的理论缩放比例设为缩放比例范围中最接近r的极限值r’,并根据r’值调整其他分段的缩放比例。进一步地,该方法还可以包括:将复杂物体分解为子物体的步骤。进一步地,当子物体被赋予单元重复的缩放方式时,若该子物体的要被调整的目标长度不是重复单元的整数倍,则按最终长度将最后一个单元截取一部分,或者保留向下取整数量的单元并居中排列。进一步地,复杂物体是二维物体或三维物体。本发明的第二方面提供了一种缩放装置,包括:缩放方式确定单元,被配置为,为复杂物体中的每个子物体的每个坐标轴方向赋予一个缩放方式,缩放方式包括:比例拉伸、不拉伸和单元重复;缩放比例限制确定单元,被配置为,针对复杂物体的坐标轴方向中的每一个,计算复杂物体的每个垂直于该方向的截面的缩放比例限制;分段缩放比例范围确定单元,被配置为,将相邻且缩放比例相同的截面合并,得到复杂物体在每个方向上的分段缩放比例范围;分段缩放比例确定单元,被配置为,根据复杂物体在每个方向上的调整目标值,计算复杂物体在每个方向上的分段缩放比例;以及调整单元,被配置为,根据每个子物体在每个方向上的缩放比例,计算每个子物体的新的位置范围,并调整复杂物体的大小。进一步地,缩放比例限制确定单元可以进一步被配置为:针对复杂物体的坐标轴方向中的每一个:判断每个垂直于该方向的截面是否与一个或多个子物体相交;若否,则缩放比例无限制;若是,则将截面的缩放比例限制为不超过与截面相交的子物体在该方向上的缩放限制值。进一步地,分段缩放比例确定单元可以进一步被配置为:针对复杂物体的坐标轴方向中的每一个:判断目标值是否超过该方向的最大值或最小值;若超过最大值,则将目标值调整为最大值;若低于最小值,则将目标值调整为最小值;否则,分别计算复杂物体中的每个分段的理论缩放比例r;若某一分段求得的r值不在分段的缩放比例范围内,则将该分段的理论缩放比例设为缩放比例范围中最接近r的极限值r’,并根据r’值调整其他分段的缩放比例。进一步地,该装置还包括分解单元,被配置为将复杂物体分解为子物体。进一步地,缩放方式确定单元可以进一步被配置为,当子物体被赋予单元重复的缩放方式时,若该子物体的要被调整的目标长度不是重复单元的整数倍,则按最终长度将最后一个单元截取一部分,或者保留向下取整数量的单元并居中排列。进一步地,复杂物体可以是二维物体或三维物体。本发明的第三方面提供了一种设备,该设备包括处理器、存储器,处理器与存储器建立通信连接;处理器,用于读取存储器中的程序,以执行前述第一方面或第一方面的任一实现方式提供的方法。本发明的第四方面提供了一种非易失性存储介质,该非易失性存储介质中存储了程序,该程序被计算设备运行时,计算设备执行前述第一方面或第一方面的任一实现方式提供的方法。与现有技术相比,本发明能够方便的调整已设计好的二维或三维物体的大小,在无需重新制作的情况下,能够有效防止被拉伸物体的变形或失真。附图说明图1是根据本发明的实施例的缩放方法的流程图。图2是根据本发明的实施例的缩放装置的示意框图。图3是根据本发明的实施例的三维复杂物体的正视图。图4是根据本发明的实施例的三维复杂物体的侧视图。图5是根据本发明的实施例的三维复杂物体被等比例拉伸后的示意图。图6a-6h是根据本发明的实施例的三维复杂物体分解示意图。图7是根据本发明的实施例的三维复杂物体中的重复单元的示意图。图8是根据本发明的实施例的赋予缩放方式的流程图。图9是根据本发明的实施例的计算缩放比例限制的流程图。图10是根据本发明的实施例的计算缩放比例的流程图。图11是根据本发明的实施例的宫墙100在y方向的分段缩放示意图。具体实施方式下面结合具体实施例和附图对本发明做进一步说明。可以理解的是,此处描述的具体实施例仅仅是为了解释本发明,而非对本发明的限定。此外,为了便于描述,附图中仅示出了与本发明相关的部分而非全部的结构或过程。另外,在以下的说明中所使用的“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”等,仅仅是为了方便解释本发明的结构,不应理解为对本发明的限制。在三维空间设计中,对复杂物体进行拉伸或压缩是经常出现的操作。例如,如图3和图4所示的宫墙100,包括形状复杂的墙顶、墙身以及砖块纹路的底部。在对该宫墙100进行拉伸时,若按照现有技术的方法,例如对该宫墙100按照长度方向等比例地进行横向拉伸,将得到图5所示的状态,从图5中可以看出,宫墙100底部的砖块纹路经过拉伸已经变形,顶部的筒状瓦片圆截面也被拉伸成扁圆形。而如果要避免这种拉伸变形,需要根据新的大小重制作一面墙,非常不方便。而本发明则提供一种缩放方法,对像宫墙100等等的这类复杂物体进行拉伸或压缩,同时不会造成局部的变形或失真。根据本发明的一个实施例,提供一种缩放方法,如图1所示,该方法可用于二维物体或三维物体的缩放,具体可以包括以下步骤:步骤s101,针对复杂物体,按照坐标轴方向定义缩放种类,为复杂物体中的每个子物体在每个坐标轴方向上赋予一个缩放方式,缩放方式可以包括比例拉伸、不拉伸和单元重复等等中的任意一种或几种。其中,比例拉伸:即按比例扩大或者缩小至目的大小。这种缩放类别可以默认为对物体的大小没有限制,但在一些实施例中,也可以按需求添加拉伸的最大值和小值。不拉伸:全部不拉伸,则会保持这个子物体在整体位置的百分比不变。单元重复:由若干个单元在缩放方向上重复排列,通过增加或者减少数量来完成尺寸的伸长或者缩短。单元重复类别也可以用来实现贴图的需求。在一些实施方式中,用户可以手动添加最大值和最小值,并可以定义当目标长度不是单元的整数倍时处理方式。例如,可以定义为,若该子物体的要被调整的目标长度不是重复单元的整数倍,则按最终长度将最后一个单元截取一部分,或者,保留向下取整数量的单元并居中排列。可选择地,在一些情况下,若复杂物体没有事先划分为多个子物体,那么,在步骤s101之前,还可以包括将复杂物体分解为子物体的步骤,该步骤可以由三维设计软件或装置自动完成,也可以由用户手动设置。举例来说,如图3所示的宫墙100,按照构成元素的不同形状,宫墙100可视为由八个子物体101,102,…,108组成,这八个子物体分别在图6a-图6h中的加粗部分示出。在步骤s101中,分别为这八个子物体在三维坐标系的三个方向上分别赋予缩放方式。根据本发明的一个实施例,针对每个子物体的每个方向,赋予一个缩放方式的过程可以如图8所示。该过程可以包括:对于每个子物体的每个方向,判断这个子物体的每一个垂直于该方向的截面是否形状相同,若是,则将该子物体在该方向上的拉伸模式设置为比例拉伸;否则,判断该子物体在该方向上是否是由多个重复形状组成,若是,则将该子物体在该方向上的拉伸模式设置为单元重复,否则,则将该子物体在该方向上的拉伸模式设置为不拉伸。例如,对于上文所述的宫墙100,可以将宫墙100的长度方向设为x方向,高度方向设为y方向,厚度方向设为z方向,则可以得到下述表格。表1子物体编号x方向y方向z方向101比例拉伸不拉伸比例拉伸102比例拉伸比例拉伸比例拉伸103比例拉伸不拉伸比例拉伸104比例拉伸不拉伸不拉伸105比例拉伸不拉伸不拉伸106比例拉伸不拉伸不拉伸107单元重复不拉伸不拉伸108单元重复不拉伸不拉伸图8所示的方法仅仅是赋予缩放方式的一个示例,在其他实施例中,可以采用其他方法为每个子物体的每个方向赋予缩放方式。另外,如果用户对按照图8的方法得到的结果不满意,也可以手动修改。此外,可选择地,如果用户将某个子物体的某个方向的缩放类别设置为以下两种缩放类别,需要给出额外信息:(1)部分缩放类型:该类型需要指定哪些部分不可缩放,哪些部分可以缩放。这种类型也可以视为子物体可进一步拆分为更多的子物体,再分别对这样的多个子物体定义缩放方式。(2)单元重复类型:该类型需要特别指定重复单元内容及重复周期长度。例如,通过上表1可以看出,如6h所示的子物体108在x方向上的缩放方式为单元重复,那么重复单元可以指定为如图7所示的加粗部分的1081,重复周期长度可以设为图7中的长度d。随后,步骤s102,针对坐标轴的每个方向,对于复杂物体的每个垂直于该方向的截面,计算该截面的缩放比例限制,这样可以得到垂直于该方向的所有截面的缩放比例限制。随后,步骤s103,将相邻且缩放比例相同的截面合并,得到复杂物体在该方向上的分段缩放比例范围。根据本发明的一个实施例,垂直于某一方向的所有截面的缩放比例限制的具体计算过程可以如图9所示。首先,对于复杂物体的每个垂直于该方向的截面,判断该截面是否与一个或多个子物体相交。若不相交,则缩放比例无限制;若是,则将截面的缩放比例限制为不超过与截面相交的子物体在该方向上的缩放限制值。例如,对于垂直于某一方向的所有截面,如果判断与该截面相交的子物体全部都是“不缩放”类别,则该截面的缩放比例限制为1;若该截面与一个或多个限制了最大值的子物体相交,则该截面的缩放比例被限制为:最大值不超过与其相交的所有限制了最大值的子物体的限制值中的最小值;若该截面与一个或多个限制了最小值的子物体相交,则该截面的缩放比例被限制为:最小值不低于与其相交的所有限制了最小值的子物体的限制值中的最大值;若与其相交的子物体在该方向上无限制,则该截面的缩放比例也无限制。随后,将相邻且缩放比例相同的截面合并,即可得到复杂物体在该方向上的分段缩放比例范围。依照同样的方法依次计算坐标轴的其他方向,即可得到各个方向上的分段缩放比例范围。例如,如图11所示,在上述宫墙的实例中,在y方向得到的分段缩放比例范围可以归并为类似表2的形式:表2位置范围[0,0.5)[0.5,1.8)[1.8,2.1)缩放比例1无限制1以上垂直于某一方向的所有截面的缩放比例限制的具体计算过程仅仅是举例说明,不应被视为对本发明的限制。同时,以上过程中的各个步骤可以以不同的顺序进行或者并行进行,在一些实施例中,也可以只包括其中的部分步骤或包括更多的步骤。随后,步骤s104,根据复杂物体在该方向上的调整目标值,计算复杂物体在该方向上的分段缩放比例。根据本发明的一个实施例,计算计算复杂物体在该方向上的分段缩放比例的过程可以如图10所示。假设复杂物体在某一方向上的原长度为l0,该复杂物体在该方向上的目标长度为l1,并且在该方向上的分段缩放比例范围表中,缩放比例已经确定的物体在该维度的长度之和为d0。首先,由用户设置复杂物体在某一方向的整体大小的调整目标值;判断该目标值是否超过该方向所能调整的最大值或最小值;若超过最大值,则将目标值调整为最大值;若低于最小值,则将目标值调整为最小值;否则,分别计算复杂物体中的每个分段的理论缩放比例r;求得各个分段的r值后,若某一分段求得的r值不在分段的缩放比例范围内,则将该分段的理论缩放比例设为缩放比例范围中最接近r的极限值r’(例如,假设在上表2中,[1,4)区间段求得的r值为1.6,则将该段的理论缩放比例设为最接近1.6的极限值1.5),并将r’值并入d0,同时根据新的d0调整其他分段的缩放比例。例如,在上述宫墙的实例中,根据表2和用户设定,l0=2.1,假设l1=2.75,则得到具体的分段缩放比例可以归并为类似表3的形式:表3:位置范围[0,0.5)[0.5,1.8)[1.8,2.1)缩放比例11.51同样,以上分段缩放比例的具体计算过程仅仅是举例说明,不应被视为对本发明的限制。同时,以上过程中的各个步骤可以以不同的顺序进行或者并行进行,在一些实施例中,也可以只包括其中的部分步骤或包括更多的步骤。最后,步骤s105,根据每个子物体在每个方向上的缩放比例,计算每个子物体的新的位置范围,并调整复杂物体的大小。例如,在已经坐标零点、子物体中心位置pos和子物体原长度l的情况下,可以通过以下公式计算出这一方向上该子物体在缩放前的位置范围:l1=pos-l*0.5l2=pos+l*0.5其中,l1、l2分别为这个子物体在这个方向上,离坐标零点最近、最远的距离。pos为物体的中心位置,l为这个物体在这个方向上的长度。对于l1,对分段照缩放比例,得出l1处于哪个分段。再通过以下公式求得新的坐标l1new:其中r(x)是距离原点x的截面的缩放比例。同理,对l2作相同计算,可以得到l2new,l1new和l2new即为此子物体在这个方向上的位置范围。随后,即可根据l1new和l2new确定的位置范围,在该方向上缩放该子物体。在需要缩放的方向上对所有子物体的做相同的处理,即可方便的实现对复杂物体的大小的修改同时不造成局部失真。以上实施例中,以三维宫墙作为复杂物体的示例对本发明的具体操作进行了说明,需要注意的是,本发明不仅可以应用于三维物体的缩放,也可应用于二维复杂物体的缩放,同样可以解决二维缩放中的局部失真问题。同样,可以理解的是,对于以上过程中的各个步骤的具体描述仅仅是为了方便说明本发明的思想,在一些情况下,各步骤可以以不同的顺序进行或者并行进行,在一些实施例中,也可以只包括其中的部分步骤或包括更多的步骤。根据本发明的另一个实施例,还提供了一种缩放装置,如图2所示。该缩放装置20包括:缩放方式确定单元201,被配置为,为复杂物体中的每个子物体的每个坐标轴方向赋予一个缩放方式,所述缩放方式包括:比例拉伸、不拉伸和单元重复;缩放比例限制确定单元202,被配置为,针对复杂物体的坐标轴方向中的每一个,计算复杂物体的每个垂直于该方向的截面的缩放比例限制;分段缩放比例范围确定单元203,被配置为,将相邻且缩放比例相同的截面合并,得到复杂物体在每个方向上的分段缩放比例范围;分段缩放比例确定单元204,被配置为,根据复杂物体在每个方向上的调整目标值,计算复杂物体在每个方向上的分段缩放比例;以及调整单元205,被配置为,根据每个子物体在每个方向上的缩放比例,计算每个子物体的新的位置范围,并调整复杂物体的大小。该缩放装置20可以执行上文中结合图1描述的缩放方法。以上各单元可以是逻辑单元、物理单元、物理单元的一部分或多个物理单元的组合,这些单元本身的物理实现方式并不是最重要的,这些单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,在不同的实施方式中,除了以上单元之外,本发明还可以包括其它的单元或模块。根据本发明的另一个实施例,还提供了一种计算设备,包括处理器和存储器,处理器和存储器建立通信连接,处理器用于读取存储器中的程序,以执行图1中方法。根据本发明的另一个实施例,还提供了一种非易失性存储介质,非易失性存储介质中存储了程序,该程序被计算设备运行时,计算设备可以执行图1所示的方法。上面结合附图对本发明的实施例做了详细说明,但本发明技术方案的使用不仅仅局限于本专利实施例中提及的各种应用,各种结构和变型都可以参考本发明技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本发明宗旨的前提下做出的各种变化,均应归属于本发明专利涵盖范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1