CN109685901B - 一种军标符号标绘中动态箭标绘制方法 - Google Patents

一种军标符号标绘中动态箭标绘制方法 Download PDF

Info

Publication number
CN109685901B
CN109685901B CN201811500815.0A CN201811500815A CN109685901B CN 109685901 B CN109685901 B CN 109685901B CN 201811500815 A CN201811500815 A CN 201811500815A CN 109685901 B CN109685901 B CN 109685901B
Authority
CN
China
Prior art keywords
vertex
arrow
arrow mark
coordinate
dynamic
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.)
Active
Application number
CN201811500815.0A
Other languages
English (en)
Other versions
CN109685901A (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.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
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 Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201811500815.0A priority Critical patent/CN109685901B/zh
Publication of CN109685901A publication Critical patent/CN109685901A/zh
Application granted granted Critical
Publication of CN109685901B publication Critical patent/CN109685901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了一种军标符号标绘中动态箭标绘制方法,在三维地理信息系统标定两个控制点,然后在根据这两个控制点生成箭标的其他顶点数据,标准动态箭标和标准燕尾动态箭标只需对各个顶点进行矢量变换和颜色映射,对于进攻型箭标通过对顶点数据插值计算和颜色映射对各个顶点进行赋值,对箭标进行三角网格化,最后在渲染过程中为需要渲染箭标加入一个颜色透明度的增量,使得标绘在地理信息系统的上箭标出现动态效果,进而能够更清晰地辅助军事指挥员制定作战计划。本发明结合具有真实地形的三维地理信息系统显示,以更加简单、快速渲染方式实现了三维动态箭标的效果,为作战指挥和决策提供了直观、丰富、形象的战场态势信息。

Description

一种军标符号标绘中动态箭标绘制方法
技术领域
本发明涉及三维地理信息绘制领域,尤其是一种在三维地理信息系统中绘制动态箭标的方法。
背景技术
人类已经处于信息时代,信息战争已经成为信息时代的重要作战方式,在未来战场大量的信息资源需要以数字地图的形式呈现给作战指挥员。三维军标符号作为军队作战指挥、作战模拟和其他军事相关活动中的一种常用的图形符号,是传输战场信息不可或缺的媒介。军标符号标绘为作战指挥和决策提供了直观、丰富、形象的战场态势信息,非规则军标符号标绘形式多种多样化,尤其利用非规则军标符号标绘可以表达红蓝方作战企图、意图和趋势绘制等,目前非规则军标中的箭标符号绘制是军标绘制的一大难点。
赵周等人提出的采用外界输入点的确定箭头的几何形状,然后通过箭头和箭身的几何参数特性求出所需的各个控制点的箭标绘制方法,由于需从外界输入的点过多,难以使绘图人员能够快速、准确地在地图上绘制出箭标符号。目前军标绘制领域的绘制方法多种多样,一些绘制方式过于繁琐,限制了绘图人员的操作,而且绘制出的军标符号在地理信息系统中显示都是静态的,不能清晰地表示战场态势信息,尤其是作战企图、意图和趋势信息,所以简化绘图人员的操作和动态军标的研究是非常有意义的。
发明内容
为了克服现有技术的不足,本发明提供一种军标符号中动态箭标标绘方法。利用Direct3D技术并结合三维地理信息系统将标绘完成的各种动态箭标军标标注在三维地图上形成战场态势图,在箭标标绘过程中只需在三维地理信息系统标定两个控制点(一个动态箭标的起点和终点),然后在根据这两个控制点生成箭标的其他顶点数据,标准动态箭标和标准燕尾动态箭标只需对各个顶点进行矢量变换和颜色映射,对于进攻型箭标通过对顶点数据插值计算和颜色映射对各个顶点进行赋值。进一步对箭标进行三角网格化。最后在渲染过程中为需要渲染箭标加入一个颜色透明度Alpha的增量,使得标绘在地理信息系统的上箭标出现动态效果,进而能够更清晰地辅助军事指挥员制定作战计划,进一步做出作战决策。
本发明解决其技术问题所采用的技术方案的详细步骤如下:
步骤1、根据模拟战场环境和战场态势,在三维地理信息系统军标库绘制界面中选择相应动态箭标进行绘制,本发明进行标准动态箭标、标准燕尾动态箭标和进攻型动态箭标的标绘,如绘制标准动态箭标,则进入步骤2,如绘制标准燕尾动态箭标,则进入步骤3,如绘制进攻型动态箭标,则进入步骤4;
步骤2、标准动态箭标标绘的步骤为:
步骤2.1:坐标系转换和统一
输入箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系;
步骤2.2:生成初始化标准箭标
计算地球物理坐标系下的起点和终点的距离记为dis,在X和Z轴上初始化一个标准箭标,由于箭标的所在高度的位置是根据地理信息系统中的具体位置有关的,所以箭标只在X轴和Z轴表示,各个顶点的坐标初始化如下:
P0(0,0,0),P1(0,0,-0.75dis),P2(0,0,-dis),P3(-10dis/30,0,0),P4(-5dis/30,0,-4dis),P5(-3dis/30,0,-0.75dis),P6(-7dis/30,0,-0.65dis),P7(10dis/30,0,0),P8(5dis/30,0,-0.4dis),P9(3dis/30,0,-0.75dis),P10(7dis/30,0,-0.65dis);
步骤2.3:转换初始化的标准箭标
将步骤2.2初始化后得到箭标关键点P0~P10存入顶点结构体定义的顶点缓存中,在对P0~P10进行矢量变换,将视点所在的位置向量Eye设置为起点坐标的值,将目标点位置向量At的值设置为终点坐标的值,将输入起点和终点时,某个视点方向的向上的向量Up的值设置为起点坐标与终点坐标之和的一半,将位置向量Eye、目标点位置向量At和向量Up计算得到坐标系观察矩阵Out,三个向量进行矢量变换后,将初始化每个关键点的坐标向量与坐标系观察矩阵Out相乘,将变换后的坐标向量对应的x,y,z值加上对应地球物理坐标系下起点坐标的x,y,z值得到适配在地理信息系统下的坐标;
步骤2.4:生成三角网格
将步骤2.3转化后的坐标利用Delaunay三角剖分算法生成三角网格,赋予标准箭标各顶点通过标绘界面设定的颜色值(RGB);
步骤2.5:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,由于颜色及其透明度的取值范围都在0~255之间,往渲染过程加入透明度增量30,使透明度值在30~240之间循环,设置包含箭标顶点的三维坐标、颜色、透明度的顶点格式,使用顶点缓存中的顶点坐标绘制动态箭标,在DirectX代码中设置线填充模式渲染状态,对箭标左右两边各个顶点分别按照缓存位置顺序进行依次连线进行线填充渲染,实现箭身的加粗效果;
步骤3、标准燕尾动态箭标的标绘:
标准燕尾动态箭标标绘的步骤和标准动态箭标的标绘步骤一致,区别在于步骤2.2中初始化动态箭标时,将P0点的坐标为P0(0,0,-0.2dis),即可形成燕尾;
步骤4、进攻型动态箭标标绘步骤为:
步骤4.1:坐标系转换和统一
输入动态箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系;
步骤4.2:产生进攻型箭标左右两边的顶点
把进攻型箭标根据笛卡尔坐标系X轴方向分为左右两边,X正方向为右边,负方向为左边,计算经过步骤4.1转换后的箭标起点到终点的距离,初始化左右两边的起点分别为S0(-dis/4+oldQiuX,oldQiuY,oldQiuZ)和S1(dis/4+oldQiuX,oldQiuY,oldQiuZ),其中dis为箭标起点到终点的距离,oldQiuX,oldQiuY,oldQiuZ为步骤4.1转换后的起点坐标,分别计算左右两边的起点S0和S1到终点的距离,分别记为disRight和disLeft,比较左右两边起点到终点的距离,先生成距离较短的一边的顶点坐标,假设disRight<disLeft,利用递归二分法生成左右两边的顶点,先生成右边的顶点,再生成另一边的顶点,左右两边的顶点个数相同;
步骤4.3:对左右两边的顶点进行顶点数据插值
对左右两边的箭标顶点数据线性插值为曲线顶点数据,动态箭标左右两边插值方式相同;
步骤4.4:确定箭颈和箭耳顶点
插值后的左右两边的顶点分别依次相连,得到一个弯曲的三角形,然后再求出动态箭标的两个箭颈和箭耳坐标,两边的顶点的个数相同,取两边的顶点距离最终位置的六分之一处作为箭颈坐标,左箭耳是基于左箭颈X,Z轴坐标值分别加减disRight/5,右箭耳X轴坐标基于右箭颈X轴坐标值减disRight/4,右箭耳Z轴坐标基于右箭颈X轴坐标值加disRight/14;
左箭耳是基于左箭颈X,Z轴坐标值分别加减disRight/5,右箭耳X轴坐标基于右箭颈X轴坐标值减disRight/4,右箭耳Z轴坐标基于右箭颈X轴坐标值加disRight/14;
步骤4.5:生成三角网格
使用Delaunay三角剖分算法生成三角网格,赋予箭标各个顶点在标绘界面自行设定的一个颜色值(RGB);
步骤4.6:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,在渲染过程中加入透明度增30,使透明度值不断在30-240之间循环,设置包含箭标顶点的三维坐标、颜色、透明度的顶点格式,使用顶点缓存绘制动态箭标,设置线填充模式,对箭身左右两边的各个顶点分别按照顶点位置顺序依次连线渲染,实现箭身一个加粗的效果。
所述步骤2.1、步骤3.1和步骤4.1所涉及的坐标系转换和统一的具体方法如下:
经纬度转化为地面平面坐标系的变换公式为:
X=(longitude+180)*QiuKuandu/360
Y=(latitude+90)*QiuGaodu/180
地面平面坐标系转化为地球物理坐标系的变换公式为:
AngX=(-180+X/QiuKuandu*360)*π/180
AngY=(-90+Y/QiuGaodu*180)*π/180
x=cos(AngY)*(QiuRad+Y)*cos(AngX)
y=cos(AngY)*(QiuRad+Y)*sin(AngX)
z=(QiuRad+Z)*sin(AngY)
其中,longitude为经度,latitude为纬度,QiuKuandu为地球赤道长度,(X,Y)为经纬度转换后的平面坐标系的坐标。QiuGaodu为赤道长度的二分之一,QiuRad为地球半径,(x,y,z)为转换后的地球物理坐标系坐标。
所述步骤2.3中坐标系观察矩阵Out的计算方法如下:
zaxis=normal(At-Eye)
xaxis=normal(cross(Up-zaxis))
yaxis=cross(zaxis,xaxis)
Figure BDA0001898092020000051
其中normal(x)为向量x单位向量化公式,cross(x,y)为计算向量x和向量y的法向量公式,zaxis观察坐标系的Z轴,xaxis为观察坐标系的X轴,yaxis为观察坐标的Y轴,Eye为视点所在的位置向量,At为目标点位置向量,UP为方向向上的向量,Out为坐标系观察矩阵。
所述步骤4.2中产生进攻型箭标左右两边的顶点的具体计算方法如下:
计算左右两边的起点S0和S1到到终点的距离分别记为disRight和disLeft,假设disRight<disLeft,先生成起点到终点距离较短一边的顶点,计算步长并生成右边的顶点,将生成的点坐标依次递增2,从顶点缓存地址位置序号2开始存入顶点缓存,右部顶点缓存地址位置为(2,4,6,8,10,12,......);
步骤4.2.1、设置较短距离边的步长为:
RightStep=disRight/64
其中RightStep为箭身右边的步长,disRight为箭身右边起点到终点的距离;
步骤4.2.2、利用递归二分法生成右边的顶点,记生成箭身右边顶点最后存入顶点缓存位置为tr,进行递归二分生成顶点时利用GenerateRightVertex(顶点缓存,起点,终点)为递归函数原型,将顶点缓存、起点、和终点作为递归函数的参数开始进行以下步骤:
步骤4.2.2.1、计算GenerateRightVertex函数中起点和终点坐标的距离disA;
步骤4.2.2.2、判断disA-RightStep的值是否小于设定的阈值,阈值设置为disA/256,如果disA-RightStep的值小于阈值,则退出递归,生成坐标点结束,否则进入步骤4.2.2.3;
步骤4.2.2.3、计算GenerateRightVertex函数中起点和终点的中点,将中点坐标送入给顶点缓存;
步骤4.2.2.4、开始进行递归二分GenerateRightVertex(顶点缓存,起点,中点),将顶点缓存、起点和步骤4.2.2.3得到的中点坐标作为递归函数的参数继续执行4.2.2.1、4.2.2.2、4.2.2.3、4.2.2.4、4.2.2.5步骤;
步骤4.2.2.5、开始进行递归二分GenerateRightVertex(顶点缓存,中点,终点),把顶点缓存、中点、和终点左边参数作为递归函数的参数继续执行4.2.2.1、4.2.2.2、4.2.2.3、4.2.2.4、4.2.2.5步骤,直至符合步骤4.2.2.2的小于设定的阈值条件结束,进入步骤4.2.3;
步骤4.2.3、得到对存入顶点缓存中的顶点数据位置按顶点的Z轴坐标进行升序排序,最终顶点在顶点缓存位置为(2,4,6,8,10,12,......);
步骤4.2.4、为了使动态箭标左右两边的顶点个数相同,计算较长距离边的步长,步长公式为:
LeftStep=disLeft/tr*2
其中LeftStep为箭身右边的步长,disLeft为箭身左边起点到终点的距离,tr为箭身右边顶点个数的2倍;
步骤4.2.5、利用递归二分法生成左边的顶点,与步骤4.2.2同理;
步骤4.2.6、得到对存入顶点缓存中的顶点数据位置按顶点的Z轴坐标进行升序排序,最终顶点在顶点缓存位置(3,5,7,9,11,......)。
所述步骤4.3对左右两边的顶点进行顶点数据插值的计算方法如下:
箭标左右两边的插值方式一致,如下给出箭标右边所有顶点插值方式,设箭标右边最后一个顶点存入顶点缓存的位置是tr,从箭身右部顶点缓存中第0个位置开始,进行如下步骤:
步骤4.3.1、计算插值步长XRight,计算公式如下:
XRight=disRight/6
其中,XRight为箭身右边的插值步长,disRight为箭身右边起点到终点的距离;
步骤4.3.2、从第0个位置开始对右边顶点位置依次进行遍历,直到右边顶点存入顶点缓存的最后一个位置,设当前遍历顶点的位置为i,对各个顶点进行线性数据插值,并且插值步长以步骤4.3.2.2的形式递减,即可构造出来曲线的效果;所述遍历顶点时插值的步骤为:
步骤4.3.2.1、对第i个位置的顶点X轴坐标减XRight,Z轴坐标加上XRight;
步骤4.3.2.2、如果箭标右边的顶点位置i小于tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/20
如果箭标右边的顶点位置i大于等于tr/4,小于tr/2,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/15
如果箭标右边的顶点位置i大于等于tr/2,小于tr/2+tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/10
如果箭标右边的顶点位置i大于等于tr/2+tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/5。
本发明的有益效果在于动态箭标标方法采用在渲染过程中给箭标各个顶点的透明度赋予一个增量,结合具有真实地形的三维地理信息系统显示,以更加简单、快速渲染方式实现了三维动态箭标的效果,为作战指挥和决策提供了直观、丰富、形象的战场态势信息。
附图说明
图1:动态箭标标绘模块流程图;
图2:在笛卡尔坐标系下的标准箭标;
图3:为在三维地理信息系统中的线填充和面填充标准箭标标绘图;其中(a)图为线填充标准箭标标绘图,(b)图为面填充标准箭标标绘图;
图4:在笛卡尔坐标系下的标准燕尾箭标;
图5:在三维地理信息系统中的线填充和面填充的标准燕尾箭标标绘图;其中(a)图为线填充标准燕尾箭标标绘图,(b)图为面填充标准燕尾箭标标绘图;
图6:在笛卡尔坐标系下的进攻型箭标;
图7:在三维地理信息系统中的线填充和面填充的进攻型箭标标绘图;其中(a)图为线填充进攻型箭标标绘图,(b)图为面填充进攻型箭标标绘图;
图8:在三维地理信息系统中的进攻型动态箭标标绘图;(a)、(b)、(c)三个图依次为动态箭标的部分动态显示过程中的截图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
本发明绘制的动态箭标都是由很多个顶点形成基本的三角形图元组合而成,本发明包括标准动态箭标(标准燕尾动态箭标)和进攻型动态箭标的绘制:
步骤1、根据模拟战场环境和战场态势,在三维地理信息系统军标库绘制界面中选择相应动态箭标进行绘制,本发明进行标准动态箭标、标准燕尾动态箭标和进攻型动态箭标的标绘,如绘制标准动态箭标,则进入步骤2,如绘制标准燕尾动态箭标,则进入步骤3,如绘制进攻型动态箭标,则进入步骤4;
步骤2、标准动态箭标标绘的步骤为:
步骤2.1:坐标系转换和统一
输入箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系;
步骤2.2:生成初始化标准箭标
计算地球物理坐标系下的起点和终点的距离记为dis,在X和Z轴上初始化一个标准箭标,由于箭标的所在高度的位置是根据地理信息系统中的具体位置有关的,所以箭标只在X轴和Z轴表示,各个顶点的坐标初始化如下:
P0(0,0,0),P1(0,0,-0.75dis),P2(0,0,-dis),P3(-10dis/30,0,0),P4(-5dis/30,0,-4dis),P5(-3dis/30,0,-0.75dis),P6(-7dis/30,0,-0.65dis),P7(10dis/30,0,0),P8(5dis/30,0,-0.4dis),P9(3dis/30,0,-0.75dis),P10(7dis/30,0,-0.65dis),在初始化下的箭标如图2所示。
步骤2.3:转换初始化的标准箭标
将步骤2.2初始化后得到箭标关键点P0~P10存入顶点结构体定义的顶点缓存中,为了适配在地理系统上选择的箭标的起始点生成正确的箭标,需要在对P0~P10进行矢量变换,将视点所在的位置向量Eye设置为起点坐标的值,将目标点位置向量At的值设置为终点坐标的值,将输入起点和终点时,某个视点方向的向上的向量Up的值设置为起点坐标与终点坐标之和的一半,将位置向量Eye、目标点位置向量At和向量Up计算得到坐标系观察矩阵Out,将三个向量进行矢量变换后,将初始化每个关键点的坐标向量与坐标系观察矩阵Out相乘,将变换后的坐标向量对应的x,y,z值加上对应地球物理坐标系下起点坐标的x,y,z值得到适配在地理信息系统下的坐标;
步骤2.4:生成三角网格
将步骤2.3转化后的坐标利用Delaunay三角剖分算法生成三角网格,赋予标准箭标各顶点通过标绘界面设定的颜色值(RGB);
步骤2.5:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,由于颜色及其透明度的取值范围都在0~255之间,往渲染过程加入透明度增量30,使透明度值在30~240之间循环,设置包含箭标顶点的三维坐标、颜色、透明度的灵活顶点格式,使用顶点缓存中的顶点坐标绘制动态箭标,在DirectX代码中设置线填充模式渲染状态,对箭标左右两边各个顶点分别按照缓存位置顺序进行依次连线进行线填充渲染,实现箭身的加粗效果;
步骤3、标准燕尾动态箭标的标绘:
标准燕尾动态箭标标绘的步骤和标准动态箭标的标绘步骤一致,只是步骤2.2中初始化动态箭标时将P0点的坐标为P0(0,0,-0.2dis),即可形成燕尾,如图4所示。
步骤4、进攻型动态箭标标绘步骤为:
步骤4.1:坐标系转换和统一
输入动态箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系;
步骤4.2:产生进攻型箭标左右两边的顶点
把进攻型箭标根据笛卡尔坐标系X轴方向分为左右两边,X正方向为右边,负方向为左边,计算经过步骤4.1转换后的箭标起点到终点的距离,初始化左右两边的起点分别为S0(-dis/4+oldQiuX,oldQiuY,oldQiuZ)和S1(dis/4+oldQiuX,oldQiuY,oldQiuZ),其中dis为箭标起点到终点的距离,oldQiuX,oldQiuY,oldQiuZ为步骤4.1转换后的起点坐标,分别计算左右两边的起点S0和S1到终点的距离,分别记为disRight和disLeft,比较左右两边起点到终点的距离,先生成距离较短的一边的顶点坐标,假设disRight<disLeft,利用递归二分法生成左右两边的顶点,先生成右边的顶点,再生成另一边的顶点,左右两边的顶点个数相同;
步骤4.3:对左右两边的顶点进行顶点数据插值
对左右两边的箭标顶点数据线性插值为曲线顶点数据,动态箭标左右两边插值方式相同;
步骤4.4:确定箭颈和箭耳顶点
插值后的左右两边的顶点分别依次相连,得到一个弯曲的三角形,然后再求出动态箭标的两个箭颈和箭耳坐标,两边的顶点的个数相同,取两边的顶点距离最终位置的六分之一处作为箭颈坐标,左箭耳是基于左箭颈X,Z轴坐标值分别加减disRight/5,右箭耳X轴坐标基于右箭颈X轴坐标值减disRight/4,右箭耳Z轴坐标基于右箭颈X轴坐标值加disRight/14;
经过实验反复调整,下面插值方式形成的箭头最美观,左箭耳是基于左箭颈X,Z轴坐标值分别加减disRight/5,右箭耳X轴坐标基于右箭颈X轴坐标值减disRight/4,右箭耳Z轴坐标基于右箭颈X轴坐标值加disRight/14;
步骤4.5:生成三角网格
使用Delaunay三角剖分算法生成三角网格,赋予箭标各个顶点在标绘界面自行设定的一个颜色值(RGB);
步骤4.6:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,在渲染过程中加入透明度增30,使透明度值不断在30-240之间循环,设置包含箭标顶点的三维坐标、颜色、透明度的灵活顶点格式,使用顶点缓存绘制动态箭标,设置线填充模式,对箭身左右两边的各个顶点分别按照顶点位置顺序依次连线渲染,实现箭身一个加粗的效果。
所述步骤2.1、步骤3.1和步骤4.1所涉及的坐标系转换和统一的具体方法如下:
经纬度转化为地面平面坐标系的变换公式为:
X=(longitude+180)*QiuKuandu/360
Y=(latitude+90)*QiuGaodu/180
地面平面坐标系转化为地球物理坐标系的变换公式为:
AngX=(-180+X/QiuKuandu*360)*π/180
AngY=(-90+Y/QiuGaodu*180)*π/180
x=cos(AngY)*(QiuRad+Y)*cos(AngX)
y=cos(AngY)*(QiuRad+Y)*sin(AngX)
z=(QiuRad+Z)*sin(AngY)
其中,longitude为经度,latitude为纬度,QiuKuandu为地球赤道长度,(X,Y)为经纬度转换后的平面坐标系的坐标。QiuGaodu为赤道长度的二分之一,QiuRad为地球半径,(x,y,z)为转换后的地球物理坐标系坐标。
所述步骤2.3矩阵具体计算方法如下:
zaxis=normal(At-Eye)
xaxis=normal(cross(Up-zaxis))
yaxis=cross(zaxis,xaxis)
Figure BDA0001898092020000111
其中,normal(x)为向量x单位向量化公式,cross(x,y)为计算向量x和向量y的法向量公式,zaxis观察坐标系的Z轴,xaxis为观察坐标系的X轴,yaxis为观察坐标的Y轴,Eye为视点所在的位置向量,At为目标点位置向量,UP为方向向上的向量,Out为坐标系观察矩阵。
所述步骤4.2具体计算方法如下:
计算左右两边的起点S0和S1到到终点的距离分别记为disRight和disLeft(假设disRight<disLeft),先生成起点到终点距离较短一边的顶点,计算步长并生成右边的顶点,将生成的点坐标依次递增2,从顶点缓存地址位置序号2开始存入顶点缓存,右部顶点缓存地址位置为(2,4,6,8,10,12,......)。
步骤4.2.1、设置较短距离边的步长为:
RightStep=disRight/64
其中RightStep为箭身右边的步长,disRight为箭身右边起点到终点的距离;
步骤4.2.2、利用递归二分法生成右边的顶点,记生成箭身右边顶点最后存入顶点缓存位置为tr,进行递归二分生成顶点时利用GenerateRightVertex(顶点缓存,起点,终点)为递归函数原型,将顶点缓存、起点、和终点作为递归函数的参数开始进行以下步骤:
步骤4.2.2.1、计算GenerateRightVertex函数中起点和终点坐标的距离disA;
步骤4.2.2.2、判断disA-RightStep的值是否小于设定的阈值,阈值设置为disA/256,如果disA-RightStep的值小于阈值,则退出递归,生成坐标点结束,否则进入步骤4.2.2.3;
步骤4.2.2.3、计算GenerateRightVertex函数中起点和终点的中点,将中点坐标送入给顶点缓存;
步骤4.2.2.4、开始进行递归二分GenerateRightVertex(顶点缓存,起点,中点),将顶点缓存、起点和步骤4.2.2.3得到的中点坐标作为递归函数的参数继续执行4.2.2.1、4.2.2.2、4.2.2.3、4.2.2.4、4.2.2.5步骤;
步骤4.2.2.5、开始进行递归二分GenerateRightVertex(顶点缓存,中点,终点),把顶点缓存、中点、和终点左边参数作为递归函数的参数继续执行4.2.2.1、4.2.2.2、4.2.2.3、4.2.2.4、4.2.2.5步骤,直至符合步骤4.2.2.2的小于设定的阈值条件结束,进入步骤4.2.3;
步骤4.2.3、得到对存入顶点缓存中的顶点数据位置按顶点的Z轴坐标进行升序排序,最终顶点在顶点缓存位置为(2,4,6,8,10,12,......);
步骤4.2.4、为了使动态箭标左右两边的顶点个数相同,计算较长距离边的步长,步长公式为:
LeftStep=disLeft/tr*2
其中LeftStep为箭身右边的步长,disLeft为箭身左边起点到终点的距离,tr为箭身右边顶点个数的2倍;
步骤4.2.5、利用递归二分法生成左边的顶点,与步骤4.2.2同理;
步骤4.2.6、得到对存入顶点缓存中的顶点数据位置按顶点的Z轴坐标进行升序排序,最终顶点在顶点缓存位置(3,5,7,9,11,......)。
所述步骤4.3插值计算方法如下:
箭标左右两边的插值方式一致,下面给出箭标右边所有顶点插值方式,设箭标右边最后一个顶点存入顶点缓存的位置是tr,从箭身右部顶点缓存中第0个位置开始,进行如下步骤:
步骤4.3.1、计算插值步长XRight,计算公式如下:
XRight=disRight/6
其中XRight为箭身右边的插值步长,disRight为箭身右边起点到终点的距离;
步骤4.3.2、从第0个位置开始对右边顶点位置依次进行遍历,直到右边顶点存入顶点缓存的最后一个位置,设当前遍历顶点的位置为i,对各个顶点进行线性数据插值,并且插值步长以步骤4.3.2.2的形式递减,即可构造出来曲线的效果;所述遍历顶点时插值的步骤:
步骤4.3.2.1、对第i个位置的顶点X轴坐标减XRight,Z轴坐标加上XRight;
步骤4.3.2.2、如果箭标右边的顶点位置i小于tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/20
如果箭标右边的顶点位置i大于等于tr/4,小于tr/2,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/15
如果箭标右边的顶点位置i大于等于tr/2,小于tr/2+tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/10
如果箭标右边的顶点位置i大于等于tr/2+tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/5。
图1是本发明提出军标符号标绘中的一种动态箭标绘制方法的系统流程图,具体包括以下步骤:
1、标准动态箭标标绘具体步骤如下:
步骤一:坐标系转换和统一
输入标准箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系。
步骤二:生成初始化标准箭标
计算地球物理坐标系下的起点和终点的距离记为dis,在X和Z轴上初始化一个标准箭标。由于箭标的所在高度的位置是根据地理信息系统中的具体位置有关的,所以箭标只在X轴和Z轴表示。各个顶点的坐标初始化如下:
P0(0,0,0)P1(0,0,-0.75dis)P2(0,0,-dis)P3(-10dis/30,0,0)P4(-5dis/30,0,-4dis)P5(-3dis/30,0,-0.75dis)P6(-7dis/30,0,-0.65dis)P7(10dis/30,0,0)P8(5dis/30,0,-0.4dis)P9(3dis/30,0,-0.75dis)P10(7dis/30,0,-0.65dis)在初始化下的箭标如图2所示。
步骤三:转换初始化的标准箭标
将初始化的标准箭标坐标点存入顶点结构体定义的顶点缓存中,为了适配在地理系统上选择的箭标的起始点生成正确的箭标,需要在对这些坐标点向量进行矢量变换,将变换后的这些坐标向量对应的x,y,z值都加上对应地球物理坐标系下起点x,y,z值。
步骤四:生成三角网格
使用Delaunay三角剖分算法生成三角网格,赋予箭标各个顶点先前在界面自行设定的一个颜色值(RGB)。
步骤五:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,在渲染过程中加入透明度增30,使透明度值不断在30-240之间一直循环。循环过程如图1渲染过程所示。设置包含箭标顶点的三维坐标、颜色、透明度的灵活顶点格式,使用顶点缓存绘制箭标,对各个箭标顶点按缓存位置依次连线渲染,对箭身产生一个加粗的效果。在地理信息系统上标绘的标准箭标如图3所示。
2、标准燕尾动态箭标的标绘:
燕尾动态箭标标绘的步骤和标准动态箭标标绘的步骤基本一致。根据上面描述的绘制标准动态箭标步骤,绘制标准燕尾动态箭标只需要把初始化坐标系下的P0点的坐标改成P0(0,0,-0.2dis),其中dis为地球物理坐标系下的起点和终点的距离。其余坐标的初始化不变。,初始化燕尾动态箭标如图4所示。在地理信息系统上标绘的标准燕尾箭标如图5所示。
3、进攻型动态箭标标绘步骤为:
步骤一:坐标系转换和统一
输入标准动态箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系。
步骤二:产生进攻型箭标左右两边的顶点
计算地球物理坐标系下的起点和终点的距离记为dis,把进攻动态箭标分为左右两边,初始化左右两边的起点S0(-dis/4+oldQiuX,oldQiuY,oldQiuZ),S1(dis/4+oldQiuX,oldQiuY,oldQiuZ)。其中dis为箭标起点到终点的距离,oldQiuX,oldQiuY,oldQiuZ为步骤一转换后的起点坐标。计算左右两边的起点S0和S1到到终点E的距离分别记为disLeft和disRight(假设disRight<disLeft),利用递归二分法先生成较短边的顶点,再生成另一边的顶点,左右两边的顶点个数必须一致。
步骤三:对左右两边的顶点进行数据顶点插值
对左右两边的线性顶点数据进行插值为曲线顶点数据,左右两边的插值方法一致方法。
步骤四:确定箭颈和箭耳顶点
经过插值后得到一个弯曲的三角形,然后再求出动态箭标的两个箭颈和箭耳坐标。两边的顶点的个数一样,取两边的顶点距离最终位置的六分之一处作为箭颈坐标。箭耳坐标是基于箭颈坐标插值形成的。经过实验反复调整,下面插值方式形成的箭头最美观。左箭耳是基于左箭颈X,Z轴坐标值分别加减disRight/5。右箭耳X轴坐标基于右箭颈X轴坐标值减disRight/4,右箭耳Z轴坐标基于右箭颈X轴坐标值加disRight/14。最后形成的进攻型箭标模型如图6所示。
步骤五:生成三角网格
使用Delaunay三角剖分算法生成三角网格,赋予箭标各个顶点在标绘界面自行设定的一个颜色值(RGB),三角网格化的进攻型箭标如图7所示。
步骤六:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,在渲染过程中加入透明度增30,使透明度值不断在30-240之间一直循环。设置包含箭标顶点的三维坐标、颜色、透明度的灵活顶点格式,渲染箭标。设置线填充模式,对箭标左右两边各个顶点分别按照缓存位置顺序依次连线渲染,对箭身产生一个加粗的效果。在地理信息系统上标绘的进攻型动态箭标如图8所示。

Claims (5)

1.一种军标符号标绘中动态箭标绘制方法,其特征在于包括下述步骤:
步骤1、根据模拟战场环境和战场态势,在三维地理信息系统军标库绘制界面中选择相应动态箭标进行绘制,进行标准动态箭标、标准燕尾动态箭标和进攻型动态箭标的标绘,如绘制标准动态箭标,则进入步骤2,如绘制标准燕尾动态箭标,则进入步骤3,如绘制进攻型动态箭标,则进入步骤4;
步骤2、标准动态箭标标绘的步骤为:
步骤2.1:坐标系转换和统一
输入箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系;
步骤2.2:生成初始化标准箭标
计算地球物理坐标系下的起点和终点的距离记为dis,在X和Z轴上初始化一个标准箭标,由于箭标所在高度的位置是与地理信息系统中的具体位置有关的,所以箭标只在X轴和Z轴表示,各个顶点的坐标初始化如下:
P0(0,0,0),P1(0,0,-0.75dis),P2(0,0,-dis),P3(-10dis/30,0,0),P4(-5dis/30,0,-4dis),P5(-3dis/30,0,-0.75dis),P6(-7dis/30,0,-0.65dis),P7(10dis/30,0,0),P8(5dis/30,0,-0.4dis),P9(3dis/30,0,-0.75dis),P10(7dis/30,0,-0.65dis);
步骤2.3:转换初始化的标准箭标
将步骤2.2初始化后得到箭标关键点P0~P10存入顶点结构体定义的顶点缓存中,在对P0~P10进行矢量变换,将视点所在的位置向量Eye设置为起点坐标的值,将目标点位置向量At的值设置为终点坐标的值,将输入起点和终点时,某个视点方向的向上的向量Up的值设置为起点坐标与终点坐标之和的一半,将位置向量Eye、目标点位置向量At和向量Up计算得到坐标系观察矩阵Out,三个向量进行矢量变换后,将初始化每个关键点的坐标向量与坐标系观察矩阵Out相乘,将变换后的坐标向量对应的x,y,z值加上对应地球物理坐标系下起点坐标的x,y,z值得到适配在地理信息系统下的坐标;
步骤2.4:生成三角网格
将步骤2.3转化后的坐标利用Delaunay三角剖分算法生成三角网格,赋予标准箭标各顶点通过标绘界面设定的颜色值(RGB);
步骤2.5:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,由于颜色及其透明度的取值范围都在0~255之间,往渲染过程加入透明度增量30,使透明度值在30~240之间循环,设置包含箭标顶点的三维坐标、颜色、透明度的顶点格式,使用顶点缓存中的顶点坐标绘制动态箭标,在DirectX代码中设置线填充模式渲染状态,对箭标左右两边各个顶点分别按照缓存位置顺序进行依次连线进行线填充渲染,实现箭身的加粗效果;
步骤3、标准燕尾动态箭标的标绘:
标准燕尾动态箭标标绘的步骤和标准动态箭标的标绘步骤一致,区别在于步骤2.2中初始化动态箭标时,将P0点的坐标为P0(0,0,-0.2dis),即可形成燕尾;
步骤4、进攻型动态箭标标绘步骤为:
步骤4.1:坐标系转换和统一
输入动态箭标的经纬度坐标起点和终点,然后将经纬度坐标转换为地面平面坐标系坐标,最后将地面平面坐标系坐标转换为地球物理坐标系;
步骤4.2:产生进攻型箭标左右两边的顶点
把进攻型箭标根据笛卡尔坐标系X轴方向分为左右两边,X正方向为右边,负方向为左边,计算经过步骤4.1转换后的箭标起点到终点的距离,初始化左右两边的起点分别为S0(-dis/4+oldQiuX,oldQiuY,oldQiuZ)和S1(dis/4+oldQiuX,oldQiuY,oldQiuZ),其中dis为箭标起点到终点的距离,oldQiuX,oldQiuY,oldQiuZ为步骤4.1转换后的起点坐标,分别计算左右两边的起点S0和S1到终点的距离,分别记为disRight和disLeft,比较左右两边起点到终点的距离,先生成距离较短的一边的顶点坐标,假设disRight<disLeft,利用递归二分法生成左右两边的顶点,先生成右边的顶点,再生成另一边的顶点,左右两边的顶点个数相同;
步骤4.3:对左右两边的顶点进行顶点数据插值
对左右两边的箭标顶点数据线性插值为曲线顶点数据,动态箭标左右两边插值方式相同;
步骤4.4:确定箭颈和箭耳顶点
插值后的左右两边的顶点分别依次相连,得到一个弯曲的三角形,然后再求出动态箭标的两个箭颈和箭耳坐标,两边的顶点的个数相同,取两边的顶点距离最终位置的六分之一处作为箭颈坐标,左箭耳是基于左箭颈X,Z轴坐标值分别加减disRight/5,右箭耳X轴坐标基于右箭颈X轴坐标值减disRight/4,右箭耳Z轴坐标基于右箭颈X轴坐标值加disRight/14;
左箭耳是基于左箭颈X,Z轴坐标值分别加减disRight/5,右箭耳X轴坐标基于右箭颈X轴坐标值减disRight/4,右箭耳Z轴坐标基于右箭颈X轴坐标值加disRight/14;步骤4.5:生成三角网格
使用Delaunay三角剖分算法生成三角网格,赋予箭标各个顶点在标绘界面自行设定的一个颜色值(RGB);
步骤4.6:渲染动态箭标
通过Direct 3D代码实现设置深度测试、不剔除正反面、面填充模式渲染状态,在渲染过程中加入透明度增30,使透明度值不断在30-240之间循环,设置包含箭标顶点的三维坐标、颜色、透明度的顶点格式,使用顶点缓存绘制动态箭标,设置线填充模式,对箭身左右两边的各个顶点分别按照顶点位置顺序依次连线渲染,实现箭身一个加粗的效果。
2.根据权利要求1所述的一种军标符号标绘中动态箭标绘制方法,其特征在于包括下述步骤:
所述步骤2.1、步骤3.1和步骤4.1所涉及的坐标系转换和统一的具体方法如下:
经纬度转化为地面平面坐标系的变换公式为:
X=(longitude+180)*QiuKuandu/360
Y=(latitude+90)*QiuGaodu/180
地面平面坐标系转化为地球物理坐标系的变换公式为:
AngX=(-180+X/QiuKuandu*360)*π/180
AngY=(-90+Y/QiuGaodu*180)*π/180
x=cos(AngY)*(QiuRad+Y)*cos(AngX)
y=cos(AngY)*(QiuRad+Y)*sin(AngX)
z=(QiuRad+Z)*sin(AngY)
其中,longitude为经度,latitude为纬度,QiuKuandu为地球赤道长度,(X,Y)为经纬度转换后的平面坐标系的坐标,QiuGaodu为赤道长度的二分之一,QiuRad为地球半径,(x,y,z)为转换后的地球物理坐标系坐标。
3.根据权利要求1所述的一种军标符号标绘中动态箭标绘制方法,其特征在于包括下述步骤:
所述步骤2.3中坐标系观察矩阵Out的计算方法如下:
zaxis=normal(At-Eye)
xaxis=normal(cross(Up-zaxis))
yaxis=cross(zaxis,xaxis)
Figure FDA0003668073150000041
其中,normal(x)为向量x单位向量化公式,cross(x,y)为计算向量x和向量y的法向量公式,zaxis观察坐标系的Z轴,xaxis为观察坐标系的X轴,yaxis为观察坐标的Y轴,Eye为视点所在的位置向量,At为目标点位置向量,UP为方向向上的向量,Out为坐标系观察矩阵。
4.根据权利要求1所述的一种军标符号标绘中动态箭标绘制方法,其特征在于包括下述步骤:
所述步骤4.2中产生进攻型箭标左右两边的顶点的具体计算方法如下:
计算左右两边的起点S0和S1到终点的距离分别记为disRight和disLeft,假设disRight<disLeft,先生成起点到终点距离较短一边的顶点,计算步长并生成右边的顶点,将生成的点坐标依次递增2,从顶点缓存地址位置序号2开始存入顶点缓存,右部顶点缓存地址位置为(2,4,6,8,10,12,......);
步骤4.2.1、设置较短距离边的步长为:
RightStep=disRight/64
其中RightStep为箭身右边的步长,disRight为箭身右边起点到终点的距离;
步骤4.2.2、利用递归二分法生成右边的顶点,记生成箭身右边顶点最后存入顶点缓存位置为tr,进行递归二分生成顶点时利用GenerateRightVertex(顶点缓存,起点,终点)为递归函数原型,将顶点缓存、起点、和终点作为递归函数的参数开始进行以下步骤:
步骤4.2.2.1、计算GenerateRightVertex函数中起点和终点坐标的距离disA;
步骤4.2.2.2、判断disA-RightStep的值是否小于设定的阈值,阈值设置为disA/256,如果disA-RightStep的值小于阈值,则退出递归,生成坐标点结束,否则进入步骤4.2.2.3;
步骤4.2.2.3、计算GenerateRightVertex函数中起点和终点的中点,将中点坐标送入给顶点缓存;
步骤4.2.2.4、开始进行递归二分GenerateRightVertex(顶点缓存,起点,中点),将顶点缓存、起点和步骤4.2.2.3得到的中点坐标作为递归函数的参数继续执行4.2.2.1、4.2.2.2、4.2.2.3、4.2.2.4、4.2.2.5步骤;
步骤4.2.2.5、开始进行递归二分GenerateRightVertex(顶点缓存,中点,终点),把顶点缓存、中点、和终点左边参数作为递归函数的参数继续执行4.2.2.1、4.2.2.2、4.2.2.3、4.2.2.4、4.2.2.5步骤,直至符合步骤4.2.2.2的小于设定的阈值条件结束,进入步骤4.2.3;
步骤4.2.3、得到对存入顶点缓存中的顶点数据位置按顶点的Z轴坐标进行升序排序,最终顶点在顶点缓存位置为(2,4,6,8,10,12,......);
步骤4.2.4、为了使动态箭标左右两边的顶点个数相同,计算较长距离边的步长,步长公式为:
LeftStep=disLeft/tr*2
其中LeftStep为箭身右边的步长,disLeft为箭身左边起点到终点的距离,tr为箭身右边顶点个数的2倍;
步骤4.2.5、利用递归二分法生成左边的顶点,与步骤4.2.2同理;
步骤4.2.6、得到对存入顶点缓存中的顶点数据位置按顶点的Z轴坐标进行升序排序,最终顶点在顶点缓存位置(3,5,7,9,11,......)。
5.根据权利要求1所述的一种军标符号标绘中动态箭标绘制方法,其特征在于包括下述步骤:
所述步骤4.3对左右两边的顶点进行顶点数据插值的计算方法如下:
箭标左右两边的插值方式一致,如下给出箭标右边所有顶点插值方式,设箭标右边最后一个顶点存入顶点缓存的位置是tr,从箭身右部顶点缓存中第0个位置开始,进行如下步骤:
步骤4.3.1、计算插值步长XRight,计算公式如下:
XRight=disRight/6
其中,XRight为箭身右边的插值步长,disRight为箭身右边起点到终点的距离;
步骤4.3.2、从第0个位置开始对右边顶点位置依次进行遍历,直到右边顶点存入顶点缓存的最后一个位置,设当前遍历顶点的位置为i,对各个顶点进行线性数据插值,并且插值步长以步骤4.3.2.2的形式递减,即可构造出来曲线的效果;所述遍历顶点时插值的步骤为:
步骤4.3.2.1、对第i个位置的顶点X轴坐标减XRight,Z轴坐标加上XRight;
步骤4.3.2.2、如果箭标右边的顶点位置i小于tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/20
如果箭标右边的顶点位置i大于等于tr/4,小于tr/2,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/15
如果箭标右边的顶点位置i大于等于tr/2,小于tr/2+tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/10
如果箭标右边的顶点位置i大于等于tr/2+tr/4,则更新后的插值步长XRight′为:
XRight′=XRight-XRight/5。
CN201811500815.0A 2018-12-10 2018-12-10 一种军标符号标绘中动态箭标绘制方法 Active CN109685901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811500815.0A CN109685901B (zh) 2018-12-10 2018-12-10 一种军标符号标绘中动态箭标绘制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811500815.0A CN109685901B (zh) 2018-12-10 2018-12-10 一种军标符号标绘中动态箭标绘制方法

Publications (2)

Publication Number Publication Date
CN109685901A CN109685901A (zh) 2019-04-26
CN109685901B true CN109685901B (zh) 2022-07-22

Family

ID=66187349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811500815.0A Active CN109685901B (zh) 2018-12-10 2018-12-10 一种军标符号标绘中动态箭标绘制方法

Country Status (1)

Country Link
CN (1) CN109685901B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110660121B (zh) * 2019-08-22 2022-04-05 稿定(厦门)科技有限公司 三维字体渲染方法、介质、设备及装置
CN110781324B (zh) * 2019-08-31 2022-07-19 中国科学院电子学研究所苏州研究院 一种基于三维标图系统的符号库
CN110706304B (zh) * 2019-09-23 2023-02-03 中国科学院海洋研究所 一种极地水汽输送通量的可视化算法
CN111028353B (zh) * 2019-12-26 2023-04-21 南京师范大学 顾及线宽一致性的矢量地图线符号燕尾形箭头绘制方法
CN111145296B (zh) * 2019-12-26 2023-05-09 南京师范大学 顾及线宽一致性的矢量地图线符号圆形箭头绘制方法
CN111145297B (zh) * 2019-12-26 2023-04-21 南京师范大学 顾及线宽一致性的矢量地图线符号钻石形箭头绘制方法
CN111145298B (zh) * 2019-12-26 2023-04-21 南京师范大学 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法
CN113487704B (zh) * 2021-06-25 2024-01-30 山东齐鲁数通科技有限公司 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917500A (en) * 1998-01-05 1999-06-29 N-Dimensional Visualization, Llc Intellectual structure for visualization of n-dimensional space utilizing a parallel coordinate system
CN104318509A (zh) * 2014-10-30 2015-01-28 中国电子科技集团公司第五十四研究所 一种基于gpu的大批量目标高速标绘方法
CN104504742A (zh) * 2014-12-24 2015-04-08 中国航天科工集团第四研究院 一种基于电子沙盘系统的三维军标标绘方法
CN107705345A (zh) * 2017-09-30 2018-02-16 南威软件股份有限公司 一种态势标绘之动态军标的标绘方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969271A (en) * 1989-02-17 1990-11-13 Sump Mallory L Map reading and plotting instrument
US8566020B2 (en) * 2009-12-01 2013-10-22 Nokia Corporation Method and apparatus for transforming three-dimensional map objects to present navigation information
CN102521863B (zh) * 2011-12-01 2014-04-02 武汉大学 一种基于粒子系统的三维流体标矢量统一动态表示方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917500A (en) * 1998-01-05 1999-06-29 N-Dimensional Visualization, Llc Intellectual structure for visualization of n-dimensional space utilizing a parallel coordinate system
CN104318509A (zh) * 2014-10-30 2015-01-28 中国电子科技集团公司第五十四研究所 一种基于gpu的大批量目标高速标绘方法
CN104504742A (zh) * 2014-12-24 2015-04-08 中国航天科工集团第四研究院 一种基于电子沙盘系统的三维军标标绘方法
CN107705345A (zh) * 2017-09-30 2018-02-16 南威软件股份有限公司 一种态势标绘之动态军标的标绘方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Research on new military plotting system architecture based on AutoCAD secondary development;X.Jin等;《2017 IEEE International Conference on Unmanned Systems (ICUS)》;20180201;313-317 *
一种基于三角形递归切分的三维军标绘制方法;罗理机等;《计算机科学》;20150415(第04期);281-285 *

Also Published As

Publication number Publication date
CN109685901A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN109685901B (zh) 一种军标符号标绘中动态箭标绘制方法
CN109003325B (zh) 一种三维重建的方法、介质、装置和计算设备
CN110554407B (zh) 一种模拟船用激光雷达三维点云成像方法
CN115100339B (zh) 图像生成方法、装置、电子设备和存储介质
US5774124A (en) Finite element modeling method and computer system for converting a triangular mesh surface to a quadrilateral mesh surface
US20070024620A1 (en) Method of generating surface defined by boundary of three-dimensional point cloud
CN103617603A (zh) 一种三维数字几何网格模型结构的自动修复方法
CN104240297A (zh) 一种救援机器人三维环境地图实时构建方法
CN103500467A (zh) 基于图像的三维模型构成方法
JPH0350679A (ja) コンピュータモデルシステム
CN103700134A (zh) 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法
CN105488844B (zh) 一种三维场景中海量模型实时阴影的显示方法
CN107220372A (zh) 一种三维地图线要素注记自动放置方法
CN111881985B (zh) 立体匹配方法、装置、终端和存储介质
CN114241151A (zh) 三维模型简化方法、装置、计算机设备和计算机存储介质
CN107845061A (zh) 图像处理方法、装置及终端
CN116109803B (zh) 信息构建方法、装置、设备及存储介质
CN116596985B (zh) 一种自适应光照模型建模方法与系统
CN109829962B (zh) 一种利用opengl的物体空间消隐线计算加速方法
CN113420460B (zh) 基于osg数据天际线的城市建筑限高快速分析方法及系统
CN109949397A (zh) 一种结合激光点和均值漂移的深度图重建方法
CN109087391A (zh) 一种三维场景下的军标标绘方法
CN114049423A (zh) 一种自动的真实感三维模型纹理映射方法
Zhang et al. The method based on Dijkstra of three-dimensional path planning
CN112967396A (zh) 基于镜向反射的3d模型球面保面积参数化方法及系统

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