随机元素生成方法及随机元素生成装置与流程

文档序号:15519332发布日期:2018-09-25 19:02阅读:1535来源:国知局

本发明涉及画面处理领域,特别是涉及一种画面上的随机元素生成方法及随机元素生成装置。



背景技术:

随着科技的发展,现有的众多游戏均与虚拟现实(virtualreality)和增强现实(augmentedreality)进行结合。尤其是ar游戏,其可在传统的地图要素基础上,制定出特定的游戏地图数据,从而使得游戏用户可以得到独特的个性化游戏体验。

由于ar游戏的游戏地图需要在传统地图上增加一些随机元素,如道路旁的树木,道路中的汽车以及河流中的小船等,以增加游戏地图中的精细化数据,提高用户的游戏体验。但是如上述随机元素通过人工进行绘制,效果虽然很好,但是绘制效率极其低下。如上述随机元素通过随机数算法进行绘制,虽然可提高游戏地图的绘制效率,但同时绘制的错误率也会提高,如树木可能会长在道路中,同时游戏地图中的随机元素设计与城市的繁华程度关联较小,从而导致游戏地图中的随机元素的模拟真实性较低。



技术实现要素:

本发明实施例提供一种绘制效率较高且具有较高的模拟真实性的随机元素生成方法及随机元素生成装置;以解决现有的随机元素生成方法及随机元素生成装置的绘制效率较低且模拟真实性较低的技术问题。

本发明实施例提供一种随机元素生成方法,其包括:

获取随机元素生成区域,并使用设定矩形框对所述随机元素生成区域进行分割操作,以获取多个随机元素分割区域;

根据设定疏密度,生成每个所述随机元素分割区域中的随机元素位置;以及

基于每个所述随机元素分割区域中的随机元素位置以及所述随机元素分割区域中的避让区域,在每个所述随机元素分割区域中生成随机元素。

本发明实施例还提供一种随机元素生成装置,其包括:

随机元素分割区域获取模块,用于获取随机元素生成区域,并使用设定矩形框对所述随机元素生成区域进行分割操作,以获取多个随机元素分割区域;

随机元素位置生成模块,用于根据设定疏密度,生成每个所述随机元素分割区域中的随机元素位置;以及

随机元素生成模块,用于基于每个所述随机元素分割区域中的随机元素位置以及所述随机元素分割区域中的避让区域,在每个所述随机元素分割区域中生成随机元素。

相较于现有技术,本发明的随机元素生成方法及随机元素生成装置基于随机元素分割区域进行随机元素的设置,同时通过随机元素的位置以及随机元素分割区域中的避让区域,对随机元素进行筛选,从而提高了随机元素的绘制效率,且随机元素的模拟真实性较高;解决了现有的随机元素生成方法及随机元素生成装置的绘制效率较低且模拟真实性较低的技术问题。

附图说明

图1为本发明的随机元素生成方法的第一实施例的流程图;

图2为本发明的随机元素生成方法的第一实施例的步骤s103的流程图;

图3为本发明的随机元素生成方法的第二实施例的流程图;

图4为本发明的随机元素生成装置的第一实施例的结构示意图;

图5为本发明的随机元素生成装置的第一实施例的随机元素位置生成模块的结构示意图;

图6为本发明的随机元素生成装置的第一实施例的随机元素生成模块的结构示意图;

图7为本发明的随机元素生成装置的第二实施例的结构示意图;

图8为本发明的随机元素生成装置的第二实施例的随机元素生成模块的结构示意图;

图9a为本发明的随机元素生成方法及随机元素装置的具体实施例的流程图;

图9b和图9c为本发明的随机元素生成方法及随机元素装置的具体实施例的示意图;

图10为本发明随机元素生成装置所在的电子设备的工作环境结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

本发明的随机元素生成方法及随机元素生成装置可设置在各种用于生成随机地图中的随机元素(如道路旁的树木,道路中的汽车以及河流中的小船等)的电子设备中,该电子设备包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(pda)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。该电子设备优选为生成ar游戏地图的游戏服务器。本发明的电子设备通过随机元素分割区域以及避让区域的设置,有效的进行了随机元素的设置,提升了随机元素的绘制效率以及随机元素的模拟真实性。

请参照图1,图1为本发明的随机元素生成方法的第一实施例的流程图。本实施例的随机元素生成方法可使用上述的电子设备进行实施,本实施例的随机元素生成方法包括:

步骤s101,获取随机元素生成区域,并使用设定矩形框对随机元素生成区域进行分割操作,以获取多个随机元素分割区域;

步骤s102,根据设定疏密度,生成每个随机元素分割区域中的随机元素位置;

步骤s103,基于每个随机元素分割区域中的随机元素位置以及随机元素分割区域中的避让区域,在每个随机元素分割区域中生成随机元素。

下面详细说明本实施例的随机元素生成方法的各步骤的具体流程。

在步骤s101中,随机元素生成装置获取随机元素生成区域,该随机元素生成区域是指用于生成随机元素的游戏地图区域,该游戏地图区域可为现有传统地图的一部分,如北京市的地图区域或深圳市的地图区域等。

随后随机元素生成装置使用设定矩形框对上述随机元素生成区域进行分割操作,以获取多个随机元素分割区域。由于随机元素生成区域的面积较大,一次性对整个随机元素生成区域进行随机元素的生成计算,消耗的资源较多,且无法进行多线程计算,因此导致整个随机元素的绘制效率较低。

因此在本实施例中使用设定矩形框将上述随机元素生成区域分割为多个随机元素分割区域,从而可对每个随机元素分割区域使用单独的线程进行随机元素的绘制操作,即每个随机元素分割区域中的随机元素的绘制操作均单独进行,进而提高了随机元素绘制的效率。

如克孜勒苏柯尔克孜自治州的行政区划面积约为11.7万平方公里,如直接对该克孜勒苏柯尔克孜自治州的地图区域进行随机元素的生成操作,则会消耗较大的系统资源,且绘制时间较长。如将上述克孜勒苏柯尔克孜自治州的地图区域使用25km*25km的设定矩形框分割为多个随机元素分割区域,随后对每个随机元素分割区域单独进行随机元素的绘制操作,则可大大提高随机元素的绘制效率。随后转到步骤s102。

在步骤s102中,随机元素生成装置获取设定疏密度,该设定疏密度为设定随机元素分割区域中的随机元素的参数。当该疏密度较大时,每个随机元素分割区域中的随机元素较少;当该疏密度较小时,每个随机元素分割区域中的随机元素较多。

随后随机元素生成装置根据设定疏密度,生成每个随机元素分割区域中的随机元素位置。具体的,随机元素生成装置可根据设定疏密度,确定每个随机元素分割区域中的单一随机元素设置区域。这里的单一随机元素设置区域为随机元素分割区域中设置一个随机元素的区域。

具体的,随机元素生成装置可根据设定横向疏密度,确定每个随机元素分割区域中的每个单一随机元素设置区域的横向起始坐标以及横向结束坐标。

如offsetx=(dl-dr)/dx;

xnstart=(n-1)*offsetx;

xnend=n*offsetx;

其中dl为随机元素分割区域的横向起始坐标,dr为随机元素分割区域的横向结束坐标,dx为随机元素分割区域的设定横向疏密度;xnstart为第n列的单一随机元素设置区域的横向起始坐标;xnend为第n列的单一随机元素设置区域的横向结束坐标。

随机元素生成装置可根据设定纵向疏密度,确定每个随机元素分割区域中的每个单一随机元素设置区域的纵向起始坐标以及纵向结束坐标。

如offsety=(du-dd)/dy;

ynstart=(n-1)*offsety;

ynend=n*offsety;

其中du为随机元素分割区域的纵向起始坐标,dr为随机元素分割区域的纵向结束坐标,dy为随机元素分割区域的设定纵向疏密度;ynstart为第n行的单一随机元素设置区域的纵起始坐标;ynend为第n行的单一随机元素设置区域的纵向结束坐标。

这里的计算坐标系优选采用墨卡托投影坐标系,这样可以进一步提高单一随机元素设置区域的坐标精度以及减少单一随机元素设置区域的存储数据量。

随后随机元素生成装置在上述生成的每个单一随机元素设置区域中随机生成一随机元素位置,即生成的随机元素可位于单一随机元素设置区域中的任意位置。随后转到步骤s103。

在步骤s103中,随机元素生成装置获取基于步骤s102生成的每个随机元素分割区域中的随机元素位置以及随机元素分割区域中的避让区域。由于并非在随机元素生成区域以及对应的随机元素分割区域中的所有区域均可设置随机元素,如不能到道路上设置树木,不能在水中设置汽车等。因此需要在随机元素分割区域中设置对应的避让区域。

这样随机元素生成装置可在处于非避让区域的随机元素位置上设置随机元素,从而在每个随机元素分割区域中生成随机元素。

请参照图2,图2为本发明的随机元素生成方法的第一实施例的步骤s103的流程图。具体的,为了提高随机元素的多样性,这里可设置不同种类的随机元素。这样在随机元素分割区域中生成不同种类的随机元素的步骤可包括:

步骤s201,确定随机元素分割区域的随机元素设置数量。由于随机元素分割区域中存在避让区域,因此并非每个随机元素分割区域中均存在相同数量随机元素,因此在本步骤中,随机元素生成装置需根据每个随机元素分割区域中的随机元素位置以及随机元素分割区域中的避让区域,确定每个随机元素分割区域中的随机元素设置数量。随后转到步骤s202。

步骤s202,随机元素生成装置根据步骤s201获取的随机元素设置数量以及不同种类的随机元素设置概率,确定不同种类的随机元素的随机元素设置数量。如在某个随机元素分割区域中需要设置10颗树,其中普通树的设置概率为70%,组合树的设置概率为10%,连续树的设置概率为20%,则可确定组合树的设置数量为1,连续树的设置数量为2。随后转到步骤s203。

步骤s203,随机元素生成装置根据不同种类的随机元素的随机元素设置数量,在随机元素分割区域的所有随机元素设置位置中选择特定种类的随机元素的随机元素设置位置,并在随机元素设置位置设置特定种类的随机元素。

如直接在随机元素分割区域的随机元素设置位置上按不同种类的随机元素的设置数量进行随机元素的设置,则需要对每个随机元素设置位置进行随机元素的设置种类的判断。

在本实施例中,随机元素生成装置会先确定一随机元素分割区域的所有随机元素设置位置的位置数组。如在某个随机元素分割区域中具有10个随机元素设置位置,则可设置一具有10个位置的数组。

随后随机元素生成装置根据特定种类的随机元素的随机元素设置数量,随机选择随机元素分割区域的随机元素设置位置设置该特定种类的随机元素。最后将该设置有特定种类的随机元素的设置位置从位置数组中删除,直至所有特定种类的随机元素设置完毕。这样只需要对随机元素分割区域的某些特定种类的随机元素的随机元素设置位置进行判断设定。具有最大设置概率的随机元素不需要进行随机元素设置位置的判定,因此可进一步提高随机元素的绘制效率。

同时这里为了进一步提高不同种类的随机元素的提取效率,这里可使用随机元素存储数据库存储不同种类的随机元素的元素参数。当需要在某个随机元素设置位置设置某一种类的随机元素时,可直接从随机元素存储数据库中提取对应的随机元素的元素参数,如树木的高度以及种类等。

这样即完成了本实施例的随机元素生成方法的随机元素生成过程。

本实施例的随机元素生成方法基于随机元素分割区域进行随机元素的设置,同时通过随机元素的位置以及随机元素分割区域中的避让区域,对随机元素进行筛选,从而提高了随机元素的绘制效率,且随机元素的模拟真实性较高。

请参照图3,图3为本发明的随机元素生成方法的第二实施例的流程图。本实施例的随机元素生成方法可使用上述的电子设备进行实施,本实施例的随机元素生成方法包括:

步骤s301,获取随机元素生成区域,并使用设定矩形框对随机元素生成区域进行分割操作,以获取多个随机元素分割区域;

步骤s302,根据设定疏密度,生成每个随机元素分割区域中的随机元素位置;

步骤s303,基于道路设置信息以及导航地图信息,生成随机元素分割区域的第一避让子区域;

步骤s304,获取随机元素分割区域中的避让元素;

步骤s305,在避让元素外侧设置设定尺寸的外接矩形框,并根据外接矩形框的区域确定随机元素分割区域的第二避让子区域;

步骤s306,在随机元素分割区域的随机元素位置设置当前随机元素以及对应的随机元素避让区域;

步骤s307,判断当前随机元素是否处于其他随机元素的随机元素避让区域或所述随机元素分割区域中的避让区域中,如当前随机元素处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域中,则转到步骤s308;如当前随机元素未处于其他随机元素的随机元素避让区域或随机元素分割区域的避让区域中,则转到步骤s309。

步骤s308,将当前随机元素以及对应的随机元素避让区域删除,并返回步骤s306直至所有随机元素设置完毕;

步骤s309(图中未示出),返回步骤s306直至所有随机元素设置完毕。

下面详细说明本实施例的随机元素生成方法的各步骤的具体流程。

在步骤s301中,随机元素生成装置获取随机元素生成区域,该随机元素生成区域是指用于生成随机元素的游戏地图区域,该游戏地图区域可为现有传统地图的一部分,如北京市的地图区域或深圳市的地图区域等。

随后随机元素生成装置使用设定矩形框对上述随机元素生成区域进行分割操作,以获取多个随机元素分割区域。由于随机元素生成区域的面积较大,一次性对整个随机元素生成区域进行随机元素的生成计算,消耗的资源较多,且无法进行多线程计算,因此导致整个随机元素的绘制效率较低。

因此在本实施例中使用设定矩形框将上述随机元素生成区域分割为多个随机元素分割区域,从而可对每个随机元素分割区域使用单独的线程进行随机元素的绘制操作,即每个随机元素分割区域中的随机元素的绘制操作均单独进行,进而提高了随机元素绘制的效率。随后转到步骤s302。

在步骤s302中,随机元素生成装置获取设定疏密度,该设定疏密度为设定随机元素分割区域中的随机元素的参数。当该疏密度较大时,每个随机元素分割区域中的随机元素较少;当该疏密度较小时,每个随机元素分割区域中的随机元素较多。

随后随机元素生成装置根据设定疏密度,生成每个随机元素分割区域中的随机元素位置。具体的,随机元素生成装置可根据设定疏密度,确定每个随机元素分割区域中的单一随机元素设置区域。这里的单一随机元素设置区域为随机元素分割区域中设置一个随机元素的区域。

随后随机元素生成装置在上述生成的每个单一随机元素设置区域中随机生成一随机元素位置,即生成的随机元素可位于单一随机元素设置区域中的任意位置。随后转到步骤s303。

在步骤s303中,随机元素生成装置基于道路设置信息以及导航地图信息,生成随机元素分割区域的第一避让子区域。

由于并非在随机元素生成区域以及对应的随机元素分割区域中的所有区域均可设置随机元素,如不能到道路上设置树木,不能在水中设置汽车等。因此需要在随机元素分割区域中设置对应的避让区域。这里的避让区域包括避免在非设置区域进行随机元素设置的第一避让子区域以及避免在非设置区域周边进行随机元素设置的第二避让子区域。

