CN113117334A - 目标点的可见区域的确定方法及相关装置 - Google Patents

目标点的可见区域的确定方法及相关装置 Download PDF

Info

Publication number
CN113117334A
CN113117334A CN202110402350.0A CN202110402350A CN113117334A CN 113117334 A CN113117334 A CN 113117334A CN 202110402350 A CN202110402350 A CN 202110402350A CN 113117334 A CN113117334 A CN 113117334A
Authority
CN
China
Prior art keywords
ray
boundary line
target point
determining
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110402350.0A
Other languages
English (en)
Other versions
CN113117334B (zh
Inventor
王治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202110402350.0A priority Critical patent/CN113117334B/zh
Publication of CN113117334A publication Critical patent/CN113117334A/zh
Application granted granted Critical
Publication of CN113117334B publication Critical patent/CN113117334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • A63F13/5378Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for displaying an additional top view, e.g. radar screens or maps
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8076Shooting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开一种目标点的可见区域的确定方法及相关装置,其中,所述目标点的可见区域的确定方法包括:获取目标点的视野范围内的二维地图地形数据,形成边界线信息;从所述目标点向每条边界线的两个端点均发射一条射线,构建射线数据表;其中,所述射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;以射线角度为顺序对所述射线数据表进行排序;通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线;根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域。上述方案,能够显示更贴近现实的目标点的可见区域。

Description

目标点的可见区域的确定方法及相关装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种目标点的可见区域的确定方法及相关装置。
背景技术
对于某些类型的游戏,游戏内的角色一般存在一个设定好的视野范围,即以游戏角色为中心,向周围延伸一定范围,作为该游戏角色当前可以看到的区域。在实际的游戏场景中,场景环境可能会比较复杂,例如,可能出现墙、柱子、树木、其他游戏角色等各种障碍物阻挡或部分阻挡了该游戏角色的视野,这时候该游戏角色是不应该看到障碍物后面的事物的,游戏角色的视野不能以穿过障碍物的方式显示给玩家。有鉴于此,如何将目标点的可见区域与地图地形相结合成为亟待解决的问题。
发明内容
本申请主要解决的技术问题是提供一种目标点的可见区域的确定方法及相关装置,能够显示目标点的可见区域,提升用户体验。
为了解决上述问题,本申请第一方面提供了一种目标点的可见区域的确定方法,所述目标点的可见区域的确定方法包括:获取目标点的视野范围内的二维地图地形数据,形成边界线信息;从所述目标点向每条边界线的两个端点均发射一条射线,构建射线数据表;其中,所述射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;以射线角度为顺序对所述射线数据表进行排序;通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线;根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域。
为了解决上述问题,本申请第二方面提供了一种目标点的可见区域的确定装置,包括:边界线获取模块,所述边界线获取模块用于获取目标点的视野范围内的二维地图地形数据,形成边界线信息;射线数据表生成模块,所述射线数据表生成模块用于从所述目标点向每条边界线的两个端点均发射一条射线,构建射线数据表,并以射线角度为顺序对所述射线数据表进行排序;其中,所述射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;遮挡分析模块,所述遮挡分析模块用于通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线;可见区域确定模块,所述可见区域确定模块用于根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域。
为了解决上述问题,本申请第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现上述第一方面的目标点的可见区域的确定方法。
为了解决上述问题,本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令被处理器执行时实现上述第一方面的目标点的可见区域的确定方法。
本发明的有益效果是:区别于现有技术的情况,本申请的目标点的可见区域的确定方法,通过获取目标点的视野范围内的二维地图地形数据,形成边界线信息,然后从目标点向每条边界线的两个端点均发射一条射线,构建射线数据表,其中,射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;然后以射线角度为顺序对射线数据表进行排序,并通过遍历射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线,于是可以根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定目标点的可见区域。由于最终确定的目标点的可见区域考虑了目标点的视野范围内的地图地形,使得所显示的目标点的可见区域更加贴近真实情况,本申请的方法不仅可以解决游戏角色的可见区域问题,也可以适用在有护盾情况下的爆炸辐射伤害,从而增强游戏可玩性,提升了用户的体验。
附图说明
图1是本申请目标点的可见区域的确定方法一实施例的流程示意图;
图2是图1中步骤S14一实施例的流程示意图;
图3是图2中步骤S142一实施例的流程示意图;
图4是图3中步骤S1424一实施例的流程示意图;
图5是图1中步骤S15一实施例的流程示意图;
图6是本申请目标点的可见区域的确定方法一应用场景的流程示意图;
图7是本申请目标点的可见区域的确定方法一应用场景的显示示意图;
图8是本申请目标点的可见区域的确定装置一实施例的框架示意图;
图9是本申请电子设备一实施例的框架示意图;
图10是本申请计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请目标点的可见区域的确定方法一实施例的流程示意图。具体而言,本实施例中的目标点的可见区域的确定方法可以包括如下步骤:
步骤S11:获取目标点的视野范围内的二维地图地形数据,形成边界线信息。
本申请以游戏场景为例,目标点为游戏角色,在游戏范围内,玩家在操控游戏角色时只能观察到自身及周围一定范围的区域,即视野范围内的区域,而绝大多数地图区域均被黑色迷雾覆盖,而当自身向黑暗区域移动后,其所途径的区域会被自动显示,而远离的区域又会变得不可见。然而,实际场景环境会比较复杂,例如,草丛、山、树木、其他游戏角色等各种障碍物会遮挡视野,游戏角色的视野不能以穿过障碍物的方式显示给玩家,因此,对于目标点的可见区域的确定,需要考虑视野范围内的地图地形。于是,要想确定目标点的可见区域,需要先获取目标点的视野范围内的二维地图地形数据,形成边界线信息。另外,本申请的视野范围可以预先设置,即目标点所对应的游戏角色具有视野范围限制,目标点的视野范围指的是目标点在没有任何遮挡情况下所能够看到的最远距离;另外,目标点的视野范围的形状既可以是各种规则的形状,例如圆形、扇形或近似扇形的多边形,也可以是不规则形状。
本申请的游戏可以是智能手机、平板电脑、计算机、电视机等任何电子设备上运行的游戏,凡是需要生成并显示游戏角色视野的,本申请的目标点的可见区域的确定方法均可以适用。
在一实施例中,二维地图地形数据采用多边形表示,此时,上述步骤S11具体可以包括:以所述目标点为中心,获取目标点的视野范围内的表示障碍物的所有多边形,将所有多边形的边作为边界线。可以理解的是,二维地图中的地形不仅包括山、树木等静态的物体,而且包括敌对角色、中立角色甚至友方角色等动态的物体,这些物体均可能阻挡目标点的视野,即这些物体均可能作为目标点的可见区域的边界。而本实施例中,无论是山、树木等静态的物体,还是各种势力角色等动态的物体,均采用多边形进行表示,从而可以以目标点为中心,将目标点的视野范围内的所有障碍物所对应的多边形的边作为边界线,以从中挑选出可能作为目标点的可见区域的边界的边界线。
步骤S12:从所述目标点向每条边界线的两个端点均发射一条射线,构建射线数据表;其中,所述射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线。
具体地,在获取到处于目标点的视野范围内的所有边界线后,从目标点向每条边界线的两个端点均发射一条射线,每条射线的数据信息包括其对应的边界线以及该射线的射线角度,然后利用所有射线的数据信息构建射线数据表。在一实施例中,目标点的视野范围的形状为以目标点为圆心的圆形,因此,各射线的射线角度可以规范化,使各射线的射线角度映射到-π~π。
步骤S13:以射线角度为顺序对所述射线数据表进行排序。
可以理解的是,在确定了所有射线的射线角度之后,可以按照射线角度的大小顺序将射线数据表中的所有射线进行排序,例如,可以按照射线角度由小到大或者由大到小的顺序进行排序,还可以在选定一条射线后,以该射线的射线角度开始、按照顺时针或者逆时针的顺序进行排序。在一实施例中,步骤S13具体可以包括:从所述射线数据表选择一条所对应的边界线的端点无遮挡的射线,作为起始射线,并以所述起始射线的射线角度为初始角度对所述射线数据表进行排序。
步骤S14:通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线。
通过遍历射线数据表,对每一条射线进行分析,判断该射线所对应的边界线是否存在作为顶层边界线的区段,若某条边界线存在作为顶层边界线的区段,则找到每条边界线作为顶层边界线的区段所对应的两条射线。本申请中,顶层边界线指的是该边界线与目标点之间不存在其他边界线,即顶层边界线与目标点之间无遮挡;而顶层边界线的区段所对应的两条射线,与该区段的两个端点分别对应。可以理解的是,有的边界线的所有区段与目标点之间都不存在遮挡,此时这种边界线作为顶层边界线的区段为整段边界线;而有的边界线只有部分区段与目标点之间不存在遮挡,而其他区段会被别的边界线遮挡,此时,这种边界线作为顶层边界线的区段为边界线的部分区段。
步骤S15:根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域。
可以理解的是,在找到某条边界线作为顶层边界线的区段所对应的两条射线后,由于顶层边界线的区段所对应的两条射线与该区段的两个端点分别对应,因此,这两条射线以及顶层边界线的区段所围成的区域即为边界线所对应的可见区域。将所有可见区域进行合并,则组成了目标点的可见区域。
上述方案,通过获取目标点的视野范围内的二维地图地形数据,形成边界线信息,然后从目标点向每条边界线的两个端点均发射一条射线,构建射线数据表,其中,射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;然后以射线角度为顺序对射线数据表进行排序,并通过遍历射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线,于是可以根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定目标点的可见区域。由于最终确定的目标点的可见区域考虑了目标点的视野范围内的地图地形,使得所显示的目标点的可见区域更加贴近真实情况,本申请的方法不仅可以解决游戏角色的可见区域问题,也可以适用在有护盾情况下的爆炸辐射伤害,从而增强游戏可玩性,提升了用户的体验。
请结合图2,图2是图1中步骤S14一实施例的流程示意图。在一实施例中,上述步骤S14具体可以包括:
步骤S141:从初始角度开始,遍历所述射线数据表,并构造open表;所述open表有序保存有每条射线的端点对应的边界线的遮挡线。
步骤S142:当遍历至设定射线时,根据所述设定射线的端点对应的边界线以及所述open表,确定所述设定射线是否为顶层边界线所对应的射线。
在射线数据表中的所有射线以射线角度为顺序进行排序后,可以按照射线数据表中的顺序进行遍历,射线数据表中第一条射线的射线角度即为初始角度。在进行遍历射线数据表时,可以构造open表,当遍历至某条设定射线时,根据该设定射线的端点对应的边界线以及open表,可以确定该设定射线是否为顶层边界线所对应的射线。可以理解的是,open表中有序保存有每条射线的端点对应的边界线的遮挡线,由于open表中保存的是所有已生成而未考察的遮挡线,因此在遍历各射线的过程中,根据open表中保存的遮挡线的变化情况,从而可以确定当前所遍历的设定射线是否为顶层边界线所对应的射线。
步骤S143:当确定所述设定射线为某边界线作为顶层边界线的区段所对应的射线时,则找到该边界线作为顶层边界线的区段所对应的两条射线为所述初始角度对应的射线和所述设定射线,并以所述设定射线的射线角度为新的初始角度,继续遍历所述射线数据表。
可以理解的是,由于初始角度对应的射线,其对应的边界线的端点无遮挡,因此,在遍历至设定射线时,确定设定射线为某边界线作为顶层边界线的区段所对应的射线,则找到了该边界线作为顶层边界线的区段所对应的两条射线,这两条射线为初始角度对应的射线和设定射线,于是,这两条射线以及对应的顶层边界线的区段所围成的区域即为最终所求的可见区域的一部分。接着,以设定射线的射线角度为新的初始角度,继续遍历射线数据表,从而可以找到每条边界线作为顶层边界线的区段所对应的两条射线,进而可以根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域。
请结合图3,图3是图2中步骤S142一实施例的流程示意图。在一实施例中,上述步骤S142具体可以包括:
步骤S1421:判断所述open表中是否存在所述设定射线的端点对应的边界线的第一遮挡线。
步骤S1422:若存在,则将所述设定射线的端点对应的边界线插入到所述第一遮挡线之后,若不存在,则将所述设定射线的端点对应的边界线插入到所述open表的表头。
由于open表中有序保存有每条射线的端点对应的边界线的遮挡线,当遍历至设定射线时,通过遍历open表,可以判断open表中是否存在设定射线的端点对应的边界线的第一遮挡线;若存在第一遮挡线,则表示设定射线的端点对应的边界线会不可见,于是获取该第一遮挡线,并将设定射线的端点对应的边界线插入到第一遮挡线之后,以更新open表;若不存在第一遮挡线,则可以将设定射线的端点对应的边界线插入到open表的表头,以更新open表。
步骤S1423:判断所述设定射线的端点是否为所述设定射线的端点对应的边界线的终点。若是,则执行步骤S1424,若否,则执行步骤S1425。
步骤S1424:从所述open表中将所述设定射线的端点对应的边界线移除,并在所述open表的表头数据变化时认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,以查找所述设定射线的端点对应的边界线作为顶层边界线的区段所对应的射线。
请结合图4,图4是图3中步骤S1424一实施例的流程示意图。在一实施例中,上述步骤S1424具体可以包括:
步骤S14241:从所述open表中将所述设定射线的端点对应的边界线移除,判断所述open表的表头数据是否变化。若未变化,则执行步骤S14242,若变化,则执行步骤S14243。
步骤S14242:认为所述设定射线的端点对应的边界线不存在作为顶层边界线的区段,即确定所述设定射线不为顶层边界线的区段所对应的射线。
步骤S14243:认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,并进一步判断所述设定射线的端点是否被遮挡。若未被遮挡,则执行步骤S14244,若被遮挡,则执行步骤S14245。
步骤S14244:确定所述设定射线为顶层边界线的区段所对应的射线。
步骤S14245:获取所述设定射线的端点对应的边界线的每条遮挡线所对应的两条射线,从所述每条遮挡线所对应的两条射线中选取射线角度与所述初始角度最接近的射线为顶层边界线的区段所对应的射线。
当遍历至设定射线时,可以理解的是,若检测出设定射线的端点为设定射线的端点对应的边界线的终点,则表明该边界线已经检测完成了,于是可以将设定射线的端点对应的边界线从open表中移除。而在移除后,若open表的表头数据没有变化,则说明移除的边界线不存在作为顶层边界线的区段,即可以确定设定射线不为顶层边界线的区段所对应的射线;若open表的表头数据变化了,则说明移除的边界线存在作为顶层边界线的区段,此时需要进一步判断设定射线的端点是否被遮挡,若未被遮挡,则可以确定设定射线自身即为顶层边界线的区段所对应的射线,若被遮挡,则说明设定射线的端点对应的边界线,其靠近设定射线的端点的这部分不是作为顶层边界线的区段,于是需要获取设定射线的端点对应的边界线的所有遮挡线,并从所有遮挡线所对应的两条射线中选取射线角度与初始角度最接近的射线,作为顶层边界线的区段所对应的射线。可以理解的是,此时找到了边界线作为顶层边界线的区段所对应的两条射线,分别为初始角度对应的射线,和所有遮挡线所对应的两条射线中选取的射线角度与初始角度最接近的射线。于是,在继续遍历射线数据表时,需要以所有遮挡线所对应的两条射线中选取的射线角度与初始角度最接近的射线的射线角度为新的初始角度。
步骤S1425:不能确定所述设定射线是否为顶层边界线所对应的射线,继续遍历所述射线数据表。
可以理解的是,若检测出设定射线的端点不为设定射线的端点对应的边界线的终点,则说明设定射线的端点为设定射线的端点对应的边界线的起点,此时该边界线还未检测完成,不能确定设定射线是否为顶层边界线所对应的射线,于是继续遍历射线数据表中的下一条射线。
请结合图5,图5是图1中步骤S15一实施例的流程示意图。在一实施例中,上述步骤S15具体可以包括:
步骤S151:计算每条边界线与其作为顶层边界线的区段所对应的两条射线之间的交点,将所述交点保存至out表中。
步骤S152:根据所述out表中的所有交点,得到所述目标点的可见区域。
可以理解的是,在找到某条边界线作为顶层边界线的区段所对应的两条射线后,由于这两条射线是该边界线的端点对应的射线,或者该边界线的遮挡线的端点对应的射线,因此,通过延长这两条射线至与该边界线相交,两个交点之间的区段,即为该边界线作为顶层边界线的区段。于是,可以将得到的交点保存至out表中,out表中保存有所有交点,通过将所有交点按照对应的射线的射线角度的顺序依次连接,所围成的区域即为目标点的可见区域。
请结合图6和图7,其中,图6是本申请目标点的可见区域的确定方法一应用场景的流程示意图,图7是本申请目标点的可见区域的确定方法一应用场景的显示示意图。为了确定目标点0的可见区域,首先需要采集目标点0的视野范围内的地形数据,假设目标点0的视野范围可以覆盖整个方框,此时获取到的边界线信息包括:边界线12、边界线34、边界线56和边界线78,此时未考虑方框的四条边作为边界线,以简化描述。于是,从目标点0向每条边界线的两个端点均发射一条射线,构建射线数据表,即射线数据表中包括射线01至射线08,其中,射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线。此时,可以选取射线01作为初始射线,并按照逆时针进行排序,于是,射线数据表表示如下(根据射线角度排序,为简化描述,已将射线角度省略):
顺序 射线 对应边界线 对应边界线起点或终点
1 射线01 12 起点
2 射线03 34 起点
3 射线02 12 终点
4 射线04 34 终点
5 射线05 56 起点
6 射线07 78 起点
7 射线06 56 终点
8 射线08 78 终点
于是,按照上述顺序遍历射线数据表。首先从射线01开始,射线01为初始角度对应的射线,由于此时open表为:空,不存在边界线12的遮挡线,于是将边界线12插入至open表的表头,此时open表为:边界线12,然后由于射线01对应边界线12的起点,继续遍历射线数据表至射线03。由于射线03对应边界线34,而此时open表中存在边界线34的遮挡线,即边界线12,于是将边界线34插入到边界线12之后,此时open表为:边界线12、边界线34,然后由于射线03对应边界线34的起点,继续遍历射线数据表至射线02。由于射线02对应边界线12,而此时open表中不存在边界线12的遮挡线,于是将边界线12插入至open表的表头,此时open表为:边界线12、边界线34,然后由于射线02对应边界线12的终点,则从open表中将边界线12移除,发现open表更新为:边界线34,即open表的表头数据发生变化,则认为边界线12存在作为顶层边界线的区段,于是进一步判断边界线12的端点2未被遮挡,确定射线02为顶层边界线的区段所对应的射线,从而得到边界线12作为顶层边界线的区段所对应的两条射线为:射线01和射线02,计算边界线12与射线01和射线02之间的交点,即为点1和点2,将点1和点2保存至out表中。由于射线数据表未遍历完,故以射线02的射线角度为新的初始角度,继续遍历射线数据表至射线04。由于射线04对应边界线34,而此时open表中不存在边界线34的遮挡线,于是将边界线34插入至open表的表头,此时open表为:边界线34,然后由于射线04对应边界线34的终点,则从open表中将边界线34移除,发现open表更新为:空,即open表的表头数据发生变化,则认为边界线34存在作为顶层边界线的区段,于是进一步判断边界线34的端点4未被遮挡,确定射线04为顶层边界线的区段所对应的射线,从而得到边界线34作为顶层边界线的区段所对应的两条射线为:射线02和射线04,计算边界线34与射线02和射线04之间的交点,即为点2’和点4,将点2’和点4保存至out表中。由于射线数据表未遍历完,故以射线04的射线角度为新的初始角度,继续遍历射线数据表至射线05,由于为了简化描述,未考虑方框的四条边作为边界线,实际上射线04与射线05之间的部分也为可见区域,此处省略,不描述,则继续以射线05的射线角度为新的初始角度,此时open表为:空,不存在边界线56的遮挡线,于是将边界线56插入至open表的表头,此时open表为:边界线56,然后由于射线05对应边界线56的起点,继续遍历射线数据表至射线07。由于射线07对应边界线78,而此时open表中不存在边界线78的遮挡线,于是将边界线78插入到open表的表头,此时open表为:边界线78、边界线56,然后由于射线07对应边界线78的起点,继续遍历射线数据表至射线06。由于射线06对应边界线56,而此时open表中存在边界线56的遮挡线,即边界线78,于是将边界线12插入至边界线78之后,此时open表为:边界线78、边界线56,然后由于射线06对应边界线56的终点,则从open表中将边界线56移除,发现open表更新为:边界线78,即open表的表头数据与以射线05的射线角度为新的初始角度时的open表发生变化,则认为边界线56存在作为顶层边界线的区段,于是进一步判断边界线56的端点6被遮挡,选取射线角度与初始角度(射线05的角度)最接近的射线,即射线07,为边界线56作为顶层边界线的区段所对应的射线,从而得到边界线56作为顶层边界线的区段所对应的两条射线为:射线05和射线07,计算边界线56与射线05和射线07之间的交点,即为点5和点7’,将点5和点7’保存至out表中。由于射线数据表未遍历完,此时以射线07的射线角度为新的初始角度,继续遍历射线数据表至射线08。由于射线08对应边界线78,而此时open表中不存在边界线78的遮挡线,于是将边界线78插入至open表的表头,此时open表为:边界线78,然后由于射线08对应边界线78的终点,则从open表中将边界线78移除,发现open表更新为:空,即open表的表头数据发生变化,则认为边界线78存在作为顶层边界线的区段,于是进一步判断边界线78的端点8未被遮挡,确定射线08为顶层边界线的区段所对应的射线,从而得到边界线78作为顶层边界线的区段所对应的两条射线为:射线07和射线08,计算边界线78与射线07和射线08之间的交点,即为点7和点8,将点7和点8保存至out表中。由于射线数据表已遍历完,则将所有交点按照对应的射线的射线角度的顺序依次连接,即按照1、2、2’、4、5、7’、7、8到1的顺序,所围成的区域即为目标点的可见区域。
请参阅图8,图8是本申请目标点的可见区域的确定装置一实施例的框架示意图。目标点的可见区域的确定装置80包括:边界线获取模块800,所述边界线获取模块800用于获取目标点的视野范围内的二维地图地形数据,形成边界线信息;射线数据表生成模块802,所述射线数据表生成模块802用于从所述目标点向每条边界线的两个端点均发射一条射线,构建射线数据表,并以射线角度为顺序对所述射线数据表进行排序;其中,所述射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;遮挡分析模块804,所述遮挡分析模块804用于通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线;可见区域确定模块806,所述可见区域确定模块806用于根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域。
在一些实施例中,所述二维地图地形数据采用多边形表示;边界线获取模块800执行获取目标点的视野范围内的二维地图地形数据,形成边界线信息的步骤,包括:以所述目标点为中心,获取目标点的视野范围内的表示障碍物的所有多边形,将所有多边形的边作为边界线。
在一些实施例中,射线数据表生成模块802执行以射线角度为顺序对所述射线数据表进行排序的步骤,包括:从所述射线数据表选择一条所对应的边界线的端点无遮挡的射线,作为起始射线,并以所述起始射线的射线角度为初始角度对所述射线数据表进行排序。
在一些实施例中,遮挡分析模块804执行通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线,包括:从初始角度开始,遍历所述射线数据表,并构造open表;所述open表有序保存有每条射线的端点对应的边界线的遮挡线;当遍历至设定射线时,根据所述设定射线的端点对应的边界线以及所述open表,确定所述设定射线是否为顶层边界线所对应的射线;当确定所述设定射线为某边界线作为顶层边界线的区段所对应的射线时,则找到该边界线作为顶层边界线的区段所对应的两条射线为所述初始角度对应的射线和所述设定射线,并以所述设定射线的射线角度为新的初始角度,继续遍历所述射线数据表。
在一些实施例中,遮挡分析模块804执行当遍历至设定射线时,根据所述设定射线的端点对应的边界线以及所述open表,确定所述设定射线是否为顶层边界线所对应的射线,包括:判断所述open表中是否存在所述设定射线的端点对应的边界线的第一遮挡线;若存在,则将所述设定射线的端点对应的边界线插入到所述第一遮挡线之后,若不存在,则将所述设定射线的端点对应的边界线插入到所述open表的表头;判断所述设定射线的端点是否为所述设定射线的端点对应的边界线的终点;若是,则从所述open表中将所述设定射线的端点对应的边界线移除,并在所述open表的表头数据变化时认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,以查找所述设定射线的端点对应的边界线作为顶层边界线的区段所对应的射线;若否,则不能确定所述设定射线是否为顶层边界线所对应的射线,继续遍历所述射线数据表。
在一些实施例中,遮挡分析模块804执行从所述open表中将所述设定射线的端点对应的边界线移除,并在所述open表的表头数据变化时认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,以查找所述设定射线的端点对应的边界线作为顶层边界线的区段所对应的射线,包括:从所述open表中将所述设定射线的端点对应的边界线移除,判断所述open表的表头数据是否变化;若未变化,则认为所述设定射线的端点对应的边界线不存在作为顶层边界线的区段,即确定所述设定射线不为顶层边界线的区段所对应的射线;若变化,则认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,并进一步判断所述设定射线的端点是否被遮挡;若未被遮挡,则确定所述设定射线为顶层边界线的区段所对应的射线;若被遮挡,则获取所述设定射线的端点对应的边界线的每条遮挡线所对应的两条射线,从所述每条遮挡线所对应的两条射线中选取射线角度与所述初始角度最接近的射线为顶层边界线的区段所对应的射线。
在一些实施例中,可见区域确定模块806执行根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域,包括:计算每条边界线与其作为顶层边界线的区段所对应的两条射线之间的交点,将所述交点保存至out表中;根据所述out表中的所有交点,得到所述目标点的可见区域。
请参阅图9,图9是本申请电子设备一实施例的框架示意图。电子设备90包括相互耦接的存储器91和处理器92,处理器92用于执行存储器91中存储的程序指令,以实现上述任意一种目标点的可见区域的确定方法实施例的步骤。在一个具体的实施场景中,电子设备90可以包括但不限于:微型计算机、服务器。
具体而言,处理器92用于控制其自身以及存储器91以实现上述任意一种目标点的可见区域的确定方法实施例的步骤。处理器92还可以称为CPU(Central Processing Unit,中央处理单元)。处理器92可能是一种集成电路芯片,具有信号的处理能力。处理器92还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器92可以由集成电路芯片共同实现。
请参阅图10,图10是本申请计算机可读存储介质一实施例的框架示意图。计算机可读存储介质100存储有能够被处理器运行的程序指令1000,程序指令1000用于实现上述任意一种目标点的可见区域的确定方法实施例的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (10)

1.一种目标点的可见区域的确定方法,其特征在于,所述目标点的可见区域的确定方法包括:
获取目标点的视野范围内的二维地图地形数据,形成边界线信息;
从所述目标点向每条边界线的两个端点均发射一条射线,构建射线数据表;其中,所述射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;
以射线角度为顺序对所述射线数据表进行排序;
通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线;
根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域。
2.根据权利要求1所述的目标点的可见区域的确定方法,其特征在于,所述二维地图地形数据采用多边形表示;
所述获取目标点的视野范围内的二维地图地形数据,形成边界线信息,包括:
以所述目标点为中心,获取目标点的视野范围内的表示障碍物的所有多边形,将所有多边形的边作为边界线。
3.根据权利要求1所述的目标点的可见区域的确定方法,其特征在于,所述以射线角度为顺序对所述射线数据表进行排序,包括:
从所述射线数据表选择一条所对应的边界线的端点无遮挡的射线,作为起始射线,并以所述起始射线的射线角度为初始角度对所述射线数据表进行排序。
4.根据权利要求1所述的目标点的可见区域的确定方法,其特征在于,所述通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线,包括:
从初始角度开始,遍历所述射线数据表,并构造open表;所述open表有序保存有每条射线的端点对应的边界线的遮挡线;
当遍历至设定射线时,根据所述设定射线的端点对应的边界线以及所述open表,确定所述设定射线是否为顶层边界线所对应的射线;
当确定所述设定射线为某边界线作为顶层边界线的区段所对应的射线时,则找到该边界线作为顶层边界线的区段所对应的两条射线为所述初始角度对应的射线和所述设定射线,并以所述设定射线的射线角度为新的初始角度,继续遍历所述射线数据表。
5.根据权利要求4所述的目标点的可见区域的确定方法,其特征在于,所述当遍历至设定射线时,根据所述设定射线的端点对应的边界线以及所述open表,确定所述设定射线是否为顶层边界线所对应的射线,包括:
判断所述open表中是否存在所述设定射线的端点对应的边界线的第一遮挡线;
若存在,则将所述设定射线的端点对应的边界线插入到所述第一遮挡线之后,若不存在,则将所述设定射线的端点对应的边界线插入到所述open表的表头;
判断所述设定射线的端点是否为所述设定射线的端点对应的边界线的终点;
若是,则从所述open表中将所述设定射线的端点对应的边界线移除,并在所述open表的表头数据变化时认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,以查找所述设定射线的端点对应的边界线作为顶层边界线的区段所对应的射线;
若否,则不能确定所述设定射线是否为顶层边界线所对应的射线,继续遍历所述射线数据表。
6.根据权利要求5所述的目标点的可见区域的确定方法,其特征在于,所述从所述open表中将所述设定射线的端点对应的边界线移除,并在所述open表的表头数据变化时认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,以查找所述设定射线的端点对应的边界线作为顶层边界线的区段所对应的射线,包括:
从所述open表中将所述设定射线的端点对应的边界线移除,判断所述open表的表头数据是否变化;
若未变化,则认为所述设定射线的端点对应的边界线不存在作为顶层边界线的区段,即确定所述设定射线不为顶层边界线的区段所对应的射线;
若变化,则认为所述设定射线的端点对应的边界线存在作为顶层边界线的区段,并进一步判断所述设定射线的端点是否被遮挡;
若未被遮挡,则确定所述设定射线为顶层边界线的区段所对应的射线;
若被遮挡,则获取所述设定射线的端点对应的边界线的每条遮挡线所对应的两条射线,从所述每条遮挡线所对应的两条射线中选取射线角度与所述初始角度最接近的射线为顶层边界线的区段所对应的射线。
7.根据权利要求1至6任一项所述的目标点的可见区域的确定方法,其特征在于,所述根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域,包括:
计算每条边界线与其作为顶层边界线的区段所对应的两条射线之间的交点,将所述交点保存至out表中;
根据所述out表中的所有交点,得到所述目标点的可见区域。
8.一种目标点的可见区域的确定装置,其特征在于,包括:
边界线获取模块,所述边界线获取模块用于获取目标点的视野范围内的二维地图地形数据,形成边界线信息;
射线数据表生成模块,所述射线数据表生成模块用于从所述目标点向每条边界线的两个端点均发射一条射线,构建射线数据表,并以射线角度为顺序对所述射线数据表进行排序;其中,所述射线数据表中每条射线的数据信息包括射线角度以及端点对应的边界线;
遮挡分析模块,所述遮挡分析模块用于通过遍历所述射线数据表,找到每条边界线作为顶层边界线的区段所对应的两条射线;
可见区域确定模块,所述可见区域确定模块用于根据每条边界线作为顶层边界线的区段所对应的两条射线,确定每条边界线对应的可见区域,并根据每条边界线对应的可见区域,确定所述目标点的可见区域。
9.一种电子设备,其特征在于,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至7任一项所述的目标点的可见区域的确定方法。
10.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至7任一项所述的目标点的可见区域的确定方法。
CN202110402350.0A 2021-04-14 2021-04-14 目标点的可见区域的确定方法及相关装置 Active CN113117334B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110402350.0A CN113117334B (zh) 2021-04-14 2021-04-14 目标点的可见区域的确定方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110402350.0A CN113117334B (zh) 2021-04-14 2021-04-14 目标点的可见区域的确定方法及相关装置

Publications (2)

Publication Number Publication Date
CN113117334A true CN113117334A (zh) 2021-07-16
CN113117334B CN113117334B (zh) 2023-06-20

Family

ID=76776433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110402350.0A Active CN113117334B (zh) 2021-04-14 2021-04-14 目标点的可见区域的确定方法及相关装置

Country Status (1)

Country Link
CN (1) CN113117334B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113628471A (zh) * 2021-08-09 2021-11-09 广州文远知行科技有限公司 一种无人驾驶车辆的调度方法、装置、设备和介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003123096A (ja) * 2002-09-02 2003-04-25 Namco Ltd ゲームシステム及び情報記憶媒体
US8576235B1 (en) * 2009-07-13 2013-11-05 Disney Enterprises, Inc. Visibility transition planning for dynamic camera control
CN107667393A (zh) * 2015-05-18 2018-02-06 盖姆科公司 视频游戏系统
CN108236783A (zh) * 2018-01-09 2018-07-03 网易(杭州)网络有限公司 游戏场景中模拟光照的方法、装置、终端设备及存储介质
CN110620924A (zh) * 2019-09-23 2019-12-27 广州虎牙科技有限公司 编码数据的处理方法、装置、计算机设备及存储介质
CN110728652A (zh) * 2019-09-04 2020-01-24 中国地质大学(武汉) 面向二维规则矢量空间数据的可视域分析方法及装置
CN111773685A (zh) * 2020-06-16 2020-10-16 网易(杭州)网络有限公司 动态生成游戏角色视野的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003123096A (ja) * 2002-09-02 2003-04-25 Namco Ltd ゲームシステム及び情報記憶媒体
US8576235B1 (en) * 2009-07-13 2013-11-05 Disney Enterprises, Inc. Visibility transition planning for dynamic camera control
CN107667393A (zh) * 2015-05-18 2018-02-06 盖姆科公司 视频游戏系统
CN108236783A (zh) * 2018-01-09 2018-07-03 网易(杭州)网络有限公司 游戏场景中模拟光照的方法、装置、终端设备及存储介质
CN110728652A (zh) * 2019-09-04 2020-01-24 中国地质大学(武汉) 面向二维规则矢量空间数据的可视域分析方法及装置
CN110620924A (zh) * 2019-09-23 2019-12-27 广州虎牙科技有限公司 编码数据的处理方法、装置、计算机设备及存储介质
CN111773685A (zh) * 2020-06-16 2020-10-16 网易(杭州)网络有限公司 动态生成游戏角色视野的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113628471A (zh) * 2021-08-09 2021-11-09 广州文远知行科技有限公司 一种无人驾驶车辆的调度方法、装置、设备和介质

Also Published As

Publication number Publication date
CN113117334B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
CN109523621B (zh) 对象的加载方法和装置、存储介质、电子装置
US20220148278A1 (en) Method and device for a placement of a virtual object of an augmented or mixed reality application in a real-world 3d environment
CN112904369B (zh) 机器人重定位方法、装置、机器人和计算机可读存储介质
US8994727B2 (en) Map symbol drawing device
CN104968276A (zh) 图像处理装置以及区域抽出方法
CN111870952A (zh) 一种高度图生成方法、装置、设备及存储介质
EP3905204A1 (en) Scene recognition method and apparatus, terminal, and storage medium
CN111870953A (zh) 一种高度图生成方法、装置、设备及存储介质
CN113117334A (zh) 目标点的可见区域的确定方法及相关装置
CN114779787A (zh) 栅格地图构建方法、机器人及机器可读存储介质
CN113244619B (zh) 数据处理方法、装置、设备及存储介质
CN113506365A (zh) 图像显示方法及相关装置和电子设备、存储介质
US10872469B2 (en) System and method for subdividing large polygon mesh datasets into hierarchical subsets for level-of-detail use
CN112619152A (zh) 游戏包围盒的处理方法、装置及电子设备
CN112999656B (zh) 一种光照探针的处理方法、装置、电子设备及存储介质
CN114904267A (zh) 游戏中的显示控制方法及装置、存储介质、电子设备
CN112540616B (zh) 一种基于无人驾驶的激光点云生成方法及装置
CN112084854B (zh) 一种障碍物检测方法、障碍物检测装置及机器人
CN117408935A (zh) 障碍物检测方法、电子设备和存储介质
CN117180735A (zh) 一种光照处理方法及相关设备
CN111429581A (zh) 游戏模型外轮廓确定、游戏特效添加方法和装置
CN116212369A (zh) 确定潜在物体可见集的方法、装置、电子设备及存储介质
CN116912431B (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
JP2013196648A (ja) 情報処理装置、情報処理方法、プログラムおよびコンピュータ読取り可能な記憶媒体
CN116049505B (zh) 屏幕空间标签碰撞检测方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant