一种直线多边形绘制组态系统道岔图符的方法与流程

文档序号:24410314发布日期:2021-03-26 19:05阅读:235来源:国知局
一种直线多边形绘制组态系统道岔图符的方法与流程

1.本发明涉及有轨电车信号系统技术领域,确切地说涉及一种直线多边形绘制组态系统道岔图符的方法。


背景技术:

2.在faots、ssip、有轨电车、综合运维等系统中,工程站场界面是整个系统的窗户,是人机操作的接口,对整个系统有着举足轻重的地位。在工程站场界面制作中,绘制人员不仅要配置及检查画面图形数据,同时需要绘制大量的界面设备图形。道岔、信号机、轨道区段在信号系统中为关键设备,且设备数量巨大,因此在界面设备图形绘制中,提高图符绘制的效率,降低绘制后调整图形的工作量显得尤为重要。
3.信号系统中,道岔具有状态多、动作多和影响面广的特点。在界面设备图形绘制中,为模拟真实的道岔定位、反位、挤岔等状态,其绘制方法要比信号机和轨道区段更为复杂。而道岔图符包括岔前区段、定位连接、定位区段、反位连接和反位区段5部分,其岔心部分一般为斜向尖角图形,但是现有技术对道岔图符绘制都是采用多个平行四边形进行拼接来实现,在对各部分大小和长度调节中,由于对平形四边形的调整是作用于其外接矩形,因此大小和长度的调整会带来平行四边形相对于水平线角度变化的副作用,然而道岔的角度对一个道岔而言是固定的,即角度变化不是绘制人员需要的变化。
4.因此,提出一个方法,实现道岔图符仅长度和大小调整,而不发生角度变化,减轻绘制人员调整图形大小的工作量,显得尤为重要。


技术实现要素:

