[发明专利]顾及线宽一致性的矢量地图实线符号端头绘制方法有效
申请号: | 201911363807.0 | 申请日: | 2019-12-26 |
公开(公告)号: | CN111145301B | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 郑培蓓;乐松山;潘精明;温永宁;陈旻;闾国年 | 申请(专利权)人: | 南京师范大学 |
主分类号: | G06T11/20 | 分类号: | G06T11/20 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
地址: | 210046 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 顾及 一致性 矢量 地图 实线 符号 端头 绘制 方法 | ||
1.一种顾及线宽一致性的矢量地图实线符号端头绘制方法,其特征在于,包括下列步骤:
步骤1、对矢量线要素的坐标序列进行初始化,设置以像素为单位的屏幕线宽,设置实线端头样式;
步骤2、构建矢量线要素的世界坐标系和屏幕坐标系之间的转换规则,通过此规则将屏幕线宽转换为世界坐标系的线宽,根据此世界坐标系线宽:顺序遍历矢量线要素的每个坐标,由线生成三角形集合,其中每个三角形的每个顶点都具有沿线走向的U值和垂直线走向的V值,并且每个顶点还具有一个缩放方向D值;在矢量线要素的起点和终点处进行矩形化处理,为起点和终点构建宽高比为1:2的矩形;
步骤3、组装GPU着色器的状态协议:该状态协议包括两个层次,一个是由U值、V值和缩放方向D值构成的顶点层,另一个是由最大线宽M值、地图比例缩放S值和端头样式C值构成的结构层;所述端头样式C值表明了不同的端头样式,不同的端头式样一一对应于不同的端头样式C值;
步骤4、在CPU中获取初始的世界坐标系线宽和地图比例尺缩放系数,并分别按照状态协议中的M值、S值和C值传递到GPU中,由此在GPU着色器中解析状态协议中的U值、V值、D值、M值、S值、C值,动态计算当前实线端头需要绘制的像素位置,并完成绘制;
所述实线端头样式包括平头、方头、圆头和尖头;
所述步骤2中,沿线走向的U值根据每个顶点沿着线要素的距离计算获得,其中起点扩张出来的两个顶点U值均为0,终点扩张出来的两个顶点U值均为整条线的长度除以线宽,其他点扩张出来的两个顶点U值均为长度累积值除以线宽;垂直线走向的V值根据每个顶点向两侧扩张的距离计算获得,线要素上的每个点,其扩张出来的两个顶点位于线走向左侧的V值为1,位于右侧的V值为0;缩放方向D值是一个二维向量,该二维向量的长度根据扩张顶点与原始点之间的距离计算获得;
所述步骤2中,端头的矩形化处理包括如下内容:
(1)矢量线要素的起点逆于线走向扩张半个线宽,再垂直于线走向分别向两侧扩张半个线宽,由此形成宽为半个线宽、高为一个线宽的矩形;逆于线走向扩张出去的两个点:U值均为-0.5,位于线走向左侧的V值为1,位于右侧的V值为0;起点垂直于线走向扩张出去的两个点:U值均为0,位于线走向左侧的V值为1,位于右侧的V值为0;
(2)矢量线要素的终点顺着线走向扩张半个线宽,再垂直于线走向分别向两侧扩张半个线宽,由此形成宽为半个线宽、高为一个线宽的矩形,顺着线走向扩张出去的两个点:U值均为-0.5,位于线走向左侧的V值为1,位于右侧的V值为0;终点垂直于线走向扩张出去的两个点:U值均为0,位于线走向左侧的V值为1,位于右侧的V值为0;
所述步骤3中,最大线宽M值为世界坐标系的线宽;地图比例缩放S值为随着地图比例尺缩放动态更新的比例值。
2.根据权利要求1所述的顾及线宽一致性的矢量地图实线符号端头绘制方法,其特征在于,所述步骤3中,状态协议按照U值、V值、D值、M值、S值、C值进行组织,其中U值和V值是一维浮点数、D值是二维浮点数、M值和S值是一维浮点数、C值也是一维浮点数,将U值、V值、D值按序组织成四维向量,将M值、S值、C值按序组织成三维向量,最终形成的状态协议由两个向量构成:U-V-D四维向量和M-S-C三维向量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京师范大学,未经南京师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911363807.0/1.html,转载请声明来源钻瓜专利网。