这里的道路设置信息可为随机元素生成区域的道路信息或水路信息(即非设置区域信息)等,由于随机元素一般会设置在非道路区域,因此本实施例中将道路设置信息对应的区域设置为第一避让子区域,以避免在道路设置信息对应的区域设置随机元素。

这里的导航地图信息可为热点poi(信息点,pointofinformation),该热点poi包括目标的名称、类别、经纬度以及附近的酒店饭店商铺等信息。随机元素生成装置可通过导航地图信息获知某个区域的人口分布情况,可将人口很少的区域,如沙漠等无人区设置为第一避让子区域,以避免在无人区等无人活动的区域设置随机元素,浪费系统资源。随后转到步骤s304。

在步骤s304中,随机元素生成装置获取随机元素分割区域中的避让元素,该避让元素可为步骤s303中的道路设置信息对应的第一避让子区域,如道路区域或水路区域等。由于某些随机元素不适合设置的与避让元素太近,如无法紧挨着高速公路设置树木等。因此本实施例中会在避让元素周围设置第二避让子区域。随后转到步骤s305。

在步骤s305中,随机元素生成装置在步骤s304获取的避让元素的外侧设置设定尺寸的外接矩形框,并根据外接矩形框的区域确定随机元素分割区域的第二避让子区域。由于所有的避让区域均由矩形框构成,如避让元素的尺寸过大,如一条较长的公路,使用一个外接矩形框去表示该公路的周围区域,可能会使得该公路对应的第二避让子区域过大。因此这里使用设定尺寸的外界矩形框在避让元素的外侧设置第二避让子区域,可以更加准确的设定第一避让子区域周围的第二避让子区域。随后转到步骤s306。

在步骤s306中,随机元素生成装置在随机元素分割区域的随机元素位置设置当前随机元素以及对应的随机元素避让区域。由于随机元素和随机元素之间也不易设置的过于接近,因此对于每个当前随机元素均会设置对应的随机元素避让区域,以避免两个随机元素设置得过于接近。随后转到步骤s307。

在步骤s307中,随机元素生成装置判断当前随机元素是否处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域中。如当前随机元素处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域中,则转到步骤s308;如当前随机元素未处于其他随机元素的随机元素避让区域或随机元素分割区域的避让区域中,则转到步骤s309。

在步骤s308中,如当前随机元素处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域(第一避让子区域或第二避让子区域)中,则判定该当前随机元素与其他随机元素过于接近,或当前随机元素处于该随机元素分割区域的避让区域中,因此将该当前随机元素以及对应的随机元素避让区域删除,并返回步骤s306,直至所有随机元素设置完毕。

在步骤s309,如当前随机元素未处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域中,则判断该当前随机元素为正常设置的随机元素,则直接返回步骤s306,直至所有随机元素设置完毕。

当所有的元素均设置完毕后,可在随机元素分割区域中生成不同种类的随机元素,具体请参照第一实施例中的步骤s103的具体流程。

这样即完成了本实施例的随机元素生成方法的随机元素生成过程。

在第一实施例的基础上,本实施例的随机元素生成方法进一步优化了避让区域的设置过程,进一步提高了随机元素的模拟真实性。同时每个随机元素避让区域中的随机元素均根据其他随机元素的随机元素避让区域以及随机元素分割区域中的避让区域进行设置,可及时对随机元素进行设置以及释放,进一步提高了随机元素的绘制效率。

本发明还提供一种随机元素生成装置,请参照图4,图4为本发明的随机元素生成装置的第一实施例的结构示意图。本实施例的随机元素生成装置40可使用上述的随机元素生成方法的第一实施例进行实施。本实施例的随机元素生成装置40包括随机元素分割区域获取模块41、随机元素位置生成模块42以及随机元素生成模块43。.

随机元素分割区域获取模块41用于获取随机元素生成区域,并使用设定矩形框对随机元素生成区域进行分割操作,以获取多个随机元素分割区域;随机元素位置生成模块42用于根据设定疏密度,生成每个随机元素分割区域中的随机元素位置;随机元素生成模块43用于基于每个随机元素分割区域中的随机元素位置以及随机元素分割区域中的避让区域,在每个随机元素分割区域中生成随机元素。

请参照图5,图5为本发明的随机元素生成装置的第一实施例的随机元素位置生成模块的结构示意图。该随机元素位置生成模块42包括单一随机元素设置区域确定单元51以及随机元素位置生成单元52。

单一随机元素设置区域确定单元51用于根据设定疏密度,确定每个随机元素分割区域中的单一随机元素设置区域;随机元素位置生成单元52用于在单一随机元素设置区域中随机生成一随机元素位置。

该单一随机元素设置区域确定单元51包括区域横向坐标确定子单元511以及区域纵向坐标确定子单元512。

区域横向坐标确定子单元511用于根据设定横向疏密度,确定每个随机元素分割区域中的每个单一随机元素设置区域的横向起始坐标以及横向结束坐标;区域纵向坐标确定子单元512用于根据设定纵向疏密度,确定每个随机元素分割区域中的每个单一随机元素设定区域的纵向起始坐标以及纵向结束坐标。

请参照图6,图6为本发明的随机元素生成装置的第一实施例的随机元素生成模块的结构示意图。随机元素生成模块43包括随机元素设置数量确定单元61、特定随机元素数量确定单元62以及特定随机元素设置单元63。

随机元素设置数量确定单元61用于确定随机元素分割区域中的随机元素设置数量;特定随机元素数量确定单元62用于根据随机元素设置数量以及不同种类的随机元素的随机元素设置概率,确定不同种类的随机元素的随机元素设置数量;特定随机元素设置单元63用于根据不同种类的随机元素的随机元素设置数量,在随机元素分割区域的所有随机元素设置位置中选择特定种类的随机元素的随机元素设置位置,并在随机元素设置位置设置所述特定种类的随机元素。

特定随机元素设置单元63包括位置数组确定子单元631、特定随机元素设置子单元632以及位置数组修正子单元633。

位置数组确定子单元631用于确定随机元素分割区域的所有随机元素设置位置的位置数组;特定随机元素设置子单元632用于随机选择随机元素分割区域的一随机元素设置位置设置特定种类的随机元素;位置数组修正子单元633用于将设置特定种类的随机元素的设置位置从位置数组中删除,并返回确定位置数组的步骤直至所有特定种类的随机元素设置完毕。

本实施例的随机元素生成装置40使用时,首先随机元素分割区域获取模块41获取随机元素生成区域,该随机元素生成区域是指用于生成随机元素的游戏地图区域,该游戏地图区域可为现有传统地图的一部分,如北京市的地图区域或深圳市的地图区域等。

随后随机元素分割区域获取模块41使用设定矩形框对上述随机元素生成区域进行分割操作,以获取多个随机元素分割区域。由于随机元素生成区域的面积较大,一次性对整个随机元素生成区域进行随机元素的生成计算,消耗的资源较多,且无法进行多线程计算,因此导致整个随机元素的绘制效率较低。

因此在本实施例中使用设定矩形框将上述随机元素生成区域分割为多个随机元素分割区域,从而可对每个随机元素分割区域使用单独的线程进行随机元素的绘制操作,即每个随机元素分割区域中的随机元素的绘制操作均单独进行,进而提高了随机元素绘制的效率。

如克孜勒苏柯尔克孜自治州的行政区划面积约为11.7万平方公里,如直接对该克孜勒苏柯尔克孜自治州的地图区域进行随机元素的生成操作,则会消耗较大的系统资源,且绘制时间较长。如将上述克孜勒苏柯尔克孜自治州的地图区域使用25km*25km的设定矩形框分割为多个随机元素分割区域,随后对每个随机元素分割区域单独进行随机元素的绘制操作,则可大大提高随机元素的绘制效率。

随后随机元素位置生成模块42获取设定疏密度,该设定疏密度为设定随机元素分割区域中的随机元素的参数。当该疏密度较大时,每个随机元素分割区域中的随机元素较少;当该疏密度较小时,每个随机元素分割区域中的随机元素较多。

随后随机元素位置生成模块42根据设定疏密度,生成每个随机元素分割区域中的随机元素位置。具体的,随机元素位置生成模块42的单一随机元素设置区域确定单元51可根据设定疏密度,确定每个随机元素分割区域中的单一随机元素设置区域。这里的单一随机元素设置区域为随机元素分割区域中设置一个随机元素的区域。

具体的,单一随机元素设置区域确定单元51的区域横向坐标确定子单元511可根据设定横向疏密度,确定每个随机元素分割区域中的每个单一随机元素设置区域的横向起始坐标以及横向结束坐标。

如offsetx=(dl-dr)/dx;

xnstart=(n-1)*offsetx;

xnend=n*offsetx;

其中dl为随机元素分割区域的横向起始坐标,dr为随机元素分割区域的横向结束坐标,dx为随机元素分割区域的设定横向疏密度;xnstart为第n列的单一随机元素设置区域的横向起始坐标;xnend为第n列的单一随机元素设置区域的横向结束坐标。

单一随机元素设置区域确定单元51的区域纵向坐标确定子单元512可根据设定纵向疏密度,确定每个随机元素分割区域中的每个单一随机元素设置区域的纵向起始坐标以及纵向结束坐标。

如offsety=(du-dd)/dy;

ynstart=(n-1)*offsety;

ynend=n*offsety;

其中du为随机元素分割区域的纵向起始坐标,dr为随机元素分割区域的纵向结束坐标,dy为随机元素分割区域的设定纵向疏密度;ynstart为第n行的单一随机元素设置区域的纵起始坐标;ynend为第n行的单一随机元素设置区域的纵向结束坐标。

这里的计算坐标系优选采用墨卡托投影坐标系,这样可以进一步提高单一随机元素设置区域的坐标精度以及减少单一随机元素设置区域的存储数据量。

随后随机元素位置生成模块42的随机元素位置生成单元52在上述生成的每个单一随机元素设置区域中随机生成一随机元素位置,即生成的随机元素可位于单一随机元素设置区域中的任意位置。

然后随机元素生成模块43获取基于随机元素位置生成模块42生成的每个随机元素分割区域中的随机元素位置以及随机元素分割区域中的避让区域。由于并非在随机元素生成区域以及对应的随机元素分割区域中的所有区域均可设置随机元素,如不能到道路上设置树木,不能在水中设置汽车等。因此需要在随机元素分割区域中设置对应的避让区域。

这样随机元素生成模块43可在处于非避让区域的随机元素位置上设置随机元素,从而在每个随机元素分割区域中生成随机元素。

具体的,为了提高随机元素的多样性,这里可设置不同种类的随机元素。这样在随机元素分割区域中生成不同种类的随机元素的步骤可包括:

随机元素生成模块43的随机元素设置数量确定单元61确定随机元素分割区域的随机元素设置数量。由于随机元素分割区域中存在避让区域,因此并非每个随机元素分割区域中均存在相同数量随机元素,因此在本步骤中,随机元素设置数量确定单元61需根据每个随机元素分割区域中的随机元素位置以及随机元素分割区域中的避让区域,确定每个随机元素分割区域中的随机元素设置数量。

然后随机元素生成模块43的特定随机元素数量确定单元62根据随机元素设置数量确定单元61获取的随机元素设置数量以及不同种类的随机元素设置概率,确定不同种类的随机元素的随机元素设置数量。如在某个随机元素分割区域中需要设置10颗树,其中普通树的设置概率为70%,组合树的设置概率为10%,连续树的设置概率为20%,则可确定组合树的设置数量为1,连续树的设置数量为2。

最后随机元素生成模块43的特定随机元素设置单元63根据不同种类的随机元素的随机元素设置数量,在随机元素分割区域的所有随机元素设置位置中选择特定种类的随机元素的随机元素设置位置,并在随机元素设置位置设置特定种类的随机元素。

如直接在随机元素分割区域的随机元素设置位置上按不同种类的随机元素的设置数量进行随机元素的设置,则需要对每个随机元素设置位置进行随机元素的设置种类的判断。

在本实施例中,特定随机元素设置单元63的位置数组确定子单元631会先确定一随机元素分割区域的所有随机元素设置位置的位置数组。如在某个随机元素分割区域中具有10个随机元素设置位置,则可设置一具有10个位置的数组。

随后特定随机元素设置单元63的特定随机元素设置子单元632根据特定种类的随机元素的随机元素设置数量,随机选择随机元素分割区域的随机元素设置位置设置该特定种类的随机元素。

最后特定随机元素设置单元63的位置数组修正子单元633将该设置有特定种类的随机元素的设置位置从位置数组中删除,直至所有特定种类的随机元素设置完毕。这样只需要对随机元素分割区域的某些特定种类的随机元素的随机元素设置位置进行判断设定。具有最大设置概率的随机元素不需要进行随机元素设置位置的判定,因此可进一步提高随机元素的绘制效率。

同时这里为了进一步提高不同种类的随机元素的提取效率,这里随机元素参数存储模块可使用随机元素存储数据库存储不同种类的随机元素的元素参数。当需要在某个随机元素设置位置设置某一种类的随机元素时,可直接从随机元素存储数据库中提取对应的随机元素的元素参数,如树木的高度以及种类等。

这样即完成了本实施例的随机元素生成装置40的随机元素生成过程。

本实施例的随机元素生成装置基于随机元素分割区域进行随机元素的设置,同时通过随机元素的位置以及随机元素分割区域中的避让区域,对随机元素进行筛选,从而提高了随机元素的绘制效率,且随机元素的模拟真实性较高。

请参照图7,图7为本发明的随机元素生成装置的第二实施例的结构示意图。本实施例的随机元素生成装置可使用上述的随机元素生成方法的第二实施例进行实施。本实施例的随机元素生成装置70包括随机元素分割区域获取模块71、随机元素位置生成模块72、第一避让子区域生成模块73、避让元素获取模块74、第二避让子区域生成模块75以及随机元素生成模块76。

随机元素分割区域获取模块71用于获取随机元素生成区域,并使用设定矩形框对随机元素生成区域进行分割操作,以获取多个随机元素分割区域;随机元素位置生成模块72用于根据设定疏密度,生成每个随机元素分割区域中的随机元素位置;第一避让子区域生成模块73用于基于道路设置信息以及导航地图信息,生成随机元素分割区域的第一避让子区域;避让元素获取模块74用于获取随机元素分割区域中的避让元素;第二避让子区域生成模块75用于在避让元素外侧设置设定尺寸的外接矩形框,并根据外接矩形框的区域确定随机元素分割区域的第二避让子区域;随机元素生成模块76用于基于每个所述随机元素分割区域中的随机元素位置以及所述随机元素分割区域中的避让区域,在每个所述随机元素分割区域中生成随机元素。

请参照图8,图8为本发明的随机元素生成装置的第二实施例的随机元素生成模块的结构示意图。该随机元素生成模块76包括当前随机元素设置单元81、当前随机元素判断单元82以及当前随机元素删除单元83。

