CN104504206B - 一种2.5d下模型添加及排序的方法 - Google Patents
一种2.5d下模型添加及排序的方法 Download PDFInfo
- Publication number
- CN104504206B CN104504206B CN201410830473.4A CN201410830473A CN104504206B CN 104504206 B CN104504206 B CN 104504206B CN 201410830473 A CN201410830473 A CN 201410830473A CN 104504206 B CN104504206 B CN 104504206B
- Authority
- CN
- China
- Prior art keywords
- model
- scenes
- ring
- directed edge
- added
- 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.)
- Expired - Fee Related
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
一种2.5D下模型添加及排序的方法,包括如下步骤:在2.5场景中,任意选择其中一个模型作为参考模型,获取参考模型在2.5D场景坐标系中的空间位置,用矩阵M1表示;从模型库中选择一个将要被添加到2.5D场景的模型作为移动模型;调整移动模型在参考模型顶视图和前视图中的相对位置;获取移动模型在参考模型坐标系中的空间位置;得到移动模型的在2.5D场景坐标系中的空间位置;通过2.5D场景中的相机距离2.5D场景中任意两个模型之间距离判断任意两个模型在显示上的叠加关系;通过叠加关系进行排序。通过本发明,引入参考模型的概念,从而解决了模型的精确摆放问题;通过本发明的排序方法,解决了模型叠加摆放产生的排序问题,使得可以任意摆放2.5D模型在场景中的位置。
Description
技术领域
本发明涉及三维模型的技术领域,具体涉及一种2.5D下模型添加及排序的方法。
背景技术
现有的软件技术中,允许用户自由摆放2.5D模型的2.5D技术方案大多采用修改三维坐标(x,y,z)的方式,该方式存在不直观、不精确的技术缺陷,具体原因是由于模型的任意位置摆放导致2.5D场景排序出错,从而导致显示混乱,故此现有技术中大多应用都禁止了这项功能;
现有技术中,由于2.5D固定视角的先天缺陷,导致了直接更改2.5D模型的三维坐标(x,y,z)的方式不直观,很难查看新添加模型相对其附近的模型的位置关系,因此很难放置准确,如若放置不妥则有可能会导致不同模型采用了相同的三维坐标;同时用户自己摆放物品后会存在模型位置叠加,导致2.5D场景整体渲染顺序出错,故此大部分的2.5D设计软件都不提倡用户随意摆放模型,设置关闭了这项功能。
然而自由摆放模型,对于用户而言,却能够直观的进行整体移动、旋转、删除等操作,将会大幅度的提高用户的体验,提高操作效率,故此急需一种新型的技术方案来解决该问题。
发明内容
本发明的目的是提供一种2.5D下模型添加及排序的方法,以克服现有技术存在的上述不足。
本发明的目的是通过以下技术方案来实现的:
一种2.5D下模型添加及排序的方法,包括如下步骤:
S11,在2.5D场景中,包括若干模型,每个所述模型的空间位置用一个矩阵表示;
S12,在所述2.5D场景中,任意选择其中一个模型作为参考模型,获取所述参考模型在所述2.5D场景坐标系中的空间位置,用矩阵M1表示;
S13,从模型库中选择一个将要被添加到所述2.5D场景的模型作为移动模型;调整所述移动模型在所述参考模型顶视图和前视图中的相对位置;获取所述移动模型在所述参考模型坐标系中的空间位置,用矩阵M2表示;
S14,通过M1和M2,得到所述移动模型的在所述2.5D场景坐标系中的空间位置,用矩阵M3表示;M3=M1×M2;
S15,通过所述2.5D场景中的相机距离所述2.5D场景中任意两个模型之间距离判断任意两个模型在显示上的叠加关系;
S16,通过所述叠加关系进行排序。
优选的,所述移动模型在所述参考模型的顶视图和前视图中添加。
优选的,M1、M2、M3矩阵分别为一个三维矩阵;所述三维矩阵中包含所属模型的缩放、旋转和移动信息。
优选的,S15中,任意两个模型分别为模型A和模型B;
若所述模型A覆盖在所述模型B上,则从所述模型A到所述模型B形成第一个有向边,若所述模型B覆盖在所述模型A上,则从所述模型B到所述模型A形成第二个有向边;依此类推,由两两相邻的所有模型之间的叠加关系形成的有向边构成一张有向图;所述有向图包含一个以上环;
S16中,通过所述叠加关系进行排序的具体实现方法为:
S41,搜索若所述有向图的环,若搜索到环,则删除搜索到的环中的任意一条有向边;重复搜索环与删除搜索到的环中的任意一条有向边的过程,直至所述有向图中没有环,形成有向无环图;
S42,对所述有向无环图进行拓扑排序,所述排序后的结果作为所述2.5D场景中所有模型的显示顺序。
更加优选的,所述有向图包括一个以上环,环的确定方法具体为:若存在n个模型分别为[A1,A2,....,An],n≥2;对于任意i,1≤i≤n-1;Ai到Ai+1有一条有向边,且An到A1有一条有向边,则n个模型和n条首尾相连的有向边形成了一个环。
更加优选的,对删除环的有向图进行拓扑排序的方法具体为:
S61,获取所述2.5D场景中的模型的入度;
S62,遍历所述2.5D场景中的所有模型,找到入度为0的模型,作为临界模型;输出所述临界模型,删除所述临界模型以及所有以所述临界模型为起点的有向边;
S63,重复S61-S62,直到所有的模型和所有的有向边均被删除为止;
S64,所述2.5D场景中的所有模型作为所述临界模型被输出的顺序,作为模型的拓扑顺序。
更加优选的,S61,获取所述2.5D场景中的模型的入度的方法具体为:
所述2.5D场景中的模型的入度具体为指向所述拓扑模型的有向边的个数;
若有一条有向边从所述模型A指向所述模型B,则所述模型B的入度值加1;
遍历所有的有向边,得到每个模型的入度值。
参考坐标具体为所述参考模型顶视图的三维坐标和所述参考模型主视图的三维坐标共同作为参考坐标;
其他模型指若干模型中除去参考模型之外的模型;
术语解释:
2.5D模型叠加:2.5D模型任意位置的摆放,允许模型间包围盒或包围球交叉。
2.5D场景排序:想让2.5D场景中的2.5D模型正确显示,需要对2.5D模型渲染按顺序进行排序,一般根据物体的包围盒或包围球体和物体的位置信息、相机位置信息得到物体两两之间的遮挡关系,形成一个有向图,对这个有向图进行拓扑排序,就可以得到所有2.5D模型的渲染顺序。
入度:入度是图论算法中重要的概念之一。它通常指有向图中某点作为图中边的终点的次数之和。
拓扑排序:对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(TopologicalOrder)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。
本发明的有益效果为:
通过本发明,引入参考模型的概念,从而赋予模型以相对坐标,从而解决了模型的精确摆放问题;同时参考模型和被添加模型形成了一种一对多的“父子”关系,可对这组模型进行整体移动、旋转、删除等操作,提高操作效率;通过本发明创新性的排序方法,解决了模型叠加摆放产生的排序问题,使得可以任意摆放2.5D模型在场景中的位置。
附图说明
图1为本发明的流程结构示意图;
图2为本发明拓扑排序在AOV-网及其拓扑有序序列产生的过程示意图。
具体实施方式
如图1所示,本发明采用2.5D技术、三维矩阵运算、有向图查找环算法、拓扑排序算法;
一种2.5D下模型添加及排序的方法,包括如下步骤:
S11,在2.5D场景中,包括若干模型,每个模型的空间位置用一个矩阵表示;
S12,在2.5D场景中,任意选择其中一个模型作为参考模型,获取参考模型在2.5D场景坐标系中的空间位置,用矩阵M1表示;
S13,从模型库中选择一个将要被添加到2.5D场景的模型作为移动模型;调整所述移动模型在所述参考模型顶视图和前视图中的相对位置;获取移动模型在参考模型坐标系中的空间位置,用矩阵M2表示;
S14,通过M1和M2,得到移动模型的在2.5D场景坐标系中的空间位置,用矩阵M3表示;M3=M1×M2;
S15,通过2.5D场景中的相机距离2.5D场景中任意两个模型之间距离判断任意两个模型在显示上的叠加关系;
S16,通过叠加关系进行排序。
在以上步骤中,所述移动模型在所述参考模型的顶视图和前视图中添加;M1、M2、M3矩阵分别为一个三维矩阵;三维矩阵中包含所属模型的缩放、旋转和移动信息。
在S15中,任意两个模型分别为模型A和模型B;
若模型A覆盖在模型B上,则从模型A到模型B形成第一个有向边,若模型B覆盖在模型A上,则从模型B到模型A形成第二个有向边;依此类推,由模型A与模型B的叠加关系形成的有向边构成一张有向图;有向图可能包括一个或一个以上环;
在S16中,通过叠加关系进行排序的具体实现方法为:
S41,搜索若所述有向图的环,若搜索到环则删除环中的任意一条有向边;重复以上过程,直至有向图中没有环,形成有向无环图;
S42,对有向无环图进行拓扑排序,排序后的结果作为2.5D场景中所有模型的显示顺序。
有向图包括一个以上环,环的确定方法具体为:若存在n个模型分别为[A1,A2,....,An],n≥2;对于任意i,1≤i≤n-1;Ai到Ai+1有一条有向边,且An到A1有一条有向边,则n个模型和n条首尾相连的有向边形成了一个环。
进一步的,对删除环的有向无环图进行拓扑排序的方法具体为:
S61,获取2.5D场景中的模型的入度;
S62,遍历2.5D场景中的所有模型,找到入度为0的模型,作为临界模型;输出临界模型,删除临界模型以及所有以临界模型为起点的有向边;
S63,重复S61-S62,直到所有的模型和有向边均被删除为止;
S64,2.5D场景中的所有模型作为临界模型被输出的顺序,作为模型的拓扑顺序。
在S61中,获取2.5D场景中的模型的入度的方法具体为:
2.5D场景中的模型的入度具体为指向拓扑模型的有向边的个数;
若有一条有向边从模型A指向模型B,则模型B的入度值加1;
遍历所有的有向边,得到每个模型的入度值。
如图2所示的AOV-网及其拓扑有序序列产生的过程,(a)AOV-网;(b)输出v6之后;(c)输出v1之后;(d)输出v4之后;(e)输出v3之后;(f)输出v2之后,通过该方法,逐级进行排序,实现了拓扑排序。
本技术方案在叠加2.5D模型时,使用了参照模型,在参照模型的顶视图和前视图中调整新添加2.5D模型的位置,用直观拖动的方式而非抽象的调整数字的放置。同时针对2.5D模型叠加后的排序显示错误进行改进,有效避免了模型叠加情况下的排序错误。该模型添加和排序方法可以任意摆放2.5D模型在场景中的位置,操作直观、精确;同时参考模型和被添加模型形成了一种一对多的“父子”关系,可以这组模型进行整体移动、旋转、删除等操作,提高操作效率。2.5D模型摆放更加直观、方便、精确;2.5D场景排序更加精确、容错性更大,降低名叠加带来的排序混乱概率。
以上通过具体的和优选的实施例详细的描述了本发明,但本领域技术人员应该明白,本发明并不局限于以上所述实施例,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种2.5D下模型添加及排序的方法,其特征在于,包括如下步骤:
S11,在2.5D场景中,包括若干模型,每个所述模型的空间位置用一个矩阵表示;
S12,在所述2.5D场景中,任意选择其中一个模型作为参考模型,获取所述参考模型在所述2.5D场景坐标系中的空间位置,用矩阵M1表示;
S13,从模型库中选择一个将要被添加到所述2.5D场景的模型作为移动模型;调整所述移动模型在所述参考模型顶视图和前视图中的相对位置;获取调整后的所述移动模型在所述参考模型坐标系中的空间位置,用矩阵M2表示;
S14,通过M1和M2,得到所述移动模型的在所述2.5D场景坐标系中的空间位置,用矩阵M3表示;M3=M1×M2;
S15,通过所述2.5D场景中的相机距离所述2.5D场景中任意两个模型之间距离判断任意两个模型在显示上的叠加关系;
S16,通过所述叠加关系进行排序。
2.根据权利要求1所述的2.5D下模型添加及排序的方法,其特征在于:所述移动模型添加在所述参考模型的顶视图和前视图中。
3.根据权利要求1所述的2.5D下模型添加及排序的方法,其特征在于:M1、M2、M3矩阵分别为一个三维矩阵;所述三维矩阵中包含所属模型的缩放、旋转和移动信息。
4.根据权利要求1所述的2.5D下模型添加及排序的方法,其特征在于:
S15中,任意两个模型分别为模型A和模型B;
若所述模型A覆盖在所述模型B上,则从所述模型A到所述模型B形成第一个有向边,若所述模型B覆盖在所述模型A上,则从所述模型B到所述模型A形成第二个有向边;依此类推,由两两相邻的所有模型之间的叠加关系形成的有向边构成一张有向图;所述有向图包含一个以上环;
S16中,通过所述叠加关系进行排序的具体实现方法为:
S41,搜索所述有向图的环,若搜索到环,则删除搜索到的环中的任意一条有向边;重复搜索环与删除搜索到的环中的任意一条有向边的过程,直至所述有向图中没有环,形成有向无环图;
S42,对所述有向无环图进行拓扑排序,所述排序后的结果作为所述2.5D场景中所有模型的显示顺序。
5.根据权利要求4所述的2.5D下模型添加及排序的方法,其特征在于:
所述有向图包括一个以上环,环的确定方法具体为:若存在n个模型分别为[A1,A2,....,An],n≥2;对于任意i,1≤i≤n-1;Ai到Ai+1有一条有向边,且An到A1有一条有向边,则n个模型和n条首尾相连的有向边形成了一个环。
6.根据权利要求4所述的2.5D下模型添加及排序的方法,其特征在于,对有向无环图进行拓扑排序的方法具体为:
S61,获取所述2.5D场景中的模型的入度;
S62,遍历所述2.5D场景中的所有模型,找到入度为0的模型,作为临界模型;输出所述临界模型,删除所述临界模型以及所有以所述临界模型为起点的有向边;
S63,重复S61-S62,直到所有的模型和所有的有向边均被删除为止;
S64,所述2.5D场景中的所有模型作为所述临界模型被输出的顺序,作为模型的拓扑顺序。
7.根据权利要求6所述的2.5D下模型添加及排序的方法,其特征在于,S61,获取所述2.5D场景中的模型的入度的方法具体为:
所述2.5D场景中的模型的入度具体为指向所述拓扑模型的有向边的个数;
若有一条有向边从所述模型A指向所述模型B,则所述模型B的入度值加1;
遍历所有的有向边,得到每个模型的入度值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410830473.4A CN104504206B (zh) | 2014-12-22 | 2014-12-22 | 一种2.5d下模型添加及排序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410830473.4A CN104504206B (zh) | 2014-12-22 | 2014-12-22 | 一种2.5d下模型添加及排序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104504206A CN104504206A (zh) | 2015-04-08 |
CN104504206B true CN104504206B (zh) | 2017-06-23 |
Family
ID=52945603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410830473.4A Expired - Fee Related CN104504206B (zh) | 2014-12-22 | 2014-12-22 | 一种2.5d下模型添加及排序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104504206B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109191563B (zh) * | 2018-07-23 | 2019-06-04 | 齐鲁工业大学 | 一种2.5d人像浅浮雕建模方法及系统 |
CN112182307A (zh) * | 2020-09-23 | 2021-01-05 | 武汉滴滴网络科技有限公司 | 可构建有向无环图的空间多边形模型多层堆叠方法 |
CN112417226B (zh) * | 2020-12-02 | 2024-01-30 | 江苏赛融科技股份有限公司 | 基于dag变换的大数据处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267374A (zh) * | 2008-04-18 | 2008-09-17 | 清华大学 | 基于神经网络和无线局域网基础架构的2.5d定位方法 |
CN102520970A (zh) * | 2011-12-28 | 2012-06-27 | Tcl集团股份有限公司 | 一种立体用户界面的生成方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080255818A1 (en) * | 2007-04-11 | 2008-10-16 | Jefferson Stanley T | Test System Design Tool With Model-Based Tool Support |
CN101673312B (zh) * | 2008-09-08 | 2012-12-19 | 鸿富锦精密工业(深圳)有限公司 | 特征元素对齐方法 |
-
2014
- 2014-12-22 CN CN201410830473.4A patent/CN104504206B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267374A (zh) * | 2008-04-18 | 2008-09-17 | 清华大学 | 基于神经网络和无线局域网基础架构的2.5d定位方法 |
CN102520970A (zh) * | 2011-12-28 | 2012-06-27 | Tcl集团股份有限公司 | 一种立体用户界面的生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于线条画的2.5D卡通模型;孙玉红 等;《计算机辅助设计与图形学学报》;20130930;第25卷(第9期);论文第1312-1317页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104504206A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106296815B (zh) | 一种交互式三维数字城市的构建和显示方法 | |
Solihin et al. | Multiple representation approach to achieve high-performance spatial queries of 3D BIM data using a relational database | |
CN109359351B (zh) | 一种管道三维建模方法及管道设计方法 | |
CN103793178B (zh) | 一种移动设备触摸屏中矢量图形编辑方法 | |
CN102053829B (zh) | 用于在计算机辅助设计系统中设计对象组件的方法和系统 | |
CN108733780B (zh) | 一种图片搜索方法及装置 | |
CN107577750B (zh) | 绘制导航数据矢量路口的方法和系统 | |
CN110060255A (zh) | 利用逐像素分类器来对2d平面图进行语义分割 | |
CN104217066B (zh) | 利用2d视图设计3d建模对象 | |
CN111275820B (zh) | 基于二维平面绘制三维墙体方法、装置、终端和存储介质 | |
CN104346830A (zh) | 在三维场景中设计连接第一点到第二点的路径 | |
CN104504206B (zh) | 一种2.5d下模型添加及排序的方法 | |
CN102073499A (zh) | 在计算机辅助设计系统中设计对象组件的方法和系统 | |
CN113436331B (zh) | 基于Dynamo的建模方法及装置 | |
CN102779202B (zh) | 用于选择对象的操纵器的方法和装置 | |
CN105760570A (zh) | 选择对象集的视点 | |
CN106126085A (zh) | 一种面向移动设备的多点触控手势交互三维建模方法 | |
CN105225272A (zh) | 一种基于多轮廓线三角网重构的三维实体建模方法 | |
CN108776660B (zh) | 一种基于ArcGIS的批量匹配道路属性的方法 | |
CN105578043A (zh) | 一种相机拍照的构图方法和装置 | |
CN105354878A (zh) | 一种电子地图数据的制作方法及装置 | |
CN110738596B (zh) | 一种将cad工程图元素导入三维地图的方法 | |
CN102136039B (zh) | 一种建立地图模型的方法和设备 | |
CN116721229B (zh) | 地图中道路隔离带的生成方法、装置、设备及存储介质 | |
CN109739859B (zh) | 一种关系图谱绘制方法、系统及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170623 Termination date: 20211222 |
|
CF01 | Termination of patent right due to non-payment of annual fee |