一种多段线线宽扩展方法技术

技术编号:39719860 阅读:8 留言:0更新日期:2023-12-17 23:26
本申请提供的一种多段线线宽扩展方法

【技术实现步骤摘要】
一种多段线线宽扩展方法、装置、存储介质及计算机设备


[0001]本申请涉及图形学
,尤其涉及一种多段线线宽扩展方法

装置

存储介质及计算机设备


技术介绍

[0002]在各种行业和领域的设计和制图工作中离不开画图工具的协助,如
CAD

Computer

Aided Design
,计算机辅助设计)平台可以满足不同场景下各类图形或线条的绘制,其中包括带线宽的多段线绘制,带线宽的多段线通常需要将线段扩充为矩形,并通过圆头的绘制使得相邻线段间的空隙得到填充以及多段线的头部和尾部更加光滑

[0003]然而,在对多段线进行线宽扩展的绘制时,额外绘制的圆头与部分线条重叠在部分场景下将导致绘制效果,如图1所示,图1为现有技术中直接使用线宽扩展算法画出的图像示意图;图1中,若在线宽扩展时添加透明度属性后,绘制的圆头与线段扩充而来的长方形将不可避免的重合,而这些重合区域的透明度则会在后续进行三角化和透明度填充时因叠加而产生变化

在最极端的场景,如对于具有曲度的带线宽多段线来说,由于其通过大量较短的线段连接而成,该多段线中每一线段圆头绘制后带来的透明度重叠将影响每一线段的透明度值,进而导致绘制的多段线达不到预期的显示效果


技术实现思路

[0004]本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中多段线中每一线段圆头绘制后带来的透明度重叠将影响每一线段的透明度值,进而导致绘制的多段线达不到预期的显示效果的技术缺陷

[0005]本申请提供了一种多段线线宽扩展方法,所述方法包括:当检测到用户设置线宽扩展参数时,获取用户在所述线宽扩展参数下绘制的至少两条线段,并按照线段绘制顺序依次选取每条线段作为当前线段;判断所述当前线段的线段长度是否低于预设长度;若是,则按照所述线宽扩展参数对所述当前线段进行圆头扩展,得到所述当前线段的扩展区域;若否,则判断所述当前线段的前一线段的线段长度是否低于所述预设长度,所述当前线段为起始线段时,所述当前线段的前一线段的线段长度为0;若是,则按照所述线宽扩展参数对所述当前线段进行直接线宽扩展,得到所述当前线段的扩展区域;若否,则确定所述当前线段的前一线段的扩展区域,并基于所述前一线段的扩展区域计算所述当前线段线宽扩展后的非重叠区域,作为所述当前线段的扩展区域

[0006]可选地,所述线宽扩展参数包括预设线宽距离;所述按照所述线宽扩展参数对所述当前线段进行直接线宽扩展,得到所述当前线段的扩展区域,包括:
确定所述当前线段的头部端点和尾部端点;基于所述预设线宽距离将所述头部端点和所述尾部端点分别向所述当前线段的两侧平移,得到四个扩展顶点;将四个扩展顶点进行两两连接,得到所述当前线段的扩展区域

[0007]可选地,所述基于所述前一线段的扩展区域计算所述当前线段线宽扩展后的非重叠区域,包括:根据所述线宽扩展参数绘制所述当前线段的扩展轮廓,以及确定所述扩展轮廓和所述前一线段的扩展区域的各个扩展顶点坐标;其中,所述扩展轮廓与所述前一线段的扩展区域相连的一端采用圆头进行绘制;基于各个扩展顶点坐标确定所述前一线段的扩展区域的第一平行向量和第一垂直向量,以及所述扩展轮廓的第二平行向量和第二垂直向量;将所述前一线段的扩展区域在所述扩展轮廓内部的扩展顶点坐标作为第一顶点坐标,以及将所述扩展轮廓在所述前一线段的扩展区域内部的扩展顶点坐标作为第二顶点坐标;根据所述第一顶点坐标

所述第二顶点坐标

所述第一平行向量

所述第一垂直向量

所述第二平行向量和所述第二垂直向量计算得到所述前一线段的扩展区域与所述扩展轮廓之间的交点坐标;根据所述交点坐标

所述第一顶点坐标

所述第二顶点坐标和所述扩展轮廓确定计算所述当前线段线宽扩展后的非重叠区域

[0008]可选地,所述根据所述第一顶点坐标

所述第二顶点坐标

所述第一平行向量

所述第一垂直向量

所述第二平行向量和所述第二垂直向量计算得到所述前一线段的扩展区域和所述扩展轮廓的交点坐标,包括:根据所述第一顶点坐标

所述第二顶点坐标

所述第一平行向量和所述第二平行向量计算得到所述前一线段的扩展区域和所述扩展轮廓的交点坐标与所述第一顶点坐标之间的第一距离向量,并判断所述第一距离向量是否不大于所述第一平行向量;若是,则根据所述第一顶点坐标和所述第一平行向量确定所述交点坐标;若否,则确定所述当前线段的尾部端点,并根据所述尾部端点

所述第二垂直向量

所述第一顶点坐标和所述第一平行向量计算得到所述交点坐标与所述第一顶点坐标之间的第二距离向量,并判断所述第二距离向量是否不大于所述第一平行向量;若是,则根据所述第一顶点坐标和所述第一平行向量确定所述交点坐标;若否,则根据所述第二顶点坐标和所述第二平行向量确定所述交点坐标

[0009]可选地,所述根据所述交点坐标

所述第一顶点坐标

所述第二顶点坐标和所述扩展轮廓确定计算所述当前线段线宽扩展后的非重叠区域,包括:确定所述前一线段的尾部端点坐标,并根据所述尾部端点坐标

所述交点坐标

所述第一顶点坐标和所述第二顶点坐标计算得到所述前一线段的扩展区域与所述扩展轮廓之间的重叠区域;利用所述扩展轮廓减去所述重叠区域,得到所述当前线段线宽扩展后的非重叠区域

[0010]可选地,所述方法还包括:
针对每条线段的扩展区域,对该扩展区域的各个顶点坐标进行排序,得到顶点数组;基于所述顶点数组对该扩展区域进行自动三角化,并采用预设透明度对三角化后的扩展区域进行颜色填充

[0011]可选地,所述按照线段绘制顺序依次选取每条线段作为当前线段之前,还包括:确定绘制得到的至少两条线段中的起始线段和结束线段,并判断所述起始线段的头部端点和所述结束线段的尾部端点是否闭合;若是,则执行所述按照线段绘制顺序依次选取每条线段作为当前线段的步骤;若否,则对所述起始线段的头部端点和所述结束线段的尾部端点进行标记,以在对所述起始线段和所述结束线段进行线宽扩展时,对标记后的端点进行圆头扩展

[0012]本申请还提供了一种多段线线宽扩展装置,包括:数据获取模块,用于当检测到用户设置线宽参数时,获取用户在所述线宽扩展下绘制的至少两条线段,并按照线段绘制顺序依次选取每条线段作为当前线段;第一判断模块,用于判断所述当前线段的线段长度是否低于预设长度;第一扩展模块,用于按照所述线宽扩展参数对所述当前线段进行圆头扩展,得到所述当前线段的扩展区域;第二判断模块,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种多段线线宽扩展方法,其特征在于,所述方法包括:当检测到用户设置线宽扩展参数时,获取用户在所述线宽扩展参数下绘制的至少两条线段,并按照线段绘制顺序依次选取每条线段作为当前线段;判断所述当前线段的线段长度是否低于预设长度;若是,则按照所述线宽扩展参数对所述当前线段进行圆头扩展,得到所述当前线段的扩展区域;若否,则判断所述当前线段的前一线段的线段长度是否低于所述预设长度,所述当前线段为起始线段时,所述当前线段的前一线段的线段长度为0;若是,则按照所述线宽扩展参数对所述当前线段进行直接线宽扩展,得到所述当前线段的扩展区域;若否,则确定所述当前线段的前一线段的扩展区域,并基于所述前一线段的扩展区域计算所述当前线段线宽扩展后的非重叠区域,作为所述当前线段的扩展区域
。2.
根据权利要求1所述的多段线线宽扩展方法,其特征在于,所述线宽扩展参数包括预设线宽距离;所述按照所述线宽扩展参数对所述当前线段进行直接线宽扩展,得到所述当前线段的扩展区域,包括:确定所述当前线段的头部端点和尾部端点;基于所述预设线宽距离将所述头部端点和所述尾部端点分别向所述当前线段的两侧平移,得到四个扩展顶点;将四个扩展顶点进行两两连接,得到所述当前线段的扩展区域
。3.
根据权利要求1所述的多段线线宽扩展方法,其特征在于,所述基于所述前一线段的扩展区域计算所述当前线段线宽扩展后的非重叠区域,包括:根据所述线宽扩展参数绘制所述当前线段的扩展轮廓,以及确定所述扩展轮廓和所述前一线段的扩展区域的各个扩展顶点坐标;其中,所述扩展轮廓与所述前一线段的扩展区域相连的一端采用圆头进行绘制;基于各个扩展顶点坐标确定所述前一线段的扩展区域的第一平行向量和第一垂直向量,以及所述扩展轮廓的第二平行向量和第二垂直向量;将所述前一线段的扩展区域在所述扩展轮廓内部的扩展顶点坐标作为第一顶点坐标,以及将所述扩展轮廓在所述前一线段的扩展区域内部的扩展顶点坐标作为第二顶点坐标;根据所述第一顶点坐标

所述第二顶点坐标

所述第一平行向量

所述第一垂直向量

所述第二平行向量和所述第二垂直向量计算得到所述前一线段的扩展区域与所述扩展轮廓之间的交点坐标;根据所述交点坐标

所述第一顶点坐标

所述第二顶点坐标和所述扩展轮廓确定计算所述当前线段线宽扩展后的非重叠区域
。4.
根据权利要求3所述的多段线线宽扩展方法,其特征在于,所述根据所述第一顶点坐标

所述第二顶点坐标

所述第一平行向量

所述第一垂直向量

所述第二平行向量和所述第二垂直向量计算得到所述前一线段的扩展区域和所述扩展轮廓的交点坐标,包括:根据所述第一顶点坐标

所述第二顶点坐标

所述第一平行向量和所述第二平行向量计算得到所述前一线段的扩展区域和所述扩展轮廓的交点坐标与所述第一顶点坐标之间
的第一距离向量,并判断所述第一距离向量是否不大于所述第一平行向量;若是,则根据所述第一顶点坐标和所述第一平行向量确定所述交点坐标;若否,则确定所述当前线段的尾部端点,并根据所述尾部...

【专利技术属性】
技术研发人员:童声胡巨振李宁王旭灿孙凌云何袆蔡爱平
申请(专利权)人:广州中望龙腾软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1