当前随机元素设置单元81用于在随机元素分割区域的随机元素位置设置当前随机元素以及对应的随机元素避让区域;当前随机元素判断单元82用于判断当前随机元素是否处于其他随机元素的随机元素避让区域中;当前随机元素删除单元83用于如当前随机元素处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域中,则将当前随机元素以及对应的随机元素避让区域删除,并返回随机元素设置步骤直至所有随机元素设置完毕。

本实施例的随机元素生成装置70使用时,首先随机元素分割区域获取模块71获取随机元素生成区域,该随机元素生成区域是指用于生成随机元素的游戏地图区域,该游戏地图区域可为现有传统地图的一部分,如北京市的地图区域或深圳市的地图区域等。

随后随机元素分割区域获取模块71使用设定矩形框对上述随机元素生成区域进行分割操作,以获取多个随机元素分割区域。由于随机元素生成区域的面积较大,一次性对整个随机元素生成区域进行随机元素的生成计算,消耗的资源较多,且无法进行多线程计算,因此导致整个随机元素的绘制效率较低。

因此在本实施例中使用设定矩形框将上述随机元素生成区域分割为多个随机元素分割区域,从而可对每个随机元素分割区域使用单独的线程进行随机元素的绘制操作,即每个随机元素分割区域中的随机元素的绘制操作均单独进行,进而提高了随机元素绘制的效率。

随后随机元素位置生成模块72获取设定疏密度,该设定疏密度为设定随机元素分割区域中的随机元素的参数。当该疏密度较大时,每个随机元素分割区域中的随机元素较少;当该疏密度较小时,每个随机元素分割区域中的随机元素较多。

随后随机元素位置生成模块72根据设定疏密度,生成每个随机元素分割区域中的随机元素位置。具体的,随机元素生成装置可根据设定疏密度,确定每个随机元素分割区域中的单一随机元素设置区域。这里的单一随机元素设置区域为随机元素分割区域中设置一个随机元素的区域。

随后随机元素位置生成模块72在上述生成的每个单一随机元素设置区域中随机生成一随机元素位置,即生成的随机元素可位于单一随机元素设置区域中的任意位置。

然后第一避让子区域生成模块73基于道路设置信息以及导航地图信息,生成随机元素分割区域的第一避让子区域。

由于并非在随机元素生成区域以及对应的随机元素分割区域中的所有区域均可设置随机元素,如不能到道路上设置树木,不能在水中设置汽车等。因此需要在随机元素分割区域中设置对应的避让区域。这里的避让区域包括避免在非设置区域进行随机元素设置的第一避让子区域以及避免在非设置区域周边进行随机元素设置的第二避让子区域。

这里的道路设置信息可为随机元素生成区域的道路信息或水路信息(即非设置区域信息)等,由于随机元素一般会设置在非道路区域,因此本实施例中将道路设置信息对应的区域设置为第一避让子区域,以避免在道路设置信息对应的区域设置随机元素。

这里的导航地图信息可为热点poi(信息点,pointofinformation),该热点poi包括目标的名称、类别、经纬度以及附近的酒店饭店商铺等信息。随机元素生成装置可通过导航地图信息获知某个区域的人口分布情况,可将人口很少的区域,如沙漠等无人区设置为第一避让子区域,以避免在无人区等无人活动的区域设置随机元素,浪费系统资源。

随后避让元素获取模块74获取随机元素分割区域中的避让元素,该避让元素可为道路设置信息对应的第一避让子区域,如道路区域或水路区域等。由于某些随机元素不适合设置的与避让元素太近,如无法紧挨着高速公路设置树木等。因此本实施例中会在避让元素周围设置第二避让子区域。

然后第二避让子区域生成模块75在避让元素获取模块74获取的避让元素的外侧设置设定尺寸的外接矩形框,并根据外接矩形框的区域确定随机元素分割区域的第二避让子区域。由于所有的避让区域均由矩形框构成,如避让元素的尺寸过大,如一条较长的公路,使用一个外接矩形框去表示该公路的周围区域,可能会使得该公路对应的第二避让子区域过大。因此这里使用设定尺寸的外界矩形框在避让元素的外侧设置第二避让子区域,可以准确的设定第一避让子区域周围的第二避让子区域。

随后随机元素生成模块76的当前随机元素设置单元81在随机元素分割区域的随机元素位置设置当前随机元素以及对应的随机元素避让区域。由于随机元素和随机元素之间也不易设置的过于接近,因此对于每个当前随机元素均会设置对应的随机元素避让区域,以避免两个随机元素设置得过于接近。

然后随机元素生成模块76的当前随机元素判断单元82判断当前随机元素是否处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域中。

如当前随机元素处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域(第一避让子区域或第二避让子区域)中,则判定该当前随机元素与其他随机元素过于接近,或当前随机元素处于该随机元素分割区域的避让区域中,因此当前随机元素删除单元83将该当前随机元素以及对应的随机元素避让区域删除,并返回当前随机元素设置单元进行当前随机元素以及对应的随机元素避让区域的设置,直至所有随机元素设置完毕。

