一种绘制空间曲面等高线的方法和系统的制作方法

文档序号:6627767阅读:351来源:国知局
一种绘制空间曲面等高线的方法和系统的制作方法
【专利摘要】本发明公开了一种绘制空间曲面等高线的方法和系统,涉及三维模型建模【技术领域】。方法包括如下步骤:S1,将空间曲面划分为若干个三角形;S2,获取三角形顶点的海拔高度;S3,创建插值函数;S4,根据所述三角形顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,如果相交,则利用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点,如果不相交,则重复步骤S2-S4;S5,重复步骤S2-S4,得到所有的所述三角形与所述海拔高度为h的水平面的交点;S6,将所述交点用线段连接,得到所述空间曲面的等高线。采用这种技术方案,思路清晰,编制程序使用的代码简单,成本低,易于推广应用。
【专利说明】一种绘制空间曲面等高线的方法和系统

【技术领域】
[0001]本发明涉及三维模型建模【技术领域】,尤其涉及一种绘制空间曲面等高线的方法和系统。

【背景技术】
[0002]等高线是指地形图上高程相等的各点所连成的闭合曲线。把地面上海拔高度相同的点连成的闭合曲线。垂直投影到一个标准面上,并按比例缩小画在图纸上,就得到等高线。等高线也可以看作是不同海拔高度的水平面与实际地面的交线,所以等高线是闭合曲线。比如,给定一个三角形的三个顶点pl,p2,p3。每个顶点有x,y,z三个方向的坐标值。其中z是海拔方向的坐标值(海拔高度)。给定一个海拔高度h,把这个三角形上所有高度为h的点连接起来构成一条线,这条线就是高度为h的等高线。也可以认为高度为h的一个水平面穿过这个三角形,水平面与三角形的交线就是高度为h的等高线。
[0003]目前,在三维模型创建过程中,除了使用传统的绘制等高线的方法外,还可以使用软件绘制等高线,但是由于绘制等高线的软件编程复杂,成本高昂,因此,其应用受到了极大的限制。


【发明内容】

[0004]本发明的目的在于提供一种绘制空间曲面等高线的方法和系统,从而解决现有技术中存在的前述问题。
[0005]为了实现上述目的,本发明采用的技术方案如下:
[0006]一种绘制空间曲面等高线的方法,包括如下步骤:
[0007]SI,将空间曲面划分为若干个三角形;
[0008]S2,获取三角形顶点的海拔高度;
[0009]S3,创建插值函数;
[0010]S4,根据所述三角形顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,如果相交,则利用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点,如果不相交,则重复步骤S2-S4 ;
[0011]S5,重复步骤S2-S4,得到所有的所述三角形与所述海拔高度为h的水平面的交占.
[0012]S6,将所述交点用线段连接,得到所述空间曲面的等高线。
[0013]优选地,所述插值函数为Vector3.Lerp O。
[0014]具体地,步骤S3中,所述插值函数Vector3.LerpO的参数包括三角形的第一顶点Pl、三角形的第二顶点p2和三角形的第三顶点p3中的两个,以及参数S,其中,参数s用以下公式表示:s = (h-pl.Z) / (p2.Z-pl.Z)或 s = (h-pl.Z) / (p3.Z-pl.Z)或 s = (h - p3.Z)/(p2.Z-pl.Z),其中,h为海拔高度为h的水平面的海拔高度,pl.Z为所述三角形的第一顶点Pl的海拔高度,p2.Z为三角形的第二顶点p2的海拔高度,p3.Z为三角形的第三顶点p3的海拔高度。
[0015]具体地,步骤S4中,所述海拔高度为h的水平面能否与所述三角形相交,包括,所述海拔高度为h的水平面能否与所述三角形相交于一个顶点、所述海拔高度为h的水平面能否与所述三角形相较于一条线段或所述海拔高度为h的水平面能否与所述三角形相较于一个平面内。
[0016]具体地,步骤S4中,所述根据所述每个顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,具体为,通过比较所述顶点的海拔高度与所述海拔高度为h的水平面的海拔高度之间的大小,来判断海拔高度为h的水平面能否与所述三角形相交,如果一个所述顶点的海拔高度大于或小于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交;如果三个所述顶点的海拔高度等于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交。
[0017]一种绘制空间曲面等高线的系统,包括:
[0018]图形处理模块:用于将空间曲面划分为若干个三角形;还用于将所述交点用线段连接,得到所述空间曲面的等高线;
[0019]插值函数模块:用于创建插值函数;还用于利用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点;
[0020]海拔高度分析处理模块:用于获取三角形顶点的海拔高度;还用于获取海拔高度为h的水平面的海拔高度;还用于根据所述三角形顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交。
[0021 ] 优选地,所述插值函数为Vector3.Lerp O。
[0022]具体地,所述插值函数Vector3.Lerp O的参数包括三角形的第一顶点pl、三角形的第二顶点P2和三角形的第三顶点p3中的两个,以及参数S,其中,参数s用以下公式表不:s = (h-pl.Z) / (ρ2.Z-pl.Ζ)或 s = (h-pl.Z) / (p3.Z-pl.Z)或 s = (h - p3.Z) / (p2.Z-pl.Z),其中,h为海拔高度为h的水平面的海拔高度,pl.Z为所述三角形的第一顶点pl的海拔高度,p2.Z为三角形的第二顶点p2的海拔高度,p3.Z为三角形的第三顶点p3的海拔高度。
[0023]具体地,所述判断海拔高度为h的水平面能否与所述三角形相交,包括,所述海拔高度为h的水平面能否与所述三角形相交于一个顶点、所述海拔高度为h的水平面能否与所述三角形相较于一条线段或所述海拔高度为h的水平面能否与所述三角形相较于一个平面内。
[0024]具体地,所述根据所述每个顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,具体为,通过比较所述顶点的海拔高度与所述海拔高度为h的水平面的海拔高度之间的大小,来判断海拔高度为h的水平面能否与所述三角形相交,如果一个所述顶点的海拔高度大于或小于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交;如果三个所述顶点的海拔高度等于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交。
[0025]本发明的有益效果是:本发明首先将空间曲面划分成若干个三角形,再创建插值函数,并使用插值函数,计算海拔高度为h的水平面与每个三角形的交点,最后将所有的交点连接,得到空间曲面等高线,采用这种技术方案,思路清晰,编制程序使用的代码简单,成本低,易于推广应用。

