CN110648402A - 虚拟物体沿曲线放置的方法、装置及设备 - Google Patents
虚拟物体沿曲线放置的方法、装置及设备 Download PDFInfo
- Publication number
- CN110648402A CN110648402A CN201910932783.XA CN201910932783A CN110648402A CN 110648402 A CN110648402 A CN 110648402A CN 201910932783 A CN201910932783 A CN 201910932783A CN 110648402 A CN110648402 A CN 110648402A
- Authority
- CN
- China
- Prior art keywords
- placing
- virtual object
- curve
- placement
- coordinates
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Pure & Applied Mathematics (AREA)
- Geometry (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Human Computer Interaction (AREA)
- Algebra (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供的一种虚拟物体沿曲线放置的方法、装置及设备。其中,一种虚拟物体沿曲线放置的方法,将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取放置曲线的总长度;获取在放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数;针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用贝塞尔曲线模型,获得该待放置虚拟物体在放置曲线上的放置坐标;按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。本方案可以提高虚拟物体沿曲线放置的效率。
Description
技术领域
本发明涉及虚拟物体技术领域,特别是涉及一种虚拟物体沿曲线放置的方法、装置及设备。
背景技术
在某些虚拟场景中,多个虚拟物体需要沿一定曲线放置。举例而言,在电子游戏中需要沿通关轨迹对应的曲线,放置通关地点的标志性建筑;在用于记录用户行程的应用中,需要沿该用户的行程轨迹对应的曲线放置用户指定的虚拟物体,例如当地美食等等。
相关技术中,往往针对每个虚拟物体,由人工目测该虚拟物体在一定曲线上的生成位置,并在该曲线上人工标注所目测的生成位置,得到标注图,从而按照所得到的标注图在该曲线上放置相应的虚拟物体,实现虚拟物体。但是,在具体应用中,存在大量需要沿一定曲线放置虚拟物体的情况。此时,如果按照上述标注图生成虚拟物体,容易导致需要人工进行大量的目测和标注工作,虚拟物体的放置效率相对而言较低。
发明内容
本发明实施例的目的在于提供一种虚拟物体沿曲线放置的方法、装置及设备,以实现提高虚拟物体沿曲线放置的效率的效果。具体技术方案如下:
第一方面,本发明实施例提供了一种虚拟物体沿曲线放置的方法,该方法包括:
将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取所述放置曲线的总长度;其中,所述预设起点为所述放置曲线的起点,所述预设终点为所述放置曲线的终点,所述控制点为用于控制所述放置曲线的弧度的点;
基于所述总长度,获取在所述放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数;
针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标;
按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体。
可选的,所述针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标,包括:
将该待放置虚拟物体对应的子长度差值模型,输入牛顿迭代模型进行迭代,获得该待放置虚拟物体对应的均匀划分参数;其中,所述子长度差值模型为用于获取第一子长度与第二子长度的差值的模型;所述第一子长度为按照所述放置曲线对应的时间参数划分所述放置曲线得到的子曲线的长度;所述第二子长度为按照所述时间参数划分所述总长度得到的长度;进行第一次迭代时,所述时间参数为初始划分参数:该待放置虚拟物体的物体标识和所述待放置虚拟物体的个数的乘积的倒数;
针对每个待放置虚拟物体,将该待放置虚拟物体对应的均匀划分参数、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标。
可选的,在所述按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体之前,所述方法还包括:
分别获取每个所述放置坐标在所述放置曲线上的切线;
针对每个所述放置坐标,计算该放置坐标的所述切线的斜率,并对所述斜率进行反正切计算,得到该放置坐标对应的待放置虚拟物体的放置角度;
所述按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上生成相应的待放置虚拟物体,包括:
针对每个待放置虚拟物体,将该待放置虚拟物体的中心点作为旋转轴,按照所述旋转轴与所述放置曲线所在的平面成所述放置角度的规则,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
可选的,所述按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体,包括:
针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
可选的,所述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体,包括:
将所述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体的步骤,封装为虚拟物体生成模型;
将所述虚拟物体生成模型,转换为上下文菜单;
将所述上下文菜单添加至所述游戏引擎的编辑器中,以使得所述游戏引擎的编辑器,执行所述上下文菜单。
第二方面,本发明实施例提供了一种虚拟物体沿曲线放置的装置,该装置包括:
放置曲线获取模块,用于将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取所述放置曲线的总长度;其中,所述预设起点为所述放置曲线的起点,所述预设终点为所述放置曲线的终点,所述控制点为用于控制所述放置曲线的弧度的点;
物体数量获取模块,用于基于所述总长度,获取在所述放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数;
放置坐标获取模块,用于针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标;
放置模块,用于按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体。
可选的,所述放置坐标获取模块,具体用于:
将该待放置虚拟物体对应的子长度差值模型,输入牛顿迭代模型进行迭代,获得该待放置虚拟物体对应的均匀划分参数;其中,所述子长度差值模型为用于获取第一子长度与第二子长度的差值的模型;所述第一子长度为按照所述放置曲线对应的时间参数划分所述放置曲线得到的子曲线的长度;所述第二子长度为按照所述时间参数划分所述总长度得到的长度;进行第一次迭代时,所述时间参数为初始划分参数:该待放置虚拟物体的物体标识和所述待放置虚拟物体的个数的乘积的倒数;
针对每个待放置虚拟物体,将该待放置虚拟物体对应的均匀划分参数、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标。
可选的,所述放置模块,具体用于:
分别获取每个所述放置坐标在所述放置曲线上的切线;
针对每个所述放置坐标,计算该放置坐标的所述切线的斜率,并对所述斜率进行反正切计算,得到该放置坐标对应的待放置虚拟物体的放置角度;
针对每个待放置虚拟物体,将该待放置虚拟物体的中心点作为旋转轴,按照所述旋转轴与所述放置曲线所在的平面成所述放置角度的规则,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
可选的,所述放置模块,具体用于:
针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
可选的,所述放置模块,具体用于:
将所述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体的步骤,封装为虚拟物体生成模型;
将所述虚拟物体生成模型,转换为上下文菜单;
将所述上下文菜单添加至所述游戏引擎的编辑器中,以使得所述游戏引擎的编辑器,执行所述上下文菜单。
第三方面,本发明实施例提供了一种电子设备,该设备包括:
处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面提供的虚拟物体沿曲线放置的方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的虚拟物体沿曲线放置的方法的步骤。
本发明实施例提供的方案中,基于预设的间隔长度和所述总长度,获取在所述放置曲线上,按照所述预设的间隔长度进行放置的待放置虚拟物体的个数,进而可以针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用贝塞尔曲线模型,自动获得该待放置虚拟物体在放置曲线上的放置坐标;从而可以按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。通过自动获得放置坐标,实现虚拟物体在放置曲线上的放置位置的自动确定。因此,与利用人工目测并标注放置位置得到的标注图沿一定曲线放置虚拟物体相比,可以节约人工目测并标注放置位置以得到标注图的步骤,提高虚拟物体沿曲线放置的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一实施例提供的虚拟物体沿曲线放置的方法的流程示意图;
图2为本发明另一实施例提供的虚拟物体沿曲线放置的方法的流程示意图;
图3为本发明另一实施例提供的虚拟物体沿曲线放置的方法中,一种应用场景的示例图;
图4为本发明另一实施例提供的虚拟物体沿曲线放置的方法中,另一种应用场景的示例图;
图5为本发明另一实施例提供的虚拟物体沿曲线放置的装置的结构示意图;
图6为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明一实施例的虚拟物体沿曲线放置的方法进行介绍。
本发明实施例提供的虚拟物体沿曲线放置的方法,可以应用于电子设备。在具体应用中,电子设备可以是多种的,具体可以包括台式计算机、便携式计算机、互联网电视、智能移动终端、服务器以及可穿戴式智能终端等等,在此不作限定,任何可以实现本发明实施例的电子设备,均属于本发明实施例的保护范围。
如图1所示,本发明一实施例的虚拟物体沿曲线放置的方法的流程,该方法可以包括如下步骤:
S101,将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取放置曲线的总长度。其中,预设起点为放置曲线的起点,预设终点为放置曲线的终点,控制点为用于控制放置曲线的弧度的点。
其中,贝塞尔曲线模型是一种利用矢量绘制曲线的模型,可以通过设置曲线的起点、终点以及控制曲线弧度的控制点,得到相应的曲线。因此,可以将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线。在具体应用中,可以按照对放置曲线弧度和形状的需求,设置大于0的指定个数的预设控制点,相应的,贝塞尔曲线模型具体可以为与预设控制点的个数对应的不同阶的曲线模型,每增加一个控制点,贝塞尔曲线模型的阶数增加一阶。
举例而言,当预设控制点的个数为1个时,贝塞尔曲线模型可以为二阶曲线模型,模型一:
B(t)=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1];
其中,B为放置曲线,P0为预设起点,P1为预设控制点,P2为预设终点,t为生成曲线的时间参数。
当预设控制点的个数为2个时,贝塞尔曲线模型可以为三阶曲线模型,模型二:
B(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P3+t3P2,t∈[0,1]。
其中,P1为预设第一控制点,P2为预设第二控制点。
并且,获取放置曲线的总长度的具体方式可以是多种的。示例性的,可以将放置曲线的曲线模型输入曲线长度模型,得到放置曲线的总长度。举例而言,曲线长度模型可以包括模型三:
其中,B'(t)为放置曲线的曲线模型的导函数。放置曲线的曲线模型具体可以为上述贝塞尔曲线模型,例如,模型一,或者模型二。或者,示例性的,放置曲线的长度可能是预先设置的,因此,可以接收或者读取所得到的放置曲线对应的预设总长度。任何能够得到放置曲线的贝塞尔曲线模型,以及放置曲线的总长度的获取方式,均可用于本发明,本实施例对此不作限制。
S102,基于放置曲线的总长度,获取在放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数。
在具体应用中,基于放置曲线的总长度,获取在放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数,可以包括:计算放置曲线的总长度与预设的间隔长度之间的比值,得到在放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数。其中,预设的间隔长度为放置曲线上处于相邻待放置虚拟物体之间的距离,用于限制多个待放置虚拟物体在放置曲线上放置的密集程度。示例性的,预设的间隔长度为d,放置曲线的总长度为L,则沿该条放置曲线放置的待放置虚拟物体的个数num=L/d。
并且,获取待放置虚拟物体的个数后,可以自定义相应数量的虚拟物体,或者,电子设备从云服务器获取相应数量的虚拟物体。举例而言,可以由用户自行绘制相应数量的虚拟物体,或者,云服务器中预先存储有多种虚拟物体,例如,美食和建筑物等等,电子设备可以从云服务器获取相应数量的虚拟物体。
S103,针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用贝塞尔曲线模型,获得该待放置虚拟物体在放置曲线上的放置坐标。
其中,待放置虚拟物体的物体标识为表明待放置物体是多个待放置虚拟物体中的第i个待放置虚拟物体的标识,1≤i≤N,N为待放置虚拟物体的个数。获得待放置虚拟物体在放置曲线上的放置坐标的具体方式,可以是多种的,下面以示例性描述的形式进行说明。
示例性的,当待放置虚拟物体在放置曲线上非均匀地放置时,可以利用待放置虚拟物体的物体标识和待放置虚拟物体的个数,获取待放置物体的初始划分参数:初始划分参数=1/(num×i);将初始划分参数作为贝塞尔曲线模型中的时间参数t,与预设起点的坐标、预设控制点的坐标以及预设终点的坐标输入贝塞尔曲线模型,得到贝塞尔曲线模型的因变量的值。由此,待放置物体的放置坐标为以所输入的时间参数作为横坐标,所得到的因变量的值作为纵坐标的坐标值。
或者,示例性的,当待放置虚拟物体在放置曲线上均匀地放置时,可以在得到初始划分参数后,利用牛顿迭代法获取均匀划分参数,进而将均匀划分参数作为贝塞尔曲线模型中的时间参数t,与预设起点的坐标、预设控制点的坐标以及预设终点的坐标输入贝塞尔曲线模型,得到贝塞尔曲线模型的因变量的值。由此,待放置物体的放置坐标为以所输入的时间参数作为横坐标,所得到的因变量的值作为纵坐标的坐标值。并且,由于此时的时间参数是利用牛顿迭代法获取的均匀划分参数,因此,可以保证得到的放置坐标在贝塞尔曲线上的分布式均匀的。为了便于理解和合理布局,后续在本发明图2实施例中对待放置虚拟物体在放置曲线上均匀地放置时,待放置虚拟物体的放置坐标得获取方式进行具体说明。
任何能够得到待放置虚拟物体的放置坐标的方式,均可用于本发明,本实施例对此不作限制。
S104,按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。
在得到每个待放置虚拟物体的放置坐标后,可以针对每个待放置虚拟物体,在放置曲线上该待放置虚拟物体的放置坐标处,放置该待放置虚拟物体。在具体应用中,待放置虚拟物体的放置可以是人工放置,或者,自动放置。为了便于理解和合理布局,后续以可选实施例的形式说明自动放置的具体方式。
并且,在放置待放置虚拟物体时,可以同时放置所有待放置虚拟物体,也可以逐一放置待放置虚拟物体。
本发明实施例提供的方案中,基于预设的间隔长度和所述总长度,获取在所述放置曲线上,按照所述预设的间隔长度进行放置的待放置虚拟物体的个数,进而可以针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用贝塞尔曲线模型,自动获得该待放置虚拟物体在放置曲线上的放置坐标;从而可以按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。通过自动获得放置坐标,实现虚拟物体在放置曲线上的放置位置的自动确定。因此,与利用人工目测并标注放置位置得到的标注图沿一定曲线放置虚拟物体相比,可以节约人工目测并标注放置位置以得到标注图的步骤,提高虚拟物体沿曲线放置的效率。
可选的,在上述按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体之前,本发明实施例提供的虚拟物体沿曲线放置的方法,还可以包括如下步骤:
分别获取每个放置坐标在放置曲线上的切线;
针对每个放置坐标,计算该放置坐标的切线的斜率,并对斜率进行反正切计算,得到该放置坐标对应的待放置虚拟物体的放置角度;
相应的,上述按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体,包括:
针对每个待放置虚拟物体,将该待放置虚拟物体的中心点作为旋转轴,按照旋转轴与放置曲线所在的平面成放置角度的规则,在放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
在具体应用中,当待放置物体的中心点与放置曲线所在的平面所成的角度不同时,待放置物体在放置曲线上呈现的放置方向不同。因此,为了保证多个待放置物体在放置曲线上的放置方向与放置曲线的弧度一致,可以获取每个待放置虚拟物体的放置坐标处在放置曲线上的切线。在此基础上,可以计算所得到的切线的斜率,进而对斜率进行反正切计算,得到该放置坐标对应的待放置虚拟物体的放置角度。当将该待放置虚拟物体的中心点作为旋转轴,按照旋转轴与放置曲线所在的平面成放置角度的规则,在放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体时,待放置虚拟物体与放置曲线所在的平面所成的角度即为待放置虚拟物体的切线与放置曲线所成的角度。因此,可以保证多个待放置物体在放置曲线上的放置方向与放置曲线的弧度一致,减少放置方向不一致造成的杂乱。
并且,当存在多个放置曲线时,待放置虚拟物体在放置曲线上的放置可以是多种的。示例性的,如果全部待放置虚拟物体为同时放置时,对于在两个不同的放置曲线上均存在放置坐标的待放置虚拟物体,可以在确定该待放置虚拟物体的两个放置坐标对应的放置角度后,先后按照其中一个放置角度进行放置。或者,示例性的,如果待放置虚拟物体为逐一放置时,对于在两个不同的放置曲线上均存在放置坐标的待放置虚拟物体,在每个放置曲线上的放置为独立放置。此时,在后放置相当于在按照在先放置的放置角度放置后,按照在后放置的放置角度进行调整。
在本可选实施例中,放置该待放置虚拟物体时,待放置虚拟物体与放置曲线所在的平面所成的角度即为待放置虚拟物体的切线与放置曲线所成的角度。因此,可以保证多个待放置物体在放置曲线上的放置方向与放置曲线的弧度一致,减少放置方向不一致造成的杂乱。
如图2所示,本发明另一实施例的虚拟物体沿曲线放置的方法的流程,该方法可以包括:
S201,将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取放置曲线的总长度。其中,预设起点为放置曲线的起点,预设终点为放置曲线的终点,控制点为用于控制放置曲线的弧度的点。
S202,基于放置曲线的总长度,获取在放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数。
上述S201至S202与本发明图1实施例的S101至S102为相同的步骤,在此不再赘述,详见上述本发明图1实施例的描述。
S203,针对每个待放置虚拟物体,将该待放置虚拟物体对应的子长度差值模型,输入牛顿迭代模型进行迭代,获得该待放置虚拟物体对应的均匀划分参数。其中,子长度差值模型为用于获取第一子长度与第二子长度的差值的模型;第一子长度为按照放置曲线对应的时间参数划分放置曲线得到的子曲线的长度;第二子长度为放置曲线对应的按照时间参数划分放置曲线的总长度得到的长度;进行第一次迭代时,放置曲线对应的时间参数为初始划分参数:该待放置虚拟物体的物体标识和待放置虚拟物体的个数的乘积的倒数。
为了实现各待放置虚拟物体的放置坐标在放置曲线上均匀分布,需要保证放置曲线上处于各放置坐标之间的曲线的长度相同。并且,第一子长度为按照放置曲线对应的时间参数划分放置曲线得到的子曲线的长度;第二子长度为按照放置曲线对应的时间参数划分放置曲线的总长度得到的长度。在此基础上,针对每个待放置虚拟物体,将该待放置虚拟物体对应的、且用于获取第一子长度与第二子长度的差值的子长度差值模型,输入牛顿迭代模型进行迭代时,相当于通过迭代多次调整时间参数,且调整的目标为保证牛顿迭代模型上一次的输出与牛顿迭代模型当前的输出的差异小于预设差异阈值。达到该调整目标时,表明放置曲线上处于各放置坐标之间的曲线的长度,与均匀划分放置曲线的总长度得到的平均值之间的差异小于预设差异阈值,后续利用均匀划分参数得到的各放置坐标时,放置曲线上处于各放置坐标之间的曲线的长度相同,因此,此时可以结束迭代,并将牛顿迭代模型当前的输出作为均匀划分参数。
示例性的,初始划分参数为待放置虚拟物体的物体标识和待放置虚拟物体的个数的乘积的倒数:1/(num×i)。利用贝塞尔曲线模型中的时间参数t构建用于获取第一子长度的模型和用于获取第二子长度的模型。具体的,用于获取第一子长度的模型为:
其中,ti为第i个待放置虚拟物体对应的初始划分参数,ti+1为第i+1个待放置虚拟物体对应的初始划分参数。用于获取第一子长度的模型为L(1)×t,其中,L(1)为放置曲线的总长度。由此,待放置虚拟物体对应的子长度差值模型为模型四:F(t)=L(t)-L(1)×t。
将模型四输入牛顿迭代模型得到:
其中,n为牛顿迭代模型的迭代次数。在进行迭代的过程中,当n为1时,tn为第i个待放置虚拟物体对应的初始划分参数1/(num×i),当n大于1时,tn为牛顿迭代模型上一次的输出。经过多次迭代,当tn+1与tn之间的差异小于预设阈值时,结束迭代,并将此时得到的tn+1作为均匀划分参数。
S204,针对每个待放置虚拟物体,将该待放置虚拟物体对应的均匀划分参数、待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得该待放置虚拟物体在放置曲线上的放置坐标。
示例性的,针对每个待放置虚拟物体,将通过步骤S203得到的均匀划分参数作为贝塞尔曲线模型中的时间参数t,与预设起点的坐标、预设控制点的坐标以及预设终点的坐标输入贝塞尔曲线模型,得到贝塞尔曲线模型的因变量的值。由此,待放置物体的放置坐标为:以所输入的时间参数作为横坐标,所得到的因变量的值作为纵坐标的坐标值。
S205,按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。
上述S205与本发明图1实施例的S104为相同的步骤,在此不再赘述,详见上述本发明图1实施例的描述。
示例性的,如图3所示,在虚拟游戏中,分别利用贝塞尔曲线模型得到通关路径对应的放置曲线301和放置曲线302。其中,放置曲线301的预设起点的坐标为坐标SC1,预设控制点的坐标为坐标CC1以及预设终点的坐标为坐标EC1;放置曲线302的预设起点的坐标为坐标SC2,预设控制点的坐标为坐标CC2以及预设终点的坐标为坐标EC2。基于放置曲线301的总长度L1,得到按照预设的间隔长度d1在放置曲线301的待放置虚拟物体的个数为2个;基于放置曲线302的总长度L2,得到按照预设的间隔长度d2在放置曲线302的待放置虚拟物体的个数为3个。
由此,对于放置曲线301,第1个虚拟物体建筑物303的初始划分参数为1÷(2×1)=0.5,第2个虚拟物体建筑物304的初始划分参数为1÷(2×2)=0.25。将初始划分参数0.5作为贝塞尔曲线模型的时间参数t,则建筑物303对应的牛顿迭代模型为:
在进行第一次迭代时tn=0.5。依此经过多次迭代,当tn+1与tn之间的差异小于预设阈值时,结束迭代,并将此时得到的tn+1作为均匀划分参数tu。将建筑物303对应的均匀划分参数tu、待放置虚拟物体的个数2、预设起点的坐标SC1、预设控制点的坐标CC1以及预设终点的坐标EC1,输入贝塞尔曲线模型,获得建筑物303在放置曲线上的放置坐标(0.5,B(tu))。
与上述获取建筑物303的位置坐标类似的,可以按照上述方式获得建筑物304的位置坐标,区别在于所使用的初始划分参数为建筑物304对应的初始划分参数。并且,与获取沿放置曲线301均匀放置的建筑物303和建筑物304的放置坐标类似的,可以按照上述方式获得建筑物304、建筑物305以及建筑物306的位置坐标,区别在于所使用的曲线参数为放置曲线302的参数,且获取不同建筑物的放置坐标时,所使用的初始划分参数为该建筑物对应的初始划分参数。
在本发明图2实施例中,通过牛顿迭代法获取的均匀划分参数,可以用于获取在放置曲线上均匀分布的放置坐标,从而可以保证在按照放置坐标放置的待放置虚拟物体沿放置曲线上均匀放置的同时,提高虚拟物体沿曲线放置的效率的效果。
可选的,上述按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体,具体可以包括如下步骤:
针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
在具体应用中,游戏引擎可以是多种的。举例而言,游戏引擎可以包括:Unity以及Cocos。其中,Unity为用于创建诸如三维视频游戏、建筑可视化以及实时三维动画等类型的游戏互动内容的综合型游戏开发工具。Cocos为用于快速生成代码、编辑游戏资源和游戏动画,最终输出适合于多个平台的游戏产品的游戏开发工具。
由于游戏引擎中存在可以自动生成虚拟物体的接口:实例化游戏物体的接口,因此,可以针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。在本可选实施例中,待放置虚拟物体可以由游戏引擎的实例化游戏物体的接口在放置坐标处自动生成,从而实现虚拟物体在曲线上的自动放置,与人工放置虚拟物体相比,可以提高虚拟物体沿曲线放置的效率。
可选的,上述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体,可以包括如下步骤:
将上述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体的步骤,封装为虚拟物体生成模型;
将虚拟物体生成模型,转换为上下文菜单;
将上下文菜单添加至游戏引擎的编辑器中,以使得游戏引擎的编辑器,执行上下文菜单。
在具体应用中,将虚拟物体生成模型,转换为上下文菜单,具体可以是将虚拟物体生成模型定义为Context Menu(上下文菜单),从而通过将上下文菜单添加至游戏引擎的编辑器。由此,当点击该上下文菜单使,游戏引擎的编辑器可以执行该上下文菜单,沿曲线放置虚拟物体。通过本可选实施例,可以在游戏引擎的编辑器中,实现本发明实施例提供的虚拟物品沿曲线放置,从而保证可以在游戏场景的开发环境中,提高虚拟物品的放置效率的效果。
对此,示例性的,如图4所示,可以在游戏引擎中创建脚本,定义并公开放置曲线的起点、控制点以及终点三个矢量变量,以保证可以在游戏引擎的编辑器界面401中的放置曲线的参数输入栏4011,输入放置曲线的起点坐标、控制点坐标以及终点坐标,得到用于确定待放置虚拟物体对应的放置坐标的预设起点的坐标、预设控制点的坐标以及预设终点的坐标。在此基础上,游戏引擎的编辑器可以执行上下文菜单,从而得到展示在图像显示栏4012中的沿曲线放置的虚拟物体的图像,例如,上述本发明图3所示的建筑物沿曲线放置的图像。可见通过本可选实施例,可以将本发明实施例提供的虚拟物品沿曲线放置的方案与游戏引起的编辑器的使用相结合,保证可以在游戏场景的开发环境中,提高虚拟物品的放置效率的效果。
相应于上述方法实施例,本发明一实施例还提供了虚拟物体沿曲线放置的装置。如图5所示,本发明一实施例的虚拟物体沿曲线放置的装置,该装置可以包括:
放置曲线获取模块501,用于将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取所述放置曲线的总长度;其中,所述预设起点为所述放置曲线的起点,所述预设终点为所述放置曲线的终点,所述控制点为用于控制所述放置曲线的弧度的点;
物体数量获取模块502,用于基于所述总长度,获取在所述放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数;
放置坐标获取模块503,用于针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标;
放置模块504,用于按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体。
本发明实施例提供的方案中,基于预设的间隔长度和所述总长度,获取在所述放置曲线上,按照所述预设的间隔长度进行放置的待放置虚拟物体的个数,进而可以针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用贝塞尔曲线模型,自动获得该待放置虚拟物体在放置曲线上的放置坐标;从而可以按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。通过自动获得放置坐标,实现虚拟物体在放置曲线上的放置位置的自动确定。因此,与利用人工目测并标注放置位置得到的标注图沿一定曲线放置虚拟物体相比,可以节约人工目测并标注放置位置以得到标注图的步骤,提高虚拟物体沿曲线放置的效率。
可选的,所述放置坐标获取模块502,具体用于:
将该待放置虚拟物体对应的子长度差值模型,输入牛顿迭代模型进行迭代,获得该待放置虚拟物体对应的均匀划分参数;其中,所述子长度差值模型为用于获取第一子长度与第二子长度的差值的模型;所述第一子长度为按照所述放置曲线对应的时间参数划分所述放置曲线得到的子曲线的长度;所述第二子长度为按照所述时间参数划分所述总长度得到的长度;进行第一次迭代时,所述时间参数为初始划分参数:该待放置虚拟物体的物体标识和所述待放置虚拟物体的个数的乘积的倒数;
针对每个待放置虚拟物体,将该待放置虚拟物体对应的均匀划分参数、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标。
可选的,所述放置模块504,具体用于:
分别获取每个所述放置坐标在所述放置曲线上的切线;
针对每个所述放置坐标,计算该放置坐标的所述切线的斜率,并对所述斜率进行反正切计算,得到该放置坐标对应的待放置虚拟物体的放置角度;
针对每个待放置虚拟物体,将该待放置虚拟物体的中心点作为旋转轴,按照所述旋转轴与所述放置曲线所在的平面成所述放置角度的规则,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
可选的,所述放置模块504,具体用于:
针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
可选的,所述放置模块504,具体用于:
将所述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体的步骤,封装为虚拟物体生成模型;
将所述虚拟物体生成模型,转换为上下文菜单;
将所述上下文菜单添加至所述游戏引擎的编辑器中,以使得所述游戏引擎的编辑器,执行所述上下文菜单。
相应于上述实施例,本发明实施例还提供了一种电子设备,如图6所示,该设备可以包括:
处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器通603过通信总线604完成相互间的通信;
存储器603,用于存放计算机程序;
处理器601,用于执行上述存储器603上所存放的计算机程序时,实现上述实施例中任一虚拟物体沿曲线放置的方法的步骤。
本发明实施例提供的方案中,基于预设的间隔长度和所述总长度,获取在所述放置曲线上,按照所述预设的间隔长度进行放置的待放置虚拟物体的个数,进而可以针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用贝塞尔曲线模型,自动获得该待放置虚拟物体在放置曲线上的放置坐标;从而可以按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。通过自动获得放置坐标,实现虚拟物体在放置曲线上的放置位置的自动确定。因此,与利用人工目测并标注放置位置得到的标注图沿一定曲线放置虚拟物体相比,可以节约人工目测并标注放置位置以得到标注图的步骤,提高虚拟物体沿曲线放置的效率。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明一实施例提供的计算机可读存储介质,包含于电子设备,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,实现上述实施例中任一虚拟物体沿曲线放置的方法的步骤。
本发明实施例提供的方案中,基于预设的间隔长度和所述总长度,获取在所述放置曲线上,按照所述预设的间隔长度进行放置的待放置虚拟物体的个数,进而可以针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用贝塞尔曲线模型,自动获得该待放置虚拟物体在放置曲线上的放置坐标;从而可以按照每个待放置虚拟物体的放置坐标,在放置曲线上放置相应的待放置虚拟物体。通过自动获得放置坐标,实现虚拟物体在放置曲线上的放置位置的自动确定。因此,与利用人工目测并标注放置位置得到的标注图沿一定曲线放置虚拟物体相比,可以节约人工目测并标注放置位置以得到标注图的步骤,提高虚拟物体沿曲线放置的效率。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的虚拟物体沿曲线放置的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字运维人员线)或无线(例如:红外线、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如:DVD(Digital Versatile Disc,数字通用光盘))、或者半导体介质(例如:SSD(Solid StateDisk,固态硬盘))等。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各实施例均采用相关的方式描述,各实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和规则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种虚拟物体沿曲线放置的方法,其特征在于,所述方法包括:
将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取所述放置曲线的总长度;其中,所述预设起点为所述放置曲线的起点,所述预设终点为所述放置曲线的终点,所述控制点为用于控制所述放置曲线的弧度的点;
基于所述总长度,获取在所述放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数;
针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标;
按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体。
2.根据权利要求1所述的方法,其特征在于,所述针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标,包括:
将该待放置虚拟物体对应的子长度差值模型,输入牛顿迭代模型进行迭代,获得该待放置虚拟物体对应的均匀划分参数;其中,所述子长度差值模型为用于获取第一子长度与第二子长度的差值的模型;所述第一子长度为按照所述放置曲线对应的时间参数划分所述放置曲线得到的子曲线的长度;所述第二子长度为按照所述时间参数划分所述总长度得到的长度;进行第一次迭代时,所述时间参数为初始划分参数:该待放置虚拟物体的物体标识和所述待放置虚拟物体的个数的乘积的倒数;
针对每个待放置虚拟物体,将该待放置虚拟物体对应的均匀划分参数、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标。
3.根据权利要求1所述的方法,其特征在于,在所述按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体之前,所述方法还包括:
分别获取每个所述放置坐标在所述放置曲线上的切线;
针对每个所述放置坐标,计算该放置坐标的所述切线的斜率,并对所述斜率进行反正切计算,得到该放置坐标对应的待放置虚拟物体的放置角度;
所述按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上生成相应的待放置虚拟物体,包括:
针对每个待放置虚拟物体,将该待放置虚拟物体的中心点作为旋转轴,按照所述旋转轴与所述放置曲线所在的平面成所述放置角度的规则,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
4.根据权利要求1所述的方法,其特征在于,所述按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体,包括:
针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
5.根据权利要求4所述的方法,其特征在于,所述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上的该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体,包括:
将所述针对每个待放置虚拟物体,利用游戏引擎的实例化游戏物体的接口,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体的步骤,封装为虚拟物体生成模型;
将所述虚拟物体生成模型,转换为上下文菜单;
将所述上下文菜单添加至所述游戏引擎的编辑器中,以使得所述游戏引擎的编辑器,执行所述上下文菜单。
6.一种虚拟物体沿曲线放置的装置,其特征在于,所述装置包括:
放置曲线获取模块,用于将预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入贝塞尔曲线模型,获得用于放置虚拟物体的放置曲线,并获取所述放置曲线的总长度;其中,所述预设起点为所述放置曲线的起点,所述预设终点为所述放置曲线的终点,所述控制点为用于控制所述放置曲线的弧度的点;
物体数量获取模块,用于基于所述总长度,获取在所述放置曲线上按照预设的间隔长度进行放置的待放置虚拟物体的个数;
放置坐标获取模块,用于针对每个待放置虚拟物体,基于该待放置虚拟物体的物体标识、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,利用所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标;
放置模块,用于按照每个待放置虚拟物体的所述放置坐标,在所述放置曲线上放置相应的待放置虚拟物体。
7.根据权利要求6所述的装置,其特征在于,所述放置坐标获取模块,具体用于:
将该待放置虚拟物体对应的子长度差值模型,输入牛顿迭代模型进行迭代,获得该待放置虚拟物体对应的均匀划分参数;其中,所述子长度差值模型为用于获取第一子长度与第二子长度的差值的模型;所述第一子长度为按照所述放置曲线对应的时间参数划分所述放置曲线得到的子曲线的长度;所述第二子长度为按照所述时间参数划分所述总长度得到的长度;进行第一次迭代时,所述时间参数为初始划分参数:该待放置虚拟物体的物体标识和所述待放置虚拟物体的个数的乘积的倒数;
针对每个待放置虚拟物体,将该待放置虚拟物体对应的均匀划分参数、所述待放置虚拟物体的个数、所述预设起点的坐标、预设控制点的坐标以及预设终点的坐标,输入所述贝塞尔曲线模型,获得该待放置虚拟物体在所述放置曲线上的放置坐标。
8.根据权利要求6所述的装置,其特征在于,所述放置模块,具体用于:
分别获取每个所述放置坐标在所述放置曲线上的切线;
针对每个所述放置坐标,计算该放置坐标的所述切线的斜率,并对所述斜率进行反正切计算,得到该放置坐标对应的待放置虚拟物体的放置角度;
针对每个待放置虚拟物体,将该待放置虚拟物体的中心点作为旋转轴,按照所述旋转轴与所述放置曲线所在的平面成所述放置角度的规则,在所述放置曲线上该待放置虚拟物体对应的放置坐标处,放置该待放置虚拟物体。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-5任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910932783.XA CN110648402A (zh) | 2019-09-29 | 2019-09-29 | 虚拟物体沿曲线放置的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910932783.XA CN110648402A (zh) | 2019-09-29 | 2019-09-29 | 虚拟物体沿曲线放置的方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110648402A true CN110648402A (zh) | 2020-01-03 |
Family
ID=69011905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910932783.XA Pending CN110648402A (zh) | 2019-09-29 | 2019-09-29 | 虚拟物体沿曲线放置的方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110648402A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112008724A (zh) * | 2020-08-25 | 2020-12-01 | 北京华航唯实机器人科技股份有限公司 | 轨迹工艺结果的展示方法及装置、电子设备 |
CN112348020A (zh) * | 2020-12-03 | 2021-02-09 | 北京智芯原动科技有限公司 | 基于特征图的贝塞尔车牌对齐方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169595A (zh) * | 2010-02-26 | 2011-08-31 | 新奥特(北京)视频技术有限公司 | 一种多箭头路径动画实现方法和装置 |
CN103368824A (zh) * | 2013-04-08 | 2013-10-23 | 广州华多网络科技有限公司 | 虚拟道具传送方法及装置,虚拟演播厅的控制方法及装置 |
CN105373306A (zh) * | 2015-10-13 | 2016-03-02 | 广州酷狗计算机科技有限公司 | 虚拟物品赠送方法及装置 |
US20170221248A1 (en) * | 2016-02-01 | 2017-08-03 | Naturalmotion Ltd. | Animating a virtual object in a virtual world |
CN107945253A (zh) * | 2017-11-21 | 2018-04-20 | 腾讯数码(天津)有限公司 | 一种动画效果实现方法、装置及存储设备 |
-
2019
- 2019-09-29 CN CN201910932783.XA patent/CN110648402A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169595A (zh) * | 2010-02-26 | 2011-08-31 | 新奥特(北京)视频技术有限公司 | 一种多箭头路径动画实现方法和装置 |
CN103368824A (zh) * | 2013-04-08 | 2013-10-23 | 广州华多网络科技有限公司 | 虚拟道具传送方法及装置,虚拟演播厅的控制方法及装置 |
CN105373306A (zh) * | 2015-10-13 | 2016-03-02 | 广州酷狗计算机科技有限公司 | 虚拟物品赠送方法及装置 |
US20170221248A1 (en) * | 2016-02-01 | 2017-08-03 | Naturalmotion Ltd. | Animating a virtual object in a virtual world |
CN107945253A (zh) * | 2017-11-21 | 2018-04-20 | 腾讯数码(天津)有限公司 | 一种动画效果实现方法、装置及存储设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112008724A (zh) * | 2020-08-25 | 2020-12-01 | 北京华航唯实机器人科技股份有限公司 | 轨迹工艺结果的展示方法及装置、电子设备 |
CN112008724B (zh) * | 2020-08-25 | 2022-02-18 | 北京华航唯实机器人科技股份有限公司 | 轨迹工艺结果的展示方法及装置、电子设备 |
CN112348020A (zh) * | 2020-12-03 | 2021-02-09 | 北京智芯原动科技有限公司 | 基于特征图的贝塞尔车牌对齐方法及装置 |
CN112348020B (zh) * | 2020-12-03 | 2023-10-20 | 北京智芯原动科技有限公司 | 基于特征图的贝塞尔车牌对齐方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109446442B (zh) | 用于处理信息的方法和装置 | |
CN110139149B (zh) | 一种视频优化的方法、装置、电子设备 | |
CN104731585A (zh) | 一种投票页面的显示方法及装置 | |
JP7182689B2 (ja) | ビデオフレーム処理方法及び装置 | |
CN107423128B (zh) | 信息处理方法及其系统 | |
CN110648402A (zh) | 虚拟物体沿曲线放置的方法、装置及设备 | |
CN109413056B (zh) | 用于处理信息的方法和装置 | |
CN116091672A (zh) | 图像渲染方法、计算机设备及其介质 | |
CN114387400A (zh) | 三维场景的显示方法、显示装置、电子设备和服务器 | |
CN114792355B (zh) | 虚拟形象生成方法、装置、电子设备和存储介质 | |
CN109388737B (zh) | 一种内容项的曝光数据的发送方法、装置及存储介质 | |
CN112306471A (zh) | 一种任务的调度方法和装置 | |
CN112003729A (zh) | 异构云平台资源拓扑展示方法、系统、终端及存储介质 | |
CN110673886B (zh) | 用于生成热力图的方法和装置 | |
CN114265583B (zh) | Vr内容开发优化方法、装置、电子设备及可读存储介质 | |
US11442606B2 (en) | User interface interaction method and system | |
CN113656877B (zh) | 多层户型的模型生成方法、装置、介质及电子设备 | |
CN105487769A (zh) | 一种媒体文件展示方法、装置及电子设备 | |
CN115641397A (zh) | 虚拟形象的合成、展示方法和系统 | |
CN114820895A (zh) | 动画数据处理方法、装置、设备及系统 | |
CN108499109B (zh) | 一种基于ue引擎实现物品可实时单侧缩放的方法 | |
CN113192171A (zh) | 一种基于云端渲染的三维效果图高效渲染方法及系统 | |
CN113450434A (zh) | 一种生成动态图像的方法和装置 | |
CN113688159B (zh) | 一种数据抽取方法与装置 | |
CN113342413B (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 |