如当前随机元素未处于其他随机元素的随机元素避让区域或随机元素分割区域中的避让区域中,则判断该当前随机元素为正常设置的随机元素,则随机元素生成模块76当前随机元素设置单元进行当前随机元素以及对应的随机元素避让区域的设置,直至所有随机元素设置完毕。

当所有的元素均设置完毕后,可在随机元素分割区域中生成不同种类的随机元素,具体请参照第一实施例中的随机元素生成模块的具体工作流程。

这样即完成了本实施例的随机元素生成装置70的随机元素生成过程。

在第一实施例的基础上,本实施例的随机元素生成装置进一步优化了避让区域的设置过程,进一步提高了随机元素的模拟真实性。同时每个随机元素避让区域中的随机元素均根据其他随机元素的随机元素避让区域以及随机元素分割区域中的避让区域进行设置,可及时对随机元素进行设置以及释放,进一步提高了随机元素的绘制效率。

下面通过一具体实施例说明本发明的随机元素生成方法及随机元素生成装置的具体工作原理。请参照图9a-图9c,图9a为本发明的随机元素生成方法及随机元素装置的具体实施例的流程图,图9b和图9c为本发明的随机元素生成方法及随机元素装置的具体实施例的示意图。本具体实施例中的随机元素生成方法及随机元素生成装置可使用上述的生成ar游戏地图的游戏服务器进行实施,该随机元素在本具体实施例中为游戏地图上的树木。本具体实施例的随机元素的生成过程包括:

步骤s901,游戏服务器获取克孜勒苏柯尔克孜自治州的地图区域作为随机元素生成区域,并使用25km*25km的设定矩形框对随机元素生成区域进行分割操作,以获取多个随机元素分割区域。具体如图9b所示。

步骤s902,游戏服务器采用多线程,基于设定疏密度获取每个随机元素分割区域中的小树设置位置,即随机元素位置。

步骤s903,游戏服务器获取每个随机元素分割区域中的避让区域,如图9c所示,避让区域包括道路91(第一避让子区域)以及道路两侧的周边区域92(第二避让子区域)。

步骤s904,游戏服务器在每个随机元素分割区域的小树设置位置依次设置小树以及设置小树的小树避让区域(即随机元素避让区域),如当前设置小树处于随机元素分割区域中的避让区域,则将该当前设置小树删除,如当前设置小树处于其他设置小树的小树避让区域,也将该当前设置小树删除。

步骤s905,游戏服务器根据不同种类小树的设置概率,将每个随机元素分割区域中的小树选择部分设置为圆形树丛或连续树丛。

这样即完成了本具体实施例的随机元素生成方法及随机元素装置的随机元素生成过程。

本发明的随机元素生成方法及随机元素生成装置基于随机元素分割区域进行随机元素的设置,同时通过随机元素的位置以及随机元素分割区域中的避让区域,对随机元素进行筛选,从而提高了随机元素的绘制效率,且随机元素的模拟真实性较高;解决了现有的随机元素生成方法及随机元素生成装置的绘制效率较低且模拟真实性较低的技术问题。

如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。

图10和随后的讨论提供了对实现本发明所述的随机元素生成装置所在的电子设备的工作环境的简短、概括的描述。图10的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备1012包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(pda)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。

尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(api)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。

图10图示了包括本发明的随机元素生成装置中的一个或多个实施例的电子设备1012的实例。在一种配置中,电子设备1012包括至少一个处理单元1016和存储器1018。根据电子设备的确切配置和类型,存储器1318可以是易失性的(比如ram)、非易失性的(比如rom、闪存等)或二者的某种组合。该配置在图10中由虚线1014图示。

在其他实施例中,电子设备1012可以包括附加特征和/或功能。例如,设备1012还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图10中由存储装置1020图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置1020中。存储装置1020还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器1018中由例如处理单元1016执行。

本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器1018和存储装置1020是计算机存储介质的实例。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备1012访问的任何其他介质。任意这样的计算机存储介质可以是电子设备1012的一部分。

电子设备1012还可以包括允许电子设备1012与其他设备通信的通信连接1026。通信连接1026可以包括但不限于调制解调器、网络接口卡(nic)、集成网络接口、射频发射器/接收器、红外端口、usb连接或用于将电子设备1012连接到其他电子设备的其他接口。通信连接1026可以包括有线连接或无线连接。通信连接1026可以发射和/或接收通信媒体。

术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。

电子设备1012可以包括输入设备1024,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备1012中也可以包括输出设备1022,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备1024和输出设备1022可以经由有线连接、无线连接或其任意组合连接到电子设备1012。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备1012的输入设备1024或输出设备1022。

电子设备1012的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(pci)(比如快速pci)、通用串行总线(usb)、火线(ieee1394)、光学总线结构等等。在另一个实施例中,电子设备1012的组件可以通过网络互连。例如,存储器1018可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。

本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络1028访问的电子设备1030可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备1012可以访问电子设备1030并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备1012可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备1012处执行并且一些指令可以在电子设备1030处执行。

本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。

而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。

本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。

综上所述,虽然本发明已以实施例揭露如上,实施例前的序号仅为描述方便而使用,对本发明各实施例的顺序不造成限制。并且,上述实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

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