【专利附图】

【附图说明】
[0026]图1是本发明实施例提供的一种绘制空间曲面等高线的方法流程示意图。

【具体实施方式】
[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不用于限定本发明。
[0028]本发明实施例提供了一种绘制空间曲面等高线的方法,包括如下步骤:
[0029]SI,将空间曲面划分为若干个三角形;
[0030]S2,获取三角形顶点的海拔高度;
[0031]S3,创建插值函数;
[0032]S4,根据所述三角形顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,如果相交,则利用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点,如果不相交,则重复步骤S2-S4 ;
[0033]S5,重复步骤S2-S4,得到所有的所述三角形与所述海拔高度为h的水平面的交占.
[0034]S6,将所述交点用线段连接,得到所述空间曲面的等高线。
[0035]其中,所述插值函数为Vector3.LerpO。使用该插值函数,其算法更加简单,更易于实现,编程代码更加简单。
[0036]具体地,步骤S3中,所述插值函数Vector3.LerpO的参数包括三角形的第一顶点Pl、三角形的第二顶点p2和三角形的第三顶点p3中的两个,以及参数S,其中,参数s用以下公式表示:s = (h-pl.Ζ) / (p2.Z-pl.Z)或 s = (h-pl.Z) / (p3.Z-pl.Z)或 s = (h - p3.Z)/(p2.Z-pl.Z),其中,h为海拔高度为h的水平面的海拔高度,pl.Z为所述三角形的第一顶点Pl的海拔高度,p2.Z为三角形的第二顶点p2的海拔高度,p3.Z为三角形的第三顶点P3的海拔高度。
[0037]步骤S4中,所述海拔高度为h的水平面能否与所述三角形相交,包括,所述海拔高度为h的水平面能否与所述三角形相交于一个顶点、所述海拔高度为h的水平面能否与所述三角形相较于一条线段或所述海拔高度为h的水平面能否与所述三角形相较于一个平面内。
[0038]所述根据所述每个顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,具体为,通过比较所述顶点的海拔高度与所述海拔高度为h的水平面的海拔高度之间的大小,来判断海拔高度为h的水平面能否与所述三角形相交,如果一个所述顶点的海拔高度大于或小于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交;如果三个所述顶点的海拔高度等于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交。
[0039]在实际的实现过程中,如果三角形的第一顶点pl的海拔高度pl.Z大于或小于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交,具体为相交于一个顶点或相较于一条线段,若相交于一个顶点,则会相交于边Pl p2和边pl p3的交点pl,若相交于一条线段,则会相交于边pl p2上的点vl和边pl p3上的点v2在海拔高度h上连接成的线段。
[0040]则,使用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点Vl时,采用的插值函数Vector3.Lerp O ,其参数包括:三角形的第一顶点pl、三角形的第二顶点p2以及参数s,其中,参数s用以下公式表示:s = (h-pl.Z)/(p2.Z-pl.Ζ);使用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点ν2时,采用的插值函数Vectorf.LerpO ,其参数包括:三角形的第一顶点Pl和三角形的第三顶点p3以及参数s,其中,参数s 用以下公式表示:s = (h-pl.Z)/ (p3.Z-pl.Z)。
[0041]三角形的其他两个顶点的海拔高度大于或小于所述海拔高度为h的水平面的海拔高度时,情况类似,在此不再赘述。
[0042]如果三个所述顶点的海拔高度等于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交,即三角形与海拔高度为h的水平面重合。
[0043]本发明实施例提供的绘制空间曲面等高线的方法,思路清晰,巧妙的采用了插值函数,因此,在软件编程过程中,代码简单,成本低。
[0044]本发明实施例还提供了一种绘制空间曲面等高线的系统,包括:
[0045]图形处理模块:用于将空间曲面划分为若干个三角形;还用于将所述交点用线段连接,得到所述空间曲面的等高线;
[0046]插值函数模块:用于创建插值函数;还用于利用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点;
[0047]海拔高度分析处理模块:用于获取三角形顶点的海拔高度;还用于获取海拔高度为h的水平面的海拔高度;还用于根据所述三角形顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交。
[0048]其中,所述插值函数为Vector3.Lerp O。
[0049]具体地,所述插值函数Vector3.Lerp O的参数包括三角形的第一顶点pl、三角形的第二顶点P2和三角形的第三顶点p3中的两个,以及参数S,其中,参数s用以下公式表不:s = (h-pl.Ζ) / (ρ2.Z-pl.Ζ)或 s = (h-pl.Ζ) / (ρ3.Z-pl.Ζ)或 s = (h - ρ3.Ζ) / (ρ2.Ζ-ρ1.Ζ),其中,h为海拔高度为h的水平面的海拔高度,pl.Z为所述三角形的第一顶点pl的海拔高度,p2.Z为三角形的第二顶点p2的海拔高度,p3.Z为三角形的第三顶点p3的海拔高度。
[0050]本发明实施例中,所述判断海拔高度为h的水平面能否与所述三角形相交,包括,所述海拔高度为h的水平面能否与所述三角形相交于一个顶点、所述海拔高度为h的水平面能否与所述三角形相较于一条线段或所述海拔高度为h的水平面能否与所述三角形相较于一个平面内。
[0051]所述根据所述每个顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,具体为,通过比较所述顶点的海拔高度与所述海拔高度为h的水平面的海拔高度之间的大小,来判断海拔高度为h的水平面能否与所述三角形相交,如果一个所述顶点的海拔高度大于或小于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交;如果三个所述顶点的海拔高度等于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交。
[0052]本发明实施例提供的绘制空间曲面等高线的系统,是与本发明上述实施例提供的绘制空间曲面等高线的方法对应的系统,所以具有本发明上述实施例提供的绘制空间曲面等高线的方法的有益效果。
[0053]通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明首先将空间曲面划分成若干个三角形,再创建插值函数,并使用插值函数,计算海拔高度为h的水平面与每个三角形的交点,最后将所有的交点连接,得到空间曲面等高线,采用这种技术方案,思路清晰,编制程序使用的代码简单,成本低,易于推广应用。
[0054]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0055]本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。
[0056]上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储坐寸ο
[0057]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0058]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
【权利要求】
1.一种绘制空间曲面等高线的方法,其特征在于,包括如下步骤: Si,将空间曲面划分为若干个三角形; S2,获取三角形顶点的海拔高度; S3,创建插值函数; S4,根据所述三角形顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,如果相交,则利用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点,如果不相交,则重复步骤S2-S4 ; S5,重复步骤S2-S4,得到所有的所述三角形与所述海拔高度为h的水平面的交点; S6,将所述交点用线段连接,得到所述空间曲面的等高线。
2.根据权利要求1所述的绘制空间曲面等高线的方法,其特征在于,所述插值函数为Vector3.Lerp O °
3.根据权利要求2所述的绘制空间曲面等高线的方法,其特征在于,步骤S3中,所述插值函数Vector3.Lerp O的参数包括三角形的第一顶点p1、三角形的第二顶点p2和三角形的第三顶点p3中的两个,以及参数s,其中,参数s用以下公式表示:s = (h-pl.Z)/(p2.Z-pl.Z)或 s = (h-pl.Z)/ (p3.Z-pl.Z)或 s = (h - p3.Z)/ (p2.Z-pl.Z),其中,h 为海拔高度为h的水平面的海拔高度,p1.Z为所述三角形的第一顶点pi的海拔高度,p2.Z为三角形的第二顶点P2的海拔高度,p3.Z为三角形的第三顶点p3的海拔高度。
4.根据权利要求1所述的绘制空间曲面等高线的方法,其特征在于,步骤S4中,所述海拔高度为h的水平面能否与所述三角形相交,包括,所述海拔高度为h的水平面能否与所述三角形相交于一个顶点、所述海拔高度为h的水平面能否与所述三角形相较于一条线段或所述海拔高度为h的水平面能否与所述三角形相较于一个平面内。
5.根据权利要求1所述的绘制空间曲面等高线的方法,其特征在于,步骤S4中,所述根据所述每个顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,具体为,通过比较所述顶点的海拔高度与所述海拔高度为h的水平面的海拔高度之间的大小,来判断海拔高度为h的水平面能否与所述三角形相交,如果一个所述顶点的海拔高度大于或小于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交;如果三个所述顶点的海拔高度等于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交。
6.一种绘制空间曲面等高线的系统,其特征在于,包括: 图形处理模块:用于将空间曲面划分为若干个三角形;还用于将所述交点用线段连接,得到所述空间曲面的等高线; 插值函数模块:用于创建插值函数;还用于利用所述插值函数计算所述海拔高度为h的水平面与所述三角形的交点; 海拔高度分析处理模块:用于获取三角形顶点的海拔高度;还用于获取海拔高度为h的水平面的海拔高度;还用于根据所述三角形顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交。
7.根据权利要求6所述的绘制空间曲面等高线的系统,其特征在于,所述插值函数为Vector3.Lerp O °
8.根据权利要求7所述的绘制空间曲面等高线的系统,其特征在于,所述插值函数Vector3.LerpO的参数包括三角形的第一顶点p1、三角形的第二顶点p2和三角形的第三顶点p3中的两个,以及参数s,其中,参数s用以下公式表示:s = (h-pl.Z)/(p2.Z-pl.Z)或 s = (h-pl.Z)/(p3.Z-pl.Z)或 s = 01-?3.2)/(?2.2-?1.2),其中,11为海拔高度为11的水平面的海拔高度,pl.Z为所述三角形的第一顶点pi的海拔高度,p2.Z为三角形的第二顶点P2的海拔高度,p3.Z为三角形的第三顶点p3的海拔高度。
9.根据权利要求6所述的绘制空间曲面等高线的方法,其特征在于,所述判断海拔高度为h的水平面能否与所述三角形相交,包括,所述海拔高度为h的水平面能否与所述三角形相交于一个顶点、所述海拔高度为h的水平面能否与所述三角形相较于一条线段或所述海拔高度为h的水平面能否与所述三角形相较于一个平面内。
10.根据权利要求6所述的绘制空间曲面等高线的系统,其特征在于,所述根据所述每个顶点的海拔高度,判断海拔高度为h的水平面能否与所述三角形相交,具体为,通过比较所述顶点的海拔高度与所述海拔高度为h的水平面的海拔高度之间的大小,来判断海拔高度为h的水平面能否与所述三角形相交,如果一个所述顶点的海拔高度大于或小于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交;如果三个所述顶点的海拔高度等于所述海拔高度为h的水平面的海拔高度,则海拔高度为h的水平面能与所述三角形相交。
【文档编号】G06T17/30GK104200530SQ201410486446
【公开日】2014年12月10日 申请日期:2014年9月22日 优先权日:2014年9月22日
【发明者】李生龙 申请人:克拉玛依红有软件有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1