数据处理方法、装置、设备及存储介质与流程

文档序号:29438287发布日期:2022-03-30 09:34阅读:85来源:国知局
数据处理方法、装置、设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。


背景技术:

2.广义的装箱是指给定一些待放置的多边形和一个给定大小和形状的容器,将待放置的多边形放置到容器中,并且要保证多边形之间互不重叠且具有稳定间距,且要极致利用容器填充率。目前常用的装箱方法是基于nfp和最低重心方法,具体是依次为每个待放置的多边形确定多个候选角度以及依据候选角度确定多个候选位置,按照重心最大的候选位置放置相应多边形。在实践研究中发现,按照这种装箱方法放置后,容器的填充率较低。因此,如何实现较高的容器填充率的装箱,成为当今研究的热点问题之一。


技术实现要素:

3.本技术实施例提供了一种数据处理方法、装置、设备及存储介质,实现了较高的容器填充率的装箱。
4.一方面,本技术实施例提供了一种数据处理方法,包括:获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;基于每个图形的图形属性从所述n个图形中确定参考图形;根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
5.一方面,本技术实施例还提供了一种图像处理装置,包括:获取单元,用于获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;确定单元,用于基于每个图形的图形属性从所述n个图形中确定参考图形;所述确定单元,还用于根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;放置单元,用于按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
6.一方面,本技术实施例提供了一种数据处理设备,包括:处理器,适用于实现一条或多条计算机程序;计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行:获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;基于每个图形的图形属性从所述n个图形中确定参考图形;根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
7.一方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被数据处理设备的处理器执行时,用于执行:获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;基于每个图形的图形属性从所述n个图形中确定参考图形;根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
8.一方面,本技术实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,计算机程序存储在计算机存储介质中;数据处理设备的处理器从计算机存储介质中读取计算机程序,该处理器执行计算机程序,使得数据处理设备执行:获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;基于每个图形的图形属性从所述n个图形中确定参考图形;根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
9.本技术实施例中,在需要将n个图形放置到容器中时,首先基于每个图形的图形属性从n个图形中确定参考图形;然后根据参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定适合n个图形的放置规则,最后按照确定出的放置规则将n个图形放置于容器中。应当理解的,采用适合的放置规则对n个图形进行放置,实现了针对性的放置处理,可有效提高容器填充率。
附图说明
10.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1是本技术实施例提供的一种自动2uv展开的设置窗口的示意图;图2是本技术实施例提供的一种数据处理方法的流程示意图;图3a是本技术实施例提供的一种n个图形的示意图;图3b是本技术实施例提供的一种容器的示意图;图4a是本技术实施例提供的一种将n个图形放置于容器中的示意图;图4b是本技术实施例提供的另一种将n个图形放置于容器中的示意图;图5是本技术实施例提供的另一种数据处理方法的流程示意图;图6a是本技术实施例提供的又一种将n个图形放置于容器中的示意图;图6b是本技术实施例提供的再一种将n个图形放置于容器中的示意图;图7是本技术实施例提供的一种数据处理装置的结构示意图;图8是本技术实施例提供的一种数据处理设备的结构示意图。
具体实施方式
12.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完
整地描述。
13.本技术提供了一种数据处理方案,用来解决图形装箱(将图形放置于容器中)问题。具体实现中,根据待放置的n个图形中的参考图形,为n个图形确定一个合适的放置规则,然后根据确定的放置规则将n个图形放置到容器中,实现了为n个图形有针对性地提供放置规则,与任意图形均采用统一的放置规则放置到容器中相比,按照具有针对性的放置规则放置n个图形,可以提高容器的填充率。
14.上述数据处理方案可由数据处理设备执行,数据处理设备可以是终端设备,比如智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能家电、智能手表、车载终端、飞行器等;或者,数据处理设备还可以是服务器,比如独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
15.本技术实施例提供的数据处理方案可以应用在自动光照纹理映射(2uv 或者light mapping)展开项目中,自动2uv是游戏美术资源自动化生产工具,用以替换游戏项目中场景模型的2uv人工制作流程。
16.自动2uv展开是指将一个三维模型以二维的方式铺开。这个三维模型可以是任意场景中的三维模型,比如是游戏场景中的一个游戏道具,一个游戏角色等等;再如,还可以是虚拟空间场景中的任意一个虚拟物品,比如一个杯子、一张椅子等等。为了让三维模型更加逼真,通常需要为三维模型添加一些纹理细节,但是由于三维模型是三维的,而用于表征纹理细节的纹理是二维的,所以为了给三维模型添加纹理,需要将三维模型中3d网格转移到2d空间,这一过程称为uv映射(uv mapping)。
17.在2d空间中,制作纹理时常用到纹理贴图(又可以称为纹理映射1uv)和光照纹理映射(又可以称为2uv/light mapping),纹理贴图是将纹理空间中的纹理像素映射到2d空间中的像素的过程。2uv是光照纹理和uv映射合并在一起的统称,光照纹理(又称为光照图)是包含了光照信息的一种三维引擎的光强数据,光照图是预先计算好的,用于静态目标上的,其计算量比实时计算照明更少。
18.将三维模型中的3d网格转移到2d空间之后,2d空间中的uv坐标中形成的闭合且独立的多边形可以称为uv岛(uv island)。自动2uv可以包括切割展开、横平竖直以及紧致装箱三大主步骤,如图1所示,为本技术实施例提供的一种在自动2uv展开时的一个设置窗口,在该设置窗口可以包括自动2uv展开时所需的全局参数如图1中101区域内所示,比如坐标系方向、光照纹理分辨率、uv岛边沿像素数等等,每个参数可以对应一个设置选项,通过触发任一设置选项可以对相应参数进行设置。比如坐标系方向这个参数对应一个设置选项110,通过触发设置选项110可以设置坐标系方向,在图1中假设设置坐标系方向为z轴朝上;再如光照纹理分辨率这个参数对应的设置选项为111,通过触发设置选项111可以设置光照纹理分辨率,本技术实施例中将光照纹理分辨率设置为1024。
19.自动2uv展开的设置窗口还可以包括自动2uv展开的执行步骤如图1中102区域内所示。每个执行步骤可以设置相应的输入和输出的命名,还可以为每个执行步骤设置相应的执行规则,比如对于切割展开这个执行步骤,设置的执行规则可以是更少切割线;对应紧致装箱这个步骤可以导入本技术实施例的上述数据处理方案,以实现在高填充率的情况下完成紧致装箱。
20.每个执行步骤可以单独执行,比如每个执行步骤均对应一个“执行”按钮,触发一个执行按钮,该执行按钮对应的执行步骤将会被执行;或者,上述的三个步骤可以同时启动执行,三个步骤按照图1中的顺序依次执行。比如,设置窗口包括一个“一键执行”按钮,触发该“一键执行”按钮可以触发同时启动三个步骤,以使3个步骤依序执行。
21.在执行步骤三时,采用本技术实施例上述提供的数据处理方案,在自动2uv展开中,待放置的n个图形是指n个uv岛,基于每个uv岛的图形属性从n个uv岛中确定出一个参考uv岛,然后根据该参考uv岛的图形属性与属性阈值之间的关系,从至少一个放置规则中确定出适用于n个uv岛的放置规则,按照确定出的放置规则将n个uv岛放置到容器中。采用本技术提供的数据处理方案可以实现有针对性地将多个uv岛装箱,提高容器填充率。
22.基于上述的数据处理方案,本技术实施例提供了一种数据处理方法。参见图2,为本技术实施例提供的一种数据处理方法的流程示意图。图2所述的数据处理方法可由数据处理设备执行,具体可由数据处理设备的处理器执行。图2所述的数据处理方法可包括如下步骤:步骤s201、获取n个图形以及用于放置n个图形的容器。
23.其中,n个图形可以是任意形状的图形,比如n个图形可以是规则形状的多边形如矩形、三角形、圆形;再如n个图形还可以是不规则形状的多边形。n个图形中每个图形可以是一个独立的多边形,也可以是由多个多边形拼接得到的一个图形。n个图形中可以存在一些相同的图形。参见图3a,为本技术实施例提供的一种n个图形的示意图,图3a所示的n个图形中可以包括规则形状的独立的多边形301和302,还可以包括不规则形状的拼接而成的多边形如303和304,n个图形中可以存在一些相同的图形,比如存在3个301,2个302以及2个303。
24.用于放置n个图形的容器是指能够将其他图形放置在其中的一种图形,该容器可以是规则形状的图形,也可以是不规则形状的图形。参见图3b,为本技术实施例提供的一种容器的示意图,31表示一个不规则形状的容器,32表示一个规则形状的容器。
25.在一个实施例中,n个图形以及用于放置n个图形的容器均可以是存储在数据处理设备的本地存储中,当需要将n个图形放置到容器中时,数据处理设备从本地存储中加载出n个图形以及容器。
26.在其他实施例中, n个图形以及用于放置n个图形的容器可以是存储在其他设备中,当数据处理设备需要将n个图形放置到容器中时,数据处理设备通过与其他设备进行交互,接收其他设备传输的n个图形以及用于放置n个图形的容器。
27.步骤s202、基于每个图形的图形属性从n个图形中确定参考图形。
28.在一个实施例中,每个图形的图形属性可以包括图形面积,基于每个图形的图形属性从n个图形中确定参考图形可以是指基于每个图形的图形面积从n个图形中确定参考图形。具体实现中,基于每个图形的图形面积确定出n个图形的总面积;确定每个图形的图形面积与总面积之间的面积差异;将n个图形中第一图形确定为参考图形,第一图形的图形面积与总面积之间的面积差异满足面积差异阈值。
29.简单来说,就是计算每个图形的图形面积与n个图形的总面积之间的面积差异,将图形面积与总面积之间的面积差异满足面积差异阈值的图形确定为n个图形中的参考图形。比如n个图形中包括图形1和图形2,如果图形1与总面积之间的面积差异满足面积差异
阈值,则图形1是参考图形,同理的,如果图形2与总面积之间的面积差异满足面积差异阈值,则图形2也是参考图形。由此可见,n个图形中参考图形的数量为一个或多个。
30.每个图形的图形面积与总面积之间的面积差异可以通过一个比值来表示,比如第一图形的图形面积与总面积之间的比值即为第一图形的图形面积与总面积之间的面积差异。面积差异阈值是一个预先设定的预设比值,第一图形的图形面积与总面积之间的面积差异满足面积差异阈值是指:第一图形的图形面积与总面积之间的比例大于或等于预设比值。上述提到的比值可以是通过百分比的形式表示的,例如,面积差异阈值可以是5%,如果n个图形中第一图形的图形面积与n个图形总面积之间的比值大于5%,则将第一图形确定为参考图形。换言之,将n个图形中,图形面积大于总面积5%的图形确定为参考图形。
31.另一个实施例中,每个图形的图形属性还可以包括每个图形的图形长边长度,基于每个图形的图形属性从n个图形中确定参考图形可以是指:基于每个图形的图形长边长度从n个图形中确定参考图形。具体实现中,从n个图形中确定多个候选的图形;确定多个候选的图形中每个图形的图形长边长度与容器长边长度之间的长度差异;将多个候选的图形中的第二图形确定为参考图形,第二图形的图形长边长度与容器长边长度之间的长度差异满足长度差异阈值。
32.其中,可选的,多个候选的图形包括n个图形,也就是说,依据每个图形的图形长边长度从n个图形中选取参考图形。
33.可选的,多个候选的图形还可以包括:n个图形中除第一图形外的剩余图形。也就是说,如果已经根据每个图形的图形面积从n个图形中选择了参考图形,则还可以依据图形长边长度从n个图形除已经选择出的参考图形外的剩余图像中,再继续选择一些参考图形,如此一来,n个图形中,图形长边长度与容器长边长度之间的长度差异满足长度差异阈值的图形,或者图形面积与总面积之间的面积差异满足面积差异阈值的图形均会被选出来作为参考图形。
34.每个图形的图形长边长度与容器长边长度之间的长度差异可以通过一个比值来表示,比如第二图形的图形长边长度与容器长边长度之间的比值即为第二图形的图形长边长度与容器长边长度之间的长度差异。长度差异阈值是一个预先设定的预设比值,第二图形的图形长边长度与容器长边长度之间的长度差异满足长度差异阈值是指:第二图形的图形长边长度与容器长边长度之间的比例大于或等于预设比值。上述提到的比值可以是通过百分比的形式表示的,例如,长度差异阈值可以是55%,如果n个图形中第二图形的图形长边长度容器长边长度之间的比值大于55%,则将第二图形确定为参考图形。换言之,将n个图形中,图形长边长度大于容器长边长度55%的图形确定为参考图形。
35.步骤s203、根据参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定n个图形对应的放置规则。
36.其中,至少一个放置规则包括全局缩放放置规则和混合缩放放置规则,根据参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定n个图形对应的放置规则可以包括:如果参考图形的图形属性与属性阈值之间存在第一数值关系,则将混合缩放放置规则确定为n个图形对应的放置规则;如果参考图形的图形属性与属性阈值之间存在第二数值关系,则将全局缩放放置规则确定为n个图形对应的放置规则。
37.此处提到参考图形的图形属性是指参考图形的图形面积属性,如果参考图形的数
量为多个,参考图形的图形面积属性是将多个参考图形的图形面积进行相加得到的相加结果。可选的,属性阈值可以是基于n个图形的总面积和面积差异阈值确定的,具体地,可以将图形的总面积和面积差异阈值进行相乘运算,相乘运算的结果作为属性阈值、可选的,属性阈值也可以是根据经验预先执行的一个值。
38.参考图形的图形属性与属性阈值之间存在第一数值关系是指:参考图形的图形面积大于属性阈值;参考图形的图形属性与属性阈值之间存在第二数值关系是指:参考图形的图形面积小于或等于属性阈值。
39.步骤s204、按照n个图形对应的放置规则将n个图形放置于容器中。
40.在一个实施例中,如果n个图形对应的放置规则是指混合缩放放置规则,混合缩放放置规则包括独立缩放放置规则和全局缩放放置规则,则按照n个图形对应的放置规则将n个图形放置于容器中可以是指:按照独立缩放放置规则对参考图形进行独立缩放放置处理,并根据独立缩放放置处理结果将参考图形放置于容器中;以及按照全局缩放放置规则对n个图形中除参考图形外的剩余的图形进行全局缩放放置规则,并根据全局缩放放置处理结果将剩余的图形放置于容器中。
41.简单来说,如果基于参考图形的图形属性与属性阈值之间的关系确定出n个图形对应的放置规则是混合放置规则,那么按照混合放置规则将n个图形放置到容器中是指:分别按照混合放置规则中的不同放置规则来处理参考图形和n个图形中除参考图形外的剩余的图形。
42.另一个实施例中,如果n个图形对应的放置规则是指全局缩放放置规则,则按照n个图形对应的放置规则将n个图形放置于容器中是指:按照全局缩放放置规则对n个图形中每个图形进行全局缩放放置处理,并根据全局缩放放置处理结果将n个图形中每个图形放置于容器中。也就是说,如果基于参考图形的图形属性与属性阈值之间的关系确定出n个图形对应的放置规则是全局缩放放置规则,那么就将n个图形中所有图形对按照全局缩放放置规则进行处理以将n个图形放置到容器中。
43.通过上述两个实施例可以看出,在参考图形的图形属性与属性阈值之间的存在不同关系的情况下,采用了不同的放置规则将n个图形放置到容器中。这是因为如果参考图形的图形属性与属性阈值之间存在第一数值关系时,参考图形相比于n个图形中的其他图形,具有更大的图形面积或者更大的图形长边长度,对其进行全局缩放时对全局缩放比例会存在一定限制,也就是说不能缩放到很小,如果不考虑这一点,把参考图形和其他图形一起进行全局缩放放置处理,就会影响整体的全局缩放比例,这样一来就会影响到容器的填充率。
44.如果参考图形的图形属性与属性阈值之间存在第二数值关系时,参考图形与n个图形中的其他图形在图形属性上就不存在很大的区别,可以对这n个图形一起进行全局缩放放置处理。下面通过图形直观的来进行对比,假设n个图形中参考图形的图形面积属性大于属性阈值,参见图4a,为本技术实施例提供的一种将n个图形放置到容器中的示意图,其中,401表示参见图4b,为本技术实施例提供的另一种将n个图形放置到容器中的示意图,403表示将n个图形中每个图形都按照全局缩放放置规则进行全局缩放放置处理后放置到容器中的放置结果,404表示采用混合缩放放置规则将n个图形放置到容器中的放置结果。401和402中n个图形是相同的,403和404中n个图形是相同的。
45.通过401和402的对比,以及403和404的对比可见,在参考图形的图形数据大于属
性阈值的情况下,采用混合缩放放置规则将n个图形放置到容器中,相比于按照全局缩放放置规则将n个图形放置到容器中,具有更高的容器填充率。
46.本技术实施例中,针对参考图形的图形属性与属性阈值之间不同的关系,按照不同的放置规则对n个图形进行放置处理以将n个图形放置到容器中,实现了有针对性的装箱,使用较为合适的放置规则将n个图形进行装箱处理,如此一来,在一定程度上可以提高容器的填充率。
47.基于上述的数据处理方法,本技术实施例提供了另一种数据处理方法,参见图5,为本技术实施例提供的另一种数据处理方法的流程示意图。图5所述的数据处理方法可由数据处理设备执行,具体可由数据处理设备的处理器执行。图5所述的数据处理方法可包括如下步骤:步骤s501、获取n个图形以及用于放置n个图形的容器。
48.步骤s502、基于每个图形的图形属性从n个图形中确定参考图形。
49.在一个实施例中,步骤s501和步骤s502中包括的一些可行的实施方式可参见图2实施例中步骤s201和步骤s202中的相关描述,在此不再赘述。
50.步骤s503、如果参考图形的图形属性与属性阈值之间存在第一数值关系,则将混合缩放放置规则确定为n个图形对应的放置规则,并将n个图形按照混合缩放放置规则放置于容器中。
51.由前述可知,将n个图形按照混合缩放放置规则放置于容器中是指:按照独立缩放放置规则对n个图形中的参考图形进行独立缩放放置处理,并根据独立缩放放置处理结果将参考图形放置于容器中;按照全局缩放放置规则对n个图形中除参考图形外的剩余的图形进行全局缩放放置处理,并根据全局缩放放置处理结果将剩余的图形放置于容器中。
52.步骤s504、如果参考图形的图形属性与属性阈值之间存在第二数值关系,则将全局缩放放置规则确定为n个图形对应的放置规则,并将n个图形按照全局缩放放置规则放置于容器中。
53.将n个图形按照全局缩放放置规则放置于容器中是指:按照全局缩放放置规则对n个图形中每个图形进行全局缩放放置处理,并个根据全局缩放放置处理结果将n个图形中每个图形放置于容器中。
54.下面分别介绍独立缩放放置处理的流程以及全局缩放放置处理的流程。针对独立缩放放置处理,令独立缩放放置处理的次数为i,i为正整数,按照独立缩放放置规则对参考图形进行独立缩放放置处理的流程包括:1)令i=1,确定第i次独立缩放放置处理对应的独立缩放比例;2)按照第i次独立缩放放置处理对应的独立缩放比例对参考图形进行独立缩放处理;3)对独立缩放处理后的参考图形进行放置处理,得到将独立缩放处理后的参考图形放置到容器中的第一放置结果;4)确定第一放置结果对应的容器填充率;5)若i小于第一预设数值,则令i=i+1,并循环执行第i次的独立缩放放置处理的流程,直至i大于或等于第预设数值为止。其中,第一预设数值是预先设定的独立缩放比例尝试次数的上限。
55.针对全局缩放放置处理,因为步骤s503和步骤s504中均涉及到全局缩放放置处理,但是被执行全局缩放放置处理的对象不同,但是全局缩放放置处理的流程是相同的。因此,为了方便描述,将n个图形中需要进行全局缩放放置处理的图形添加到第一待放置图形集中,换句话说,第一待放置图形集中的图形均是被执行全局缩放放置处理的对象。在步骤s503中,第一待放置图形集中包括n个图形中除参考图形外的剩余的图形;在步骤s504中,第一待放置图形集中包括n个图形。令全局缩放放置处理的次数为r,r为正整数;全局缩放放置处理的流程包括:1)令r=1,确定第r次全局缩放放置处理对应的全局缩放比例;2)按照第r次全局缩放放置处理对应的全局缩放比例对第一待放置图形集中每个图形进行全局缩放处理;3)对全局缩放处理后的每个图形进行放置处理,得到第一待放置图形集放置到容器中的第二放置结果;4)确定第二放置结果对应的容器填充率;5)若r小于第二预设数值,则令r=r+1,并循环执行第r次的全局缩放放置处理的流程,直到r大于或等于第二预设数值为止。其中,第二预设数值是指预先设定的全局缩放比例的尝试次数上限。
56.由步骤s503中描述可知,对参考图形进行独立缩放放置处理后,根据独立缩放放出处理结果将参考图形放置于容器中。具体实现中,从每次循环确定的第一放置结果对应的容器填充率中,确定第一容器填充率以及获取得到第一容器填充率时的独立缩放比例;按照获取到的独立缩放比例对参考图形进行缩放处理,并按照第一容器填充率对应的第一放置结果将缩放处理后的参考图形放置于容器中。其中,第一容器填充率可以是指每次循环确定的各个容器填充率中最大的容器填充率,这样一来,按照第一容器填充率对应的第一放置结果将参考图形放置到容器中,可以保证容器的容器填充率最佳。
57.在步骤s503中参考图形和n个图形中除参考图形外的剩余的图形是分别进行缩放放置处理,然后分别放置于容器中的,上述介绍了如何将参考图形放置到容器中,下面介绍如何将n个图形中除参考图形外的剩余的图形放置于容器中。具体地,按照前述全局缩放方式处理的流程对剩余的图形进行全局缩放放置处理后,得到全局缩放放置处理结果,然后根据全局缩放放置处理结果将剩余的图形放置于容器中。可选的,根据全局缩放放置处理结果将剩余的图形放置于容器中,可包括:从全局缩放放置处理的流程的每次循环确定的第二放置结果对应的容器填充率中,确定第二容器填充率,以及获取得到第二容器填充率时的全局缩放比例;按照获取到的全局缩放比例对剩余的图形进行缩放处理,并按照第二容器填充率对应的第二放置结果将缩放处理后的剩余的图形放置于容器中。其中,第二容器填充率可以是指每次循环确定出的各个第二放置结果对应的容器填充率中最大的容器填充率,依据最大的容器填充率对应的全局缩放比例和第二放置结果将剩余的图形放置到容器中,可以保证容器的最佳填充率。
58.在步骤s504中,n个图形中每个图形都是按照全局缩放放置规则放置到容器中的,也即n个图形中每个图形都要执行全局缩放放置处理,然后根据全局缩放放置处理结果将每个图形放置于容器中。对n个图形中每个图形进行全局缩放放置处理的流程可参见前述。根据全局缩放放置处理结果将每个图形放置于容器中,可以包括:针对全局缩放放置处理
的流程,从每次循环确定的第二放置结果对应的容器填充率中,确定第二容器填充率,以及获取得到第二容器填充率时的全局缩放比例;按照获取到的全局缩放比例对n个图形中每个图形进行缩放处理,并按照第二容器填充率对应的第二放置结果将缩放处理后的每个图形放置于容器中。
59.由此可见,通过步骤s503和步骤s504,n个图形中每个图形都能按照合适的方式放置到容器中,以保证容器的最佳填充率。
60.在上述独立缩放放置处理的流程和全局缩放放置处理的流程中,每次循环均涉及到要对某个图形进行放置处理,得到放置结果,比如在独立缩放放置处理的流程中,在每次循环时需要对独立缩放处理后的参考图形进行放置处理得到第一放置结果;在全局缩放放置处理的流程中,在每次循环时需要对全局缩放处理后的第一待放置图形集中每个图形进行放置处理,得到第一待放置图形集的第二放置结果。无论是独立缩放处理后的参考图形,还是全局缩放处理后的第一待放置图形集中的图形,放置处理的流程均是相同的,因此,为了方便下面介绍放置处理的流程,将需要进行放置处理的图形添加到第二待放置图形集中,第二待放置图形集中可以包括每次独立缩放放置处理流程中独立缩放处理后的参考图形;或者,每次全局缩放放置处理流程中全局缩放处理后的第一待放置图形集中的图形。
61.因此,对独立缩放处理后的参考图形进行放置处理,得到将独立缩放处理后的参考图形放置到容器中的第一放置结果,以及对全局缩放处理后的第一待放置图形集中每个图形进行放置处理,得到第一待放置图形集放置到容器中的第二放置结果,均是指:对第二待放置图形集中的图形进行放置处理,得到将第二待放置图形集放置于容器中的放置结果。可选的,对第二待放置图形集中的图形进行放置处理,得到将第二待放置图形集放置于容器中的放置结果,包括:按照第二待放置图形集中各个图形的图形面积对第二待放置图形集进行分组处理,得到按序排列的p个图形组,每个图形组包括一个或多个属于第二待放置图形集中的图形,排序靠前的图形组中各个图形的面积大于排序靠后的图形组中各个图形的图形面积,且在每个图形组中各个图形按照图形面积由大到小排序;对每个图形组进行放置处理,确定每个图形组对应的放置结果;各个图形组对应的放置结果组成将第二待放置图形中每个图形放置到容器中的放置结果。
62.其中,假设p个图形组中包括图形组j,图形组j中包括mj个图形,下面以图形组j为例,介绍如何对每个图形组进行放置处理,确定每个图形组对应的放置结果。对图形组j进行放置处理,确定图形组j对应的放置结果,可以包括:对图形组j进行交叉变换处理,确定图形组j对应的种群个体集合,种群个体集合包括多个候选个体,每个候选个体包括按照一种顺序排列的mj个图形,不同候选个体中mj个图形的排列顺序不相同;按照每个候选个体中mj个图形的排列顺序对mj个图形进行放置处理,得到每个候选个体对应的放置结果;根据每个候选个体对应的放置结果计算每个候选个体对应的平均放置重心;将平均放置重心满足重心条件的候选个体对应的放置结果作为图形组j对应的放置结果。其中,一个平均放置重心满足重心条件可以是指:该平均放置重心是所有候选个体对应的平均放置重心中的最小值。可选的,对图形组j进行交叉变换处理可以是基于遗传算法实现的,遗传算法(genetic algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,该算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类
似生物进化中的染色体基因的交叉、变异等过程。在求解较为复杂的组合优化问题时,相对一些常规的优化算法通常能够较快地获得较好的优化结果。
63.在一个实施例中,对任一候选个体来说,数据处理设备可以基于nep(no fit polygon)和最低重心原则的装箱算法来确定任一候选个体对应的放置结果。其中,nep是指一个多边形(在本技术中可以指一个图形)沿着另外一个多边形(在本技术可以指容器)的内部边界进行划动时,其边界上的某个参考点的轨迹所形成的多边形,在装箱问题中,nep定义了将一个多边形放置到容器时的可行区域。具体实现中,数据处理设备基于nep和最低重心原则的装箱算法来确定任一候选个体的放置结果,可以包括:针对多个候选个体中的任一候选个体,依序取出任一候选个体中每个图形,计算每个图形的候选放置角度;基于最低重心原则和每个图形的候选放置角度确定每个图形在容器中的放置位置,并按照确定出的放置位置将每个图形放置在容器中,便可以得到任一候选个体对应的放置结果。
64.现有技术中,基于nep和最低重心原子的装箱算法也被用来将n个图形填充到容器中,但是实践证明,这种装箱算法虽然可以得到合理的放置结果,但是计算时间长,容器填充率较低。另外本技术考虑到,在游戏美术制作2uv场景等多数场景中,图形是允许形变的,可以在满足原始相对比例大小的基础上,将输入的图形进行放大、缩小等操作,以极致利用容器的空间,因此,提出了图5所述的数据处理方法,采用图5所述的数据处理方法将n个图形放置于容器中可以保证较高的容器填充率。
65.在一个实施例中,本技术无论是在独立缩放放置处理还是全局缩放放置处理时,均加入了对称保持策略,使得原本保持对称的图形在缩放时采用相同的缩放比例,从而保持了输入的图形的相对大小模式。加入了对称保持策略后,n个图形在容器中的摆放会更加整齐,对称的图形趋于聚合在一起,并保持一致的缩放比例。参见图6a和图6b,为本技术实施提供的两种n个图形放置于容器中的示意图,在图6a中601区域内的图形是对称的,这些图形趋于聚合在一起,并且这些图形保持了相同的缩放比例,同理的,602区域内的图形是对称的;在图6b中,603中的图形相互对称以及604中的图形相互对称。
66.应当理解的,对第二待放置图形集中的图形进行放置处理,得到将第二待放置图形集放置于容器中的放置结果这个步骤无论是在独立缩放放置处理的流程中,还是在全局缩放放置处理的流程中,都会被执行很多次,为了提供n个图形放置到容器中的最终执行效率,自然想到要提高该步骤的计算效率。为了提高该步骤的计算效率,本技术在执行该步骤时引入了鲁棒几何计算中的快速舍入(snap rounding)的技巧,在鲁棒几何计算的研究中,快速舍入可以归类为一种有限精度逼近技术,是一种将线段的任意精度排列转换为固定精度表示的方法。快速舍入在本技术中的应用主要是用于约束任意一个图形的顶点数据中的小数位数,比如在将任意一个图形放置到容器时,计算出该任意一个图形的顶点坐标是n个小数位,n个小数位在计算该任意图形的放置位置或者其他信息时,需要耗费更多的计算时间,引入快速舍入技巧来规定顶点坐标的小数位为m,m远小于n,这样可以节省计算时间。为了满足快速舍入后的图形在放置于容器的过程中不与其他图形产生重叠,对于任意一个需要进行快速舍入的图形a1,要满足快速舍入后得到的图形a2小于该任意一个图形a1。为满足该条件,在进行快速舍入之前,需要加额外半个像素距离外扩得到a3,再对a3进行快速舍入,得到有限精度的a2(即a1-》a3-》a2)。实践证明,在采用有限精度逼近技巧后,将n个图形放置于容器的整体时间可节省仅20%。
67.本技术实施例上述的数据处理方法可以是基于一个软件实现的,比如在数据处理设备中集成一个装箱算法,数据处理设备执行该装箱算法以实现将n个图形放置于容器中。该装箱算法的输入为n个图形和用于放置n个图形的容器,在执行装箱算法之前,首先,将待放置的n个图形按照图形面积从大到小排列,选出图形面积大于n个图形的总面积5%,或者有向包围盒的长边(也就是图形的长边长度)大于容器长边长度55%的图形作为参考图形,选出的参考图形也叫做大岛;若选出的参考图形的图形面积占n个图形的总面积的比值大于55%,则对参考图形执行独立缩放放置处理以及对除参考图形外的剩余的图形执行全局缩放放置处理;否则,则对n个图形中的每个图形执行全局缩放放置处理;装箱算法可以包括三个算法模块,分别是基础公共算法模块、独立缩放算法模块以及全局缩放算法模块,基础公共算法模块是是独立缩放算法模块和全局缩放算法模块共享的、基于遗传算法、nep和全局最低重心原则设计的。
68.基础公共算法模块的算法流程为:1)将待放置的已缩放的图形(待放置的已缩放的图形包括已进行独立缩放处理后的参考图形、已进行全局缩放处理的n个图形,以及n个图形中除参考图形外的剩余的图形,此处的待放置的已缩放的图形相当于前述提到的第二待放置图形集),进行图形面积从大到小排列,取前m个图形作为基础个体,根据遗传算法的交叉、变异、交换等基础操作,生成种群的n个候选个体,每个候选个体为m个图形组成的序列,在不同候选个体中m个图形的排列顺序不同,种群的n个候选个体可以表示为,表示n个候选个体中第i个候选个体,i的取值为大于或等于1,且小于或等于n;2)对种群的每个候选个体,基于nep和最低重心原则,依序取出候选个体中的多个图形,计算每个图形的候选角度,根据nep计算每个图形的放置位置并更新容器的空间,直到中每个图形均放置到容器中。若发现无法按照序列中各个图形的排列顺序得到合法的放置结果,则跳过并处理下一个候选个体;3)通过步骤2),可以得到多个合法的放置结果,从得到多个合法的放置结果中选取平均重心最低的候选个体,作为种群的最佳候选个体,也就是对m个图形的最佳装箱结果,然后更新剩余的容器空间和待装箱的已缩放的图形,若存在还未装箱的已缩放的图形,则跳转至步骤1),否则基础公共算法模块的算法流程。
69.独立缩放算法模块的算法流程为:1)假设选取出的参考图形的数量为w个,分别表示为,并设置独立缩放比例尝试次数上限;2)若独立缩放比例次数达到上限,则跳转至步骤5),否则更新当前的独立缩放比例组合,独立缩放比例组合是将每个参考图形的独立缩放比例组合在一起得到的,独立缩放比例组合可以表示为;3)对当前独立缩放处理后的w个参考图形执行基础公共算法模块;4)计算当前的独立缩放比例组合对应的容器填充率(相当于前述提到的第一放置结果对应的容器填充率),更新全局最佳的容器填充率,跳转到步骤2);5)输出全局最佳的容器填充率对应的放置结果(相当于前述提到的,获取第一放
置结果对应的容器填充率中第一容器填充率,并按照第一容器填充率对应的第一放置结果放置参考图形)。
70.全局缩放算法模块的算法流程:1)若已执行了独立缩放算法模块,则根据已放置好的参考图形,更新剩余的待放置的图形,将剩余的图形作为全局缩放算法模块的执行对象;如果未执行独立缩放算法模块,则将n个待放置的图形均作为全局缩放算法模块的执行对象。更新容器的剩余的空间,并设置全局缩放比例尝试次数上限;2)若全局缩放比例次数达到尝试次数上限,跳转至步骤5),否则更新当前的全局缩放比例为,对执行对象按照该全局缩放比例进行统一缩放;3)对按照缩放后的执行对象执行基础公共算法模块;4)计算当前的全局缩放比例对应的容器填充率,并更新全局最佳的容器填充率,跳转至步骤2);5)输出全局最佳的容器填充率对应的放置结果(相当于前述提到的,获取第二放置结果对应的容器填充率中第二容器填充率,并按照第二容器填充率对应的第二放置结果放置n个图形中的剩余的图形或者n个图形)。
71.本技术实施例中,数据处理设备采用上述的装箱算法将n个图形放置到容器中,可以针对参考图形的图形属性与属性阈值之间不同的关系,按照不同的放置规则对n个图形进行放置处理以将n个图形放置到容器中,实现了有针对性的装箱,使用较为合适的放置规则将n个图形进行装箱处理,如此一来,在一定程度上可以提高容器的填充率。
72.基于上述的数据处理方法实施例,本技术实施例提供了一种数据处理装置。参见图7,为本技术实施例提供的一种数据处理装置的结构示意图,图7所述的数据处理装置可运行如下单元:获取单元701,用于获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;确定单元702,用于基于每个图形的图形属性从所述n个图形中确定参考图形;所述确定单元702,还用于根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;放置单元703,用于按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
73.在一个实施例中,所述至少一个放置规则包括混合缩放放置规则和全局缩放放置规则;所述确定单元702在根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则时,执行如下步骤:如果所述参考图形的图形属性与属性阈值之间存在第一数值关系,则将所述混合缩放放置规则确定为所述n个图形对应的放置规则;如果所述参考图形的图形属性与所述属性阈值存在第二数值关系,则将所述全局缩放放置规则确定为所述n个图形对应的放置规则。
74.在一个实施例中,所述每个图形的图形属性包括所述每个图形的图形面积,所述确定单元702在基于每个图形的图形属性从所述n个图形中确定参考图形时,执行如下步
骤:基于所述每个图形的图形面积确定所述n个图形的总面积;确定所述每个图形的图形面积与所述总面积之间的面积差异;将所述n个图形中第一图形确定为参考图形,所述第一图形的图形面积与所述总面积之间的面积差异满足面积差异阈值。
75.在一个实施例中,所述每个图形的图形属性包括所述每个图形的图形长边长度,所述确定单元702在基于每个图形的图形属性从所述n个图形中确定参考图形时,执行如下步骤:从所述n个图形中确定多个候选的图形,所述多个候选的图形包括:所述n个图形;或者,所述多个候选的图形包括所述n个图形中除第一图形外的剩余图形,所述第一图形是指所述n个图形中图形面积与所述n个图形的总面积之间的面积差异满足面积差异阈值的任一图形;确定所述多个候选的图形中每个图形的图形长边长度与容器长边长度之间的长度差异;将所述多个候选的图形中的第二图形确定为所述参考图形,所述第二图形的图形长边长度与所述容器长边长度之间的长度差异满足长度差异阈值。
76.在一个实施例中,所述属性阈值是基于所述n个图形的总面积和所述面积差异阈值确定的,所述确定单元702还用于:若所述参考图形的图形面积大于所述属性阈值,则确定所述参考图形的图形属性与所述属性阈值之间存在第一数值关系;若所述参考图形的图形面积小于或等于所述属性阈值,则确定所述参考图形的图形属性与所述属性阈值之间存在第二数值关系。
77.在一个实施例中,若所述至少一个放置规则包括混合缩放放置规则,则所述n个图形中除所述参考图形外的剩余的图形需要进行全局缩放放置处理;若所述至少一个放置规则包括全局缩放放置规则,则所述n个图形均需要进行全局缩放放置处理;将需要进行全局缩放放置处理的图形添加到第一待放置图形集中,以及令全局缩放放置处理的次数为r,r为正整数;全局缩放放置处理的流程包括:令r=1,确定第r次全局缩放放置处理对应的全局缩放比例;按照所述第r次全局缩放放置处理对应的全局缩放比例对所述第一待放置图形集中每个图形进行全局缩放处理;对全局缩放处理后的所述第一待放置图形集中的每个图形进行放置处理,得到所述第一待放置图形集放置于所述容器中的第二放置结果;确定所述第二放置结果对应的容器填充率;若r小于第二预设数值,则令r=r+1,并循环执行第r次全局缩放放置处理的流程,直到r大于或等于所述第二预设数值为止。
78.在一个实施例中,若所述n个图形对应的放置规则包括所述混合缩放放置规则,所述混合缩放放置规则包括独立缩放放置规则和全局缩放放置规则,则所述放置单元703在按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中时,执行如下步骤:按照所述独立缩放放置规则对所述参考图形进行独立缩放放置处理,并根据独立
缩放放置处理结果将所述参考图形放置于所述容器中;按照所述全局缩放放置规则对所述n个图形中除所述参考图形外的剩余的图形进行全局缩放放置处理,并根据全局缩放放置处理结果将所述剩余的图形放置于所述容器中。
79.在一个实施例中,若所述n个图形对应的放置规则是指所述全局缩放放置规则,则所述放置单元703在按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中时,执行如下步骤:按照所述全局缩放放置规则对所述n个图形中每个图形进行全局缩放放置处理,并根据全局缩放放置处理结果将所述n个图形中每个图形放置于所述容器中。
80.在一个实施例中,令独立缩放放置处理的次数为i,i为正整数;按照所述独立缩放放置规则对所述参考图形进行独立缩放放置处理的流程包括:令i=1,确定第i次独立缩放放置处理对应的独立缩放比例;按照所述第i次独立缩放放置处理对应的独立缩放比例对所述参考图形进行独立缩放处理;对独立缩放处理后的参考图形进行放置处理,得到将独立缩放处理后的参考图形放置于所述容器中的第一放置结果;确定所述第一放置结果对应的容器填充率;若i小于第一预设数值,则令i=i+1,并循环执行第i次独立缩放放置处理的流程,直到i大于或等于所述第一预设数值为止。
81.在一个实施例中,所述放置单元703在根据独立缩放放置处理结果将所述参考图形放置于所述容器中时,执行如下步骤:从每次循环确定的第一放置结果对应的容器填充率中,确定第一容器填充率,以及获取得到所述第一容器填充率时的独立缩放比例;按照获取到的独立缩放比例对所述参考图形进行缩放处理,并按照所述第一容器填充率对应的第一放置结果将缩放处理后的参考图形放置于所述容器中。
82.在一个实施例中,所述放置单元703在根据全局缩放放置处理结果将所述剩余的图形放置于所述容器中时,执行如下步骤:从每次循环确定的第二放置结果对应的容器填充率中,确定第二容器填充率,以及获取得到所述第二容器填充率时的全局缩放比例;按照获取到的全局缩放比例对所述剩余的图形进行缩放处理,并按照所述第二容器填充率对应的第二放置结果将缩放处理后的剩余的图形放置于所述容器中。
83.在一个实施例中,将需要进行放置处理的图形添加至第二待放置图形集中;所述第二待放置图形集中包括每次独立缩放放置处理的流程中独立缩放处理后的参考图形;或者,所述第二放置图形集中包括在每次全局缩放放置处理的流程中全局缩放处理后的第一待放置图形集中的图形;所述放置单元703在对所述第二待放置图形集中的图形进行放置处理,得到将所述第二待放置图形集放置于所述容器中的放置结果时,执行如下步骤:按照所述第二待放置图形集中各个图形的图形面积对所述第二待放置图形集进行分组处理,得到按序排列的p个图形组,p为正整数,每个图形组中包括一个或多个属于所述第二待放置图形集中的图形;排序靠前的图形组中各个图形的图形面积大于排序靠后的
图形组中各个图形的图形面积,在每个图形组中各个图形按照图形面积由大到小排序;对每个图形组进行放置处理,确定每个图形组对应的放置结果;各个图形组对应的放置结果组成将所述第二待放置图形集中每个图形放置于所述容器中的放置结果。
84.在一个实施例中,若所述p个图形组包括图形组j,所述图形组j中包括mj个图形,mj为正整数,放置单元703在图形组j进行放置处理,确定所述图形组j对应的放置结果时,执行如下步骤:对所述图形组j进行交叉变换处理,确定所述图形组j对应的种群个体集合,所述种群个体集合包括多个候选个体,每个候选个体包括按照一种顺序排列的mj个图形;不同候选个体中mj个图形的排列顺序不相同;按照所述每个候选个体中的mj个图形的排列顺序对所述mj个图形进行放置处理,得到每个候选个体对应的放置结果;根据所述每个候选个体对应的放置结果计算所述每个候选个体对应的平均放置重心;将平均放置重心满足重心条件的候选个体对应的放置结果作为所述图形组j对应的放置结果。
85.在一个实施例中,所述放置单元703在按照所述每个候选个体中的mj个图形的排列顺序对所述mj个图形进行放置处理,得到所述每个候选个体对应的放置结果时,执行如下步骤:针对所述多个候选个体中的任一候选个体,依序取出所述任一候选个体中每个图形,计算每个图形的候选放置角度;基于最低重心原则和所述每个图形的候选放置角度确定所述每个图形在所述容器中的放置位置,并按照确定出的放置位置将所述每个图形放置在所述容器中,得到所述任一候选个体对应的放置结果。
86.根据本技术的一个实施例,图2和图5所示的数据处理方法所涉及各个步骤可以是由图7所示的数据处理装置中的各个单元来执行的。例如,图2所述的步骤s202和步骤s203均可由图7所示的数据处理装置中的确定单元702来执行,步骤s201可由图7所述的数据处理装置中的获取单元701来执行,步骤s204可由图7所述的数据处理装置中的放置单元703来执行;再如,图5所述步骤s501可由图7所述的数据处理装置中的获取单元701来执行,步骤s502可由图7所述的数据处理装置中的确定单元702来执行,步骤s503和步骤s504可由图7所述的数据处理装置中的确定单元702和放置单元703来执行。
87.根据本技术的另一个实施例,图7所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,基于数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
88.根据本技术的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储
介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2以及图5所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的数据处理装置,以及来实现本技术实施例数据处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于数据处理设备中,并在其中运行。
89.本技术实施例中,在需要将n个图形放置到容器中时,首先基于每个图形的图形属性从n个图形中确定参考图形;然后根据参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定适合n个图形的放置规则,最后按照确定出的放置规则将n个图形放置于容器中。应当理解的,采用适合的放置规则对n个图形进行放置,实现了针对性的放置处理,可有效提高容器填充率。
90.参见图8,为本技术实施例提供的一种数据处理设备的结构示意图。图8所述的数据处理设备可包括处理器801、输入接口802、输出接口803以及计算机存储介质804。其中,处理器801、输入接口802、输出接口803以及计算机存储介质804可通过总线或其他方式连接。
91.计算机存储介质804可以存储在消息处理设备的存储器中,所述计算机存储介质804用于存储计算机程序,所述处理器801用于执行所述计算机存储介质804存储的计算机程序。处理器801(或称cpu(central processing unit,中央处理器))是数据处理设备的计算核心以及控制核心,其适于实现一条或多条计算机程序,具体适于加载并执行:获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;基于每个图形的图形属性从所述n个图形中确定参考图形;根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
92.本技术实施例中,在需要将n个图形放置到容器中时,首先基于每个图形的图形属性从n个图形中确定参考图形;然后根据参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定适合n个图形的放置规则,最后按照确定出的放置规则将n个图形放置于容器中。应当理解的,采用适合的放置规则对n个图形进行放置,实现了针对性的放置处理,可有效提高容器填充率。
93.本技术实施例还提供了一种计算机存储介质(memory),所述计算机存储介质是数据处理设备的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括数据处理设备的内置存储介质,当然也可以包括数据处理设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了数据处理设备的操作系统。并且,在该存储空间中还存放了适于被处理器801加载并执行的一条或多条的计算机程序。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
94.在一个实施例中,所述计算机存储介质中存储的一条或多条计算机程序可有处理器801加载并执行:获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;
基于每个图形的图形属性从所述n个图形中确定参考图形;根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
95.在一个实施例中,所述至少一个放置规则包括混合缩放放置规则和全局缩放放置规则;所述处理器801在根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则时,执行如下步骤:如果所述参考图形的图形属性与属性阈值之间存在第一数值关系,则将所述混合缩放放置规则确定为所述n个图形对应的放置规则;如果所述参考图形的图形属性与所述属性阈值存在第二数值关系,则将所述全局缩放放置规则确定为所述n个图形对应的放置规则。
96.在一个实施例中,所述每个图形的图形属性包括所述每个图形的图形面积,所述处理器801在基于每个图形的图形属性从所述n个图形中确定参考图形时,执行如下步骤:基于所述每个图形的图形面积确定所述n个图形的总面积;确定所述每个图形的图形面积与所述总面积之间的面积差异;将所述n个图形中第一图形确定为参考图形,所述第一图形的图形面积与所述总面积之间的面积差异满足面积差异阈值。
97.在一个实施例中,所述每个图形的图形属性包括所述每个图形的图形长边长度,所述处理器801在基于每个图形的图形属性从所述n个图形中确定参考图形时,执行如下步骤:从所述n个图形中确定多个候选的图形,所述多个候选的图形包括所述n个图形;或者,所述多个候选的图形包括所述n个图形中除第一图形外的剩余图形,所述第一图形是指所述n个图形中图形面积与所述n个图形的总面积之间的面积差异满足面积差异阈值的任一图形;确定所述多个候选的图形中每个图形的图形长边长度与容器长边长度之间的长度差异;将所述多个候选的图形中的第二图形确定为所述参考图形,所述第二图形的图形长边长度与所述容器长边长度之间的长度差异满足长度差异阈值。
98.在一个实施例中,所述属性阈值是基于所述n个图形的总面积和所述面积差异阈值确定的,所述处理器801还用于:若所述参考图形的图形面积大于所述属性阈值,则确定所述参考图形的图形属性与所述属性阈值之间存在第一数值关系;若所述参考图形的图形面积小于或等于所述属性阈值,则确定所述参考图形的图形属性与所述属性阈值之间存在第二数值关系。
99.在一个实施例中,若所述至少一个放置规则包括混合缩放放置规则,则所述n个图形中除所述参考图形外的剩余的图形需要进行全局缩放放置处理;若所述至少一个放置规则包括全局缩放放置规则,则所述n个图形均需要进行全局缩放放置处理;将需要进行全局缩放放置处理的图形添加到第一待放置图形集中,以及令全局缩放放置处理的次数为r,r为正整数;全局缩放放置处理的流程包括:
令r=1,确定第r次全局缩放放置处理对应的全局缩放比例;按照所述第r次全局缩放放置处理对应的全局缩放比例对所述第一待放置图形集中每个图形进行全局缩放处理;对全局缩放处理后的所述第一待放置图形集中的每个图形进行放置处理,得到所述第一待放置图形集放置于所述容器中的第二放置结果;确定所述第二放置结果对应的容器填充率;若r小于第二预设数值,则令r=r+1,并循环执行第r次全局缩放放置处理的流程,直到r大于或等于所述第二预设数值为止。
100.在一个实施例中,若所述n个图形对应的放置规则包括所述混合缩放放置规则,所述混合缩放放置规则包括独立缩放放置规则和全局缩放放置规则,则所述处理器801在按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中时,执行如下步骤:按照所述独立缩放放置规则对所述参考图形进行独立缩放放置处理,并根据独立缩放放置处理结果将所述参考图形放置于所述容器中;按照所述全局缩放放置规则对所述n个图形中除所述参考图形外的剩余的图形进行全局缩放放置处理,并根据全局缩放放置处理结果将所述剩余的图形放置于所述容器中。
101.在一个实施例中,若所述n个图形对应的放置规则是指所述全局缩放放置规则,则所述处理器801在按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中时,执行如下步骤:按照所述全局缩放放置规则对所述n个图形中每个图形进行全局缩放放置处理,并根据全局缩放放置处理结果将所述n个图形中每个图形放置于所述容器中。
102.在一个实施例中,令独立缩放放置处理的次数为i,i为正整数;按照所述独立缩放放置规则对所述参考图形进行独立缩放放置处理的流程包括:令i=1,确定第i次独立缩放放置处理对应的独立缩放比例;按照所述第i次独立缩放放置处理对应的独立缩放比例对所述参考图形进行独立缩放处理;对独立缩放处理后的参考图形进行放置处理,得到将独立缩放处理后的参考图形放置于所述容器中的第一放置结果;确定所述第一放置结果对应的容器填充率;若i小于第一预设数值,则令i=i+1,并循环执行第i次独立缩放放置处理的流程,直到i大于或等于所述第一预设数值为止。
103.在一个实施例中,所述处理器801在根据独立缩放放置处理结果将所述参考图形放置于所述容器中时,执行如下步骤:从每次循环确定的第一放置结果对应的容器填充率中,确定第一容器填充率,以及获取得到所述第一容器填充率时的独立缩放比例;按照获取到的独立缩放比例对所述参考图形进行缩放处理,并按照所述第一容器填充率对应的第一放置结果将缩放处理后的参考图形放置于所述容器中。
104.在一个实施例中,所述处理器801在根据全局缩放放置处理结果将所述剩余的图形放置于所述容器中时,执行如下步骤:
从每次循环确定的第二放置结果对应的容器填充率中,确定第二容器填充率,以及获取得到所述第二容器填充率时的全局缩放比例;按照获取到的全局缩放比例对所述剩余的图形进行缩放处理,并按照所述第二容器填充率对应的第二放置结果将缩放处理后的剩余的图形放置于所述容器中。
105.在一个实施例中,将需要进行放置处理的图形添加至第二待放置图形集中;所述第二待放置图形集中包括每次独立缩放放置处理的流程中独立缩放处理后的参考图形;或者,所述第二放置图形集中包括在每次全局缩放放置处理的流程中全局缩放处理后的第一待放置图形集中的图形;所述处理器801在对所述第二待放置图形集中的图形进行放置处理,得到将所述第二待放置图形集放置于所述容器中的放置结果时,执行如下步骤:按照所述第二待放置图形集中各个图形的图形面积对所述第二待放置图形集进行分组处理,得到按序排列的p个图形组,p为正整数,每个图形组中包括一个或多个属于所述第二待放置图形集中的图形;排序靠前的图形组中各个图形的图形面积大于排序靠后的图形组中各个图形的图形面积,在每个图形组中各个图形按照图形面积由大到小排序;对每个图形组进行放置处理,确定每个图形组对应的放置结果;各个图形组对应的放置结果组成将所述第二待放置图形集中每个图形放置于所述容器中的放置结果。
106.在一个实施例中,若所述p个图形组包括图形组j,所述图形组j中包括mj个图形,mj为正整数,处理器801在图形组j进行放置处理,确定所述图形组j对应的放置结果时,执行如下步骤:对所述图形组j进行交叉变换处理,确定所述图形组j对应的种群个体集合,所述种群个体集合包括多个候选个体,每个候选个体包括按照一种顺序排列的mj个图形;不同候选个体中mj个图形的排列顺序不相同;按照所述每个候选个体中的mj个图形的排列顺序对所述mj个图形进行放置处理,得到每个候选个体对应的放置结果;根据所述每个候选个体对应的放置结果计算所述每个候选个体对应的平均放置重心;将平均放置重心满足重心条件的候选个体对应的放置结果作为所述图形组j对应的放置结果。
107.在一个实施例中,所述处理器801在按照所述每个候选个体中的mj个图形的排列顺序对所述mj个图形进行放置处理,得到所述每个候选个体对应的放置结果时,执行如下步骤:针对所述多个候选个体中的任一候选个体,依序取出所述任一候选个体中每个图形,计算每个图形的候选放置角度;基于最低重心原则和所述每个图形的候选放置角度确定所述每个图形在所述容器中的放置位置,并按照确定出的放置位置将所述每个图形放置在所述容器中,得到所述任一候选个体对应的放置结果。
108.本技术实施例中,在需要将n个图形放置到容器中时,首先基于每个图形的图形属性从n个图形中确定参考图形;然后根据参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定适合n个图形的放置规则,最后按照确定出的放置规则将n个图形放
置于容器中。应当理解的,采用适合的放置规则对n个图形进行放置,实现了针对性的放置处理,可有效提高容器填充率。
109.本技术实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品中包括计算机程序,所述计算机程序存储在计算机存储介质中;所述计算机程序被处理器801加载并执行:获取n个图形及用于放置所述n个图形的容器,n为大于2的整数;基于每个图形的图形属性从所述n个图形中确定参考图形;根据所述参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定所述n个图形对应的放置规则;按照所述n个图形对应的放置规则将所述n个图形放置于所述容器中。
110.本技术实施例中,在需要将n个图形放置到容器中时,首先基于每个图形的图形属性从n个图形中确定参考图形;然后根据参考图形的图形属性与属性阈值之间的关系,从至少一个放置规则中确定适合n个图形的放置规则,最后按照确定出的放置规则将n个图形放置于容器中。应当理解的,采用适合的放置规则对n个图形进行放置,实现了针对性的放置处理,可有效提高容器填充率。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1