5.本发明的目的在于针对现有技术的不足、克服现有技术的缺点,提供一种直线多边形图符形状制图、实现道岔图符长度、大小可调的同时不改变其相对于水平线的角度,消除使用平行四边形时调整道岔图符产生角度变化的副作的组态系统道岔图符绘制方法。
6.本发明的目的是通过以下技术方案实现的:
7.一种直线多边形绘制组态系统道岔图符的方法,其特征在于,包括以下步骤:
8.初始化步骤,将包括关键属性和附加属性的直线多边形数据模型,以及起点箭头实例和终点箭头实例进行初始化,并设置起点箭头和终点箭头的数据模型;
9.具体的,所述关键属性包括起点坐标、终点坐标、宽度参数、起点类型、终点类型、起点角度以及终点角度;所述附加属性包括背景色参数、显示中心线参数、线宽参数。为满足道岔图符的外形显示需求,直线多边形图符具有多边形的特性,边界由多条边拼接组成,其多变形分为主干多边形和两端端点的多边形,主干多边形的形状为矩形,可设置直线多边形图符的线宽大小,更改主干多边形形状;直线多边形的起点和终点为可更改点,有属性设置界面,以线型、角度类型和角度值3个属性,确定端点的类型,更改端点多边形的形状,端点多边形的默认形状为矩形。
10.而所述设置起点箭头和终点箭头的数据模型,具体包括设置起点箭头和终点箭头
的起点坐标、终点坐标、长度参数、宽度参数、角度参数以及类型。
11.直线多边形主干计算步骤,根据绘制参数中直线多边形的起点类型、终点类型、起点角度以及终点角度,对应调取经过初始化步骤处理的直线多边形数据模型,并根据绘制参数中的起点坐标、终点坐标和宽度参数,在二维坐标系中构建直线多边形数据模型的起点和终点,并以起点和终点的连线为中心线,根据宽度参数绘制带有四个顶点的直线多边形并将4个顶点作为直线多边形的主干多边形的点集;直线多边形数据模型构成的图符由其点集内部的点勾勒多条边构成,直线多边形的点集包括主干多边形点集和箭头多边形点集,主干多边形的点集为以直线多边形的起点和终点的连接线为中心,以固定宽度在中心线周围勾勒的矩形四个顶点构成。
12.进一步的,所述直线多边形主干计算步骤,具体的:
13.步骤1,根据绘制参数设置直线多边形数据模型的起点和终点,以起点和终点的连线为中心线,并在中心线两边、根据绘制参数中的宽度为间距绘制与中心线平行的两条平行线;
14.步骤2,分别绘制经过所述起点和终点、且垂直于步骤1中两条平行线的两条垂线,选取两条平行线和垂直线的4个交点作为直线多边形的主干多边形的点集。
15.直线多边形图符综合直线和多边形的特点,本质为一条具有固定宽度的直线,以直线起点和终点的连接线为中心,以固定宽度在中心线周围,勾勒多边形;为满足仅调整道岔图符延伸长度而不改变相对于水平线角度的需求,直线多边形图符囊括了直线特性,包括直线起点、终点和线条长度,起点和终点的控制点可使其像直线一样沿线调整长度,同时不更改角度。
16.优选地,所述直线多边形主干计算步骤中,若经过初始化步骤处理的直线多边形数据模型中不含有对应绘制参数中起点类型、终点类型、起点角度以及终点角度的直线多边形数据模型,则,还包括模型构建步骤,具体的,是根据绘制参数中起点类型、终点类型、起点角度以及终点角度,以单位数量等比例在二维坐标系中构建对应的直线多边形数据模型。在组态系统中,新增直线多边形数据模型的图符资源,该图符由若干个点连接的线构成,不同于平行四边形的调节直接作用于外接矩形造成的平行四边形各边调整比例与外接矩形调整比例之间存在差异,直线多边形图符的形状、大小和长度的调节直接作用于构成直线多边形图符的点集,可实现调整比例变化直接反应到直线多边形图符的各边上,实现所调即所得的效果。
17.箭头计算步骤,根据绘制参数中起点箭头和终点箭头的起点坐标、终点坐标、角度参数以及类型,对应调取经过初始化步骤处理的起点箭头实例和终点箭头实例,分别选择起点箭头实例和终点箭头实例的中心点ptcenter,并以中心点ptcenter为中心、根据绘制图参数要求中的长度参数和宽度参数向外生成矩形rc,并根据箭头类型和矩形rc,构造起点箭头和终点箭头的水平箭头点集;箭头多边形点集根据箭头的类型、角度等属性值的不同,分类型计算不同形状的点集,可勾勒成不同形状的箭头。
18.优选地,所述箭头计算步骤,具体包括以下步骤:
19.步骤1,根据起点箭头和终点箭头的类型分别选择起点箭头实例和终点箭头实例的中心点ptcenter。
20.步骤2,以步骤1中选择起点箭头实例和终点箭头实例的中心点ptcenter为中心,
根据绘制图参数要求的高度和宽度分别向外生成起点箭头和终点箭头的矩形rc;
21.步骤3,根据起点箭头和终点箭头的类型,以及步骤2中得到的起点箭头实例和终点箭头实例的矩形rc,构造起点箭头和终点箭头的水平箭头点集。
22.步骤4,分别计算起点箭头和终点箭头的中心点向量(0,ptcenter)与中心线向量(ptstart,ptend)间的旋转矩阵m;
23.步骤5,通过步骤4中的旋转矩阵m计算步骤3中生成的起点箭头和终点箭头的水平箭头点集,将起点箭头和终点箭头的水平箭头点集旋转至与所述直线多边形主干计算步骤中得到的主干多边形平行的点集相接的位置。
24.进一步的,所述箭头计算步骤中,若经过初始化步骤处理的起点箭头实例和终点箭头实例中不含有对应绘制参数中起点坐标、终点坐标、角度参数以及类型的起点箭头实例和终点箭头实例,则,还包括实例构建步骤,具体的,是根据绘制参数中起点坐标、终点坐标、角度参数以及类型,以单位数量等比例在二维坐标系中构建对应的起点箭头实例和终点箭头实例。
25.图符生成步骤,将所述直线多边形主干计算步骤中得到的主干多边形的点集和箭头计算步骤中得到的水平箭头的点集进行合并构成直线多边形点集,并勾勒出直线多边形图符;将主干多边形点集和箭头多边形点集进行合并,构成直线多边形点集,点集内部两点之间依次连线,即可绘制有固定宽度,端点具有不同形状的图符,满足道岔图符的形状绘制要求。
26.具体的,所述图符生成步骤,具体的,包括以下步骤:
27.步骤1,将所述箭头计算步骤中得到的起点箭头和终点箭头的水平箭头点集与所述直线多边形主干计算步骤中得到的主干多边形的点集重合的部分进行插入和替换,在点集重合的部分以水平箭头点集替换主干多边形的点集,并删除主干多边形的点集多余部分,形成直线多边形点集;对直线多边形的图符长度调整,形状调整落实到主干多边形和箭头多边形点集的重新计算上,即可实现图符调整和预期一致的效果。
28.步骤2,根据步骤1的直线多边形点集勾勒出直线多边形图符。
29.与现有技术相比,上述技术方案包括以下创新点及有益效果(优点):
30.1、上述方案设计了直线多边形图符,可替换平行四边形绘制道岔图符,不同于对平行四边形的调节作用于其外接矩形,其边的变化和实际操作变化不一致,直线多边形由主干矩形和起点、终点形状的点集构成,针对直线多边形的拉伸和形状的调节,直接影响点集的值,点集连接的边为直线多边形图符的边,实现了调节效果的直接反应,消除了平形四边形调整形状出现的角度变化的副作用,解决了平行四边形绘制的道岔图符在长度和大小的调整过程中,相对于水平线角度变化问题,实现了道岔图符在长度和大小上的预期化调整。
31.2、直线多边形图符的起点和终点为单独的对象,可实现多种形态的起点和终点,将道岔若干个不同形态的图符绘制统一到直线多边形图符中,免于使用多种图符,使得道岔图符的绘制过程更高效。
32.3、原有道岔图符绘制中,使用平行四边形图符需要输入至少4个点,且需要绘制保持水平,使用直线多边形图符只需输入2个点,即可绘制成形具有输入参数少、绘制简单的优点。
附图说明
33.本发明的前述和下文具体描述在结合以下附图阅读时变得更清楚,其中:
34.图1为本发明直线多边形的绘制流程图;
35.图2为本发明主干多边形点集的生成原理图;
36.图3为本发明直线多边形箭头类型示意图;
37.图4为本发明构造水平矩形示意图;
38.图5为本发明水平箭头的点集示意图;
39.图6为本发明单线型箭头实例示意图。
具体实施方式
40.下面通过具体的实施例来进一步说明实现本发明目的技术方案,需要说明的是,本发明要求保护的技术方案包括但不限于以下实施例。
41.实施例
42.作为本发明智能分析系统一种具体的实施方案,如图1,包括初始化步骤、直线多边形主干计算步骤、直线多边形主干计算步骤、箭头计算步骤和图符生成步骤。
43.所述初始化步骤,将包括关键属性和附加属性的直线多边形数据模型,以及起点箭头实例和终点箭头实例进行初始化,并设置起点箭头和终点箭头的数据模型;
44.具体的,所述关键属性包括起点坐标ptstart,终点坐标ptend,宽度参数width,起点类型starttype,终点类型endtype,起点角度startangle,终点角度endangle;所述附加属性包括背景色参数、显示中心线参数、线宽参数。为满足道岔图符的外形显示需求,直线多边形图符具有多边形的特性,边界由多条边拼接组成,其多变形分为主干多边形和两端端点的多边形,主干多边形的形状为矩形,可设置直线多边形图符的线宽大小,更改主干多边形形状;直线多边形的起点和终点为可更改点,有属性设置界面,以线型、角度类型和角度值3个属性,确定端点的类型,更改端点多边形的形状,端点多边形的默认形状为矩形。
45.而所述设置起点箭头和终点箭头的数据模型,具体包括设置起点ptstart,终点ptend,长度参数arrowlen,宽度参数arrowwidth,角度参数arrowangle,类型arrowtype。
46.参考图2的示例,初始化直线多边形图符的相关参数,ptstart(231,343),ptend(317,164),width(20像素点),starttype=单线型,endtype=双线型,起点角度=45度,终点角度=45度。
47.所述直线多边形主干计算步骤,根据绘制参数中直线多边形的起点类型、终点类型、起点角度以及终点角度,对应调取经过初始化步骤处理的直线多边形数据模型,并根据绘制参数中的起点坐标、终点坐标和宽度参数,在二维坐标系中构建直线多边形数据模型的起点和终点,并以起点和终点的连线为中心线,根据宽度参数绘制带有四个顶点的直线多边形并将4个顶点作为直线多边形的主干多边形的点集;直线多边形数据模型构成的图符由其点集内部的点勾勒多条边构成,直线多边形的点集包括主干多边形点集和箭头多边形点集,主干多边形的点集为以直线多边形的起点和终点的连接线为中心,以固定宽度在中心线周围勾勒的矩形四个顶点构成。
48.进一步的,所述直线多边形主干计算步骤,具体的:
49.步骤1,根据绘制参数设置直线多边形数据模型的起点和终点,以起点和终点的连
线为中心线,并在中心线两边、根据绘制参数中的宽度为间距绘制与中心线平行的两条平行线;
50.步骤2,分别绘制经过所述起点和终点、且垂直于步骤1中两条平行线的两条垂线,选取两条平行线和垂直线的4个交点作为直线多边形的主干多边形的点集。
51.例如,参考图2的示例,以垂直距离中心线(ptstart,ptend)的距离为宽度的一半(即width/2)的位置绘制两条平行线a和平形线b,以过起点坐标ptstart和、终点坐标ptend分别绘制垂直于中心线的垂线c和垂线d,利用几何公式可计算出平行线a和平形线b与垂线c和垂线d的4个交点p1(232,319)、p2(250,358)、p3(326,169)和p4(308,160),即为主干多边形的4个点的点集rectshapepoints={(232,319),(250,328),(326,169),(308,160)}。
52.直线多边形图符综合直线和多边形的特点,本质为一条具有固定宽度的直线,以直线起点和终点的连接线为中心,以固定宽度在中心线周围,勾勒多边形;为满足仅调整道岔图符延伸长度而不改变相对于水平线角度的需求,直线多边形图符囊括了直线特性,包括直线起点、终点和线条长度,起点和终点的控制点可使其像直线一样沿线调整长度,同时不更改角度。
53.优选地,所述直线多边形主干计算步骤中,若经过初始化步骤处理的直线多边形数据模型中不含有对应绘制参数中起点类型、终点类型、起点角度以及终点角度的直线多边形数据模型,则,还包括模型构建步骤,具体的,是根据绘制参数中起点类型、终点类型、起点角度以及终点角度,以单位数量等比例在二维坐标系中构建对应的直线多边形数据模型。在组态系统中,新增直线多边形数据模型的图符资源,该图符由若干个点连接的线构成,不同于平行四边形的调节直接作用于外接矩形造成的平行四边形各边调整比例与外接矩形调整比例之间存在差异,直线多边形图符的形状、大小和长度的调节直接作用于构成直线多边形图符的点集,可实现调整比例变化直接反应到直线多边形图符的各边上,实现所调即所得的效果。
54.所述箭头计算步骤,根据绘制参数中起点箭头和终点箭头的起点坐标、终点坐标、角度参数以及类型,对应调取经过初始化步骤处理的起点箭头实例和终点箭头实例,分别选择起点箭头实例和终点箭头实例的中心点ptcenter,并以中心点ptcenter为中心、根据绘制图参数要求中的长度参数和宽度参数向外生成矩形rc,并根据箭头类型和矩形rc,构造起点箭头和终点箭头的水平箭头点集;箭头多边形点集根据箭头的类型、角度等属性值的不同,分类型计算不同形状的点集,可勾勒成不同形状的箭头。
55.优选地,所述箭头计算步骤,具体包括以下步骤:
56.步骤1,根据起点箭头和终点箭头的类型分别选择起点箭头实例和终点箭头实例的中心点ptcenter。
57.步骤2,以步骤1中选择起点箭头实例和终点箭头实例的中心点ptcenter为中心,根据绘制图参数要求的高度和宽度分别向外生成起点箭头和终点箭头的矩形rc;
58.步骤3,根据起点箭头和终点箭头的类型,以及步骤2中得到的起点箭头实例和终点箭头实例的矩形rc,构造起点箭头和终点箭头的水平箭头点集。
59.步骤4,分别计算起点箭头和终点箭头的中心点向量(0,ptcenter)与中心线向量(ptstart,ptend)间的旋转矩阵m;
60.步骤5,通过步骤4中的旋转矩阵m计算步骤3中生成的起点箭头和终点箭头的水平
箭头点集,将起点箭头和终点箭头的水平箭头点集旋转至与所述直线多边形主干计算步骤中得到的主干多边形平行的点集相接的位置。
61.具体的,箭头类型的分类可以参考如图3所示,分为默认型a、单线型b、双线型c和单线(反向)型d,一般默认型a的箭头无形状,即为直线多边形主干计算步骤中计算的主干多边形两点绘制而成,故不计算构成箭头的点集。
62.进一步的,所述箭头计算步骤中,若经过初始化步骤处理的起点箭头实例和终点箭头实例中不含有对应绘制参数中起点坐标、终点坐标、角度参数以及类型的起点箭头实例和终点箭头实例,则,还包括实例构建步骤,具体的,是根据绘制参数中起点坐标、终点坐标、角度参数以及类型,以单位数量等比例在二维坐标系中构建对应的起点箭头实例和终点箭头实例。
63.即,所述箭头计算步骤,勾勒成不同形状的箭头在具体实施时,计算x方向上矩形扩展的宽度dlen、控制点pcontrol、中心点pcenter具体如下:
64.1、如果是默认型a、单线型b或单线(反向)型d,则各参数计算如下:
65.首先,箭头长度arrowlen在x坐标轴上的投影长度
66.然后,以ptstart、ptend和dlen作为参数,计算以ptstart为起点,ptend为终点的一阶贝塞尔曲线控制点pcontrol,
[0067][0068]
,式中len为ptstart到ptend之间的长度。
[0069]
最后,取起点ptstart为中心点pcenter。
[0070]
2、如果是双线型c,则各参数计算如下:
[0071]
首先,箭头长度arrowlen在x坐标轴上的投影长度dlen=arrowlength*3,即投影长度等于箭头长度的3倍。
[0072]
然后,和默认型a、单线型b或单线(反向)型d相同,以ptstart、ptend和dlen作为参数,计算以ptstart为起点,ptend为终点的一阶贝塞尔曲线控制点pcontrol,
[0073][0074]
,式中len为ptstart到ptend之间的长度。
[0075]
最后,取起点坐标ptstart作为顶点、找到并设定pcontrol控制点。
[0076]
具体的,以起点箭头为单线型、角度为45度为例,计算生成的dlen为20,pcontrol(238,312),pcenter为(231,343)。
[0077]
如图4所示,以中心点pcenter为中心,以(dlen,arrowlength)向外扩充为矩形rc构造水平的矩形,扩充生成的矩形rc={333,353,221,241}。
[0078]
然后根据箭头类型,以上述的矩形rc={333,353,221,241}为基础,计算水平箭头形状的点集。如图5所示,水平单线型和单线型反向的箭头形状可由4个点确定,双线型箭头可由5个点确定。
[0079]
其中,水平单线型箭头的4个点确定为
[0080][0081]
水平双线型箭头的5个点确定为
[0082][0083]
而水平单线型反向箭头的4个点确定为
[0084][0085]
接着计算的如图6实线所示的水平起点箭头,箭头点集值为a[0]=(221,333),a[1]=(261,333),a[2]=(261,353),a[3]=(241,353),然后计算向量(0,pcenter)与向量(pcontrol,ptstart)间的旋转矩阵
[0086][0087]
,其中x为ptcenter的x坐标,y为ptcenter的y坐标,α值为中心线与水平线的夹角。
[0088]
则,旋转矩阵为
[0089]
将前述得到的水平箭头点集a,以ptcenter为中心,将水平起点箭头以ptcenter(231,343)为中心点,经旋转公式
[0090][0091]
旋转得到目标箭头的点集arrowshapepoints{a’[0]=(218,347),a’[1]=(261,333),a’[2]=(253,321),a’[3]=(244,339)}。
[0092]
所述图符生成步骤,将所述直线多边形主干计算步骤中得到的主干多边形的点集和箭头计算步骤中得到的水平箭头的点集进行合并构成直线多边形点集,并勾勒出直线多边形图符;将主干多边形点集和箭头多边形点集进行合并,构成直线多边形点集,点集内部两点之间依次连线,即可绘制有固定宽度,端点具有不同形状的图符,满足道岔图符的形状
绘制要求。
[0093]
具体的,所述图符生成步骤,具体的,包括以下步骤:
[0094]
步骤1,将所述箭头计算步骤中得到的起点箭头和终点箭头的水平箭头点集与所述直线多边形主干计算步骤中得到的主干多边形的点集重合的部分进行插入和替换,在点集重合的部分以水平箭头点集替换主干多边形的点集,并删除主干多边形的点集多余部分,形成直线多边形点集;对直线多边形的图符长度调整,形状调整落实到主干多边形和箭头多边形点集的重新计算上,即可实现图符调整和预期一致的效果。
[0095]
步骤2,根据步骤1的直线多边形点集勾勒出直线多边形图符。
[0096]
即,根据箭头类型选择能描述该箭头的点集,双线型选择点a’[1],a’[0],a’[4],单线型选择a’[0],a’[3],将代表起点和终点形状的点集替换、插入到所述直线多边形主干计算步骤中的直线多边形点集中。若起点箭头为单线型,则用a’[0]替换掉主干多边形的p1点,a’[3]替换掉主干多边形的p2点,最后生成的直线多边形的点集为{a’[0],a’[3],p[3],p[4]};若起点箭头类型为双线型,则用a’[1]替换掉主干多边形的p1点,插入a’[0]点,a’[4]替换掉主干多边形的p2点,则最后生成的直线多边形的点集为{a’[1],a’[0],a’[4],p[3],p[4]},将获得的直线多边形点集,两点之间勾勒成一条直线,绘制出直线多边形图符。对于直线多边形图符伸缩操作,影响直线多边形图符的起点和终点,重复上述步骤,即可重新计算直线多边形伸缩后的点集,即伸缩操作直接影响直线多边形图符的点集,不同于平行四边形的伸缩操作作用于外接矩形,故直线多边形图符可实现预期的伸缩变化,参照以上步骤,使用直线多边形图符绘制命令,分别绘制道岔的岔前区段、定位连接、定位区段、反位连接和反位区段,可拼接成道岔图符。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1