CN106384370A - 一种折线绘制方法及装置 - Google Patents
一种折线绘制方法及装置 Download PDFInfo
- Publication number
- CN106384370A CN106384370A CN201510463438.8A CN201510463438A CN106384370A CN 106384370 A CN106384370 A CN 106384370A CN 201510463438 A CN201510463438 A CN 201510463438A CN 106384370 A CN106384370 A CN 106384370A
- Authority
- CN
- China
- Prior art keywords
- end points
- line segment
- broken line
- line
- region
- 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.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种折线绘制方法及装置,用于准确划分折线的转角区域,该方法包括:获取折线AC的端点A、转角点B及端点C;确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,第一线段AB的折线主体区域与第二线段BC的折线主体区域具有同一个端点且第一线段AB的折线主体区域与第二线段BC的折线主体区域不重合;确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域,第一线段AB的折线转角区域与第二线段BC的折线转角区域具有同一条边且第一线段AB的折线转角区域与第二线段BC的折线转角区域不重合。
Description
技术领域
本发明涉及计算机绘图技术领域,具体涉及一种折线绘制方法及装置。
背景技术
现有的图形绘制技术支持折线绘制。以下结合图1,对现有技术中绘制折线的方法进行说明,例如,绘制折线AC时,需要首先绘制以AB为中线的矩形A1A2B1B3,以及以BC为中线的矩形C1C2B2B4,其中,A、C为折线的端点,B为折线的转角点。若将所绘制的两个矩形直接连接起来作为折线会在折线转角处出现缺口,因此,在现有技术中,需要在折线转角处补充一个三角形B1BB2,以完成折线形状的绘制。
但是,按照现有技术绘制得到如图1所示的折线后,如果要对该折线进行颜色填充,则折线转角处会出现颜色的重叠,即如图1所示,矩形C1C2B2B4和矩形A1A2B1B3重合部分会出现颜色的重叠。并且,由于三角形区域B1BB2是为保证折线AC转角处平滑补充绘制的,在线段AB部分和线段BC部分填充的颜色不同的情况下,无法确定三角形区域B1BB应该绘制哪种颜色,这会造成折线转角处颜色无法准确划分,折线转角处的颜色填充不准确的技术问题。
发明内容
有鉴于此,本发明提供一种折线绘制方法及装置,以解决现有技术中折线转角处无法准确划分的技术问题。
为解决上述问题,本发明提供的技术方案如下:
一种折线绘制方法,所述方法包括:
获取折线AC的端点A、转角点B及端点C;
确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域具有同一个端点且所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域不重合;
确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域,所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域具有同一条边且所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域不重合。
一种折线绘制装置,所述装置包括:
第一获取单元,用于获取折线AC的端点A、转角点B及端点C;
第一确定单元,用于确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域具有同一个端点且所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域不重合;
第二确定单元,用于确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域,所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域具有同一条边且所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域不重合。
由此可见,本发明实施例具有如下有益效果:
本发明实施例在获取折线AC的端点A、转角点B及端点C后,分别确定第一线段AB的折线主体区域以及折线转角区域、第二线段BC的折线主体区域以及折线转角区域,第一线段AB的折线主体区域与第二线段BC的折线主体区域不重合,第一线段AB的折线转角区域与第二线段BC的折线转角区域也不重合,准确划分了第一线段AB对应的填充区域以及第二线段BC对应的填充区域,从而避免了折线转角处由于区域划分不准确而造成的折线转角处颜色无法准确划分的问题。
附图说明
图1为现有技术中折线绘制方法的示意图;
图2为本发明实施例中提供的折线绘制方法实施例的流程图;
图3为本发明实施例中确定折线主体区域实施例的示意图;
图4为本发明实施例中具有圆角转角与圆形端点的折线的示意图;
图5为本发明实施例中具有尖角转角与方形端点的折线的示意图;
图6为本发明实施例中具有平角转角与箭头端点的折线的示意图;
图7为本发明实施例中确定折线转角区域实施例一的示意图;
图8为本发明实施例中确定折线转角区域实施例二的示意图;
图9为本发明实施例中确定折线转角区域实施例三的示意图;
图10为本发明实施例中折线的示意图;
图11为本发明实施例中对折线进行分割的示意图;
图12为本发明实施例中折线向量的示意图;
图13为本发明实施例中折线绘制过程的示意图一;
图14为本发明实施例中折线绘制过程的示意图二;
图15为本发明实施例中确定折线转角区域实施例四的示意图;
图16为本发明实施例中提供的折线绘制装置实施例的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
参见图2所示,本发明实施例中提供的折线绘制方法实施例,可以包括以下步骤:
步骤201:获取折线AC的端点A、转角点B及端点C。
用户可以分别输入折线的两个端点位置以及转角点位置,参见图3所示,可以获得折线AC的端点A、折线AC的转角点B、折线AC的端点C以及以A、B为端点的第一线段AB、以B、C为端点的第二线段BC。
步骤202:确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,第一线段AB的折线主体区域与第二线段BC的折线主体区域具有同一个端点且第一线段AB的折线主体区域与第二线段BC的折线主体区域不重合。
在本发明的一些实施例中,确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域的具体实现可以包括:
将第一线段AB上的点向第一线段AB的两侧平移预设距离,获得第一平移结果;将第二线段BC上的点向第二线段BC的两侧平移预设距离,获得第二平移结果;根据第一平移结果以及第二平移结果确定第一线段AB的折线主体区域以及第二线段BC对应的折线主体区域。
具体的,可以将折线AC的端点A向垂直于第一线段AB的折线内侧方向移动预设距离获得第一端点A1,将折线AC的端点A向垂直于第一线段AB的折线外侧方向移动预设距离获得第二端点A2,将折线AC的转角点B向垂直于第一线段AB的折线外侧方向移动预设距离获得第三端点B1;
将折线AC的端点C向垂直于第二线段BC的折线内侧方向移动预设距离获得第四端点C1,将折线AC的端点C向垂直于第二线段BC的折线外侧方向移动预设距离获得第五端点C2,将折线AC的转角点B向垂直于第二线段BC的折线外侧方向移动预设距离获得第六端点B2;
获得经过第一端点A1且与第一线段AB平行的直线与经过第四端点C1且与第二线段BC平行的直线的交点作为第七端点D;
将以第一端点A1、第二端点A2、第三端点B1以及第七端点D为端点的多边形区域确定为第一线段AB的折线主体区域,将以第四端点C1、第五端点C2、第六端点B2以及第七端点D为端点的多边形区域确定为第二线段BC的折线主体区域。
继续参见图3所示,经过A点绘制线段AB的垂线,沿该垂线向折线内侧方向移动预设距离可以获得A1点位置,沿该垂线向折线外侧方向移动预设距离可以获得A2点位置。一条折线可以具有一个小于180度的角,例如角ABC,在该角内侧的方向为折线内侧方向,在该角外侧的方向为折线外侧方向,预设距离则可以为用户所设置折线线宽的二分之一。
类似的,经过C点绘制线段BC的垂线,沿该垂线向折线内侧方向移动预设距离可以获得C1点位置,沿该垂线向折线外侧方向移动预设距离可以获得C2点位置。经过B点绘制线段AB的垂线,沿该垂线向折线外侧方向移动预设距离可以获得B1点位置,经过B点绘制线段BC的垂线,沿该垂线向折线外侧方向移动预设距离可以获得B2点位置。
经过A1点可以绘制与线段AB平行的直线,经过C1点可以绘制与线段BC平行的直线,这两条直线的交点为D。
这样,则可以获得与第一线段AB的折线主体区域为多边形A1A2B1D,与第二线段BC的折线主体区域为多边形C1C2B2D。第一线段AB的折线主体区域与第二线段BC的折线主体区域具有一个共同的端点D,且第一线段AB的折线主体区域多边形A1A2B1D与第二线段BC的折线主体区域多边形C1C2B2D不重合,即位置不相重叠,在后续填充颜色的过程中,可以清楚地划分第一线段AB与第二线段BC分别对应的填充区域,不会存在颜色重叠的问题。
另外,需要注意的是,确定与第一线段AB的折线主体区域以及与第二线段BC的折线主体区域的方式并不唯一,例如,可以将整体第一线段AB(即第一线段AB上的全部点集)向折线内侧方向以及折线外侧方向平移,将整体第二线段BC(即第二线段BC上的全部点集)向折线内侧方向以及折线外侧方向平移以确定A1点、A2点、C1点、C2点、B1点、B2点;也可以A1点、A2点可以不在与线段AB的垂线上,C1点、C2点可以不在与线段AB的垂线上,可以根据实际情况具体设置。
步骤203:确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域,第一线段AB的折线转角区域与第二线段BC的折线转角区域具有同一条边且第一线段AB的折线转角区域与第二线段BC的折线转角区域不重合。
在现有技术中折线绘制方法只能绘制平角转角,而无法绘制其他形状的转角,转角绘制样式单一。针对此问题,则本发明的一些实施例中,用户还可以设置转角类型以及端点类型,即获取折线AC以转角点B为转角点的转角类型,转角类型可以包括平角转角、尖角转角以及圆角转角;获取折线AC以端点A或端点C为端点的端点类型,端点类型包括方形端点、圆形端点以及箭头端点。参见图4-6分别对不同转角类型以及端点类型进行说明,例如,参见图4所示,为具有圆角转角与圆形端点的折线,参见图5所示,为具有尖角转角与方形端点的折线,参见图6所示,为具有平角转角与箭头端点的折线。
在本发明的一些实施例中,确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域的具体实现方式可以包括:
根据转角类型,在第七端点D与转角点B的连线上确定一点作为折线转角区域顶点;
将以第三端点B1、第七端点D以及折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域;
将以第六端点B2、第七端点D以及折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域。
具体的,根据转角类型的不同,确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域的具体实现方式可以分为以下三种:
参见图7所示,当转角类型为平角转角,在第七端点D与转角点B的连线上确定一点作为折线转角区域顶点的具体实现可以包括:
获得第七端点D、转角点B的连线与第三端点B1、第六端点B2的连线的交点作为第八端点E,第八端点E为折线转角区域顶点;
同时可以理解的是,由于转角点B到第三端点B1的距离与转角点B到第六端点B2的距离相同,第八端点E可以为第三端点B1以及第六端点B2的中点。
将以第三端点B1、第七端点D以及折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域的具体实现可以包括:
将以第三端点B1、第七端点D以及第八端点E为端点的三角形区域确定为第一线段AB的折线转角区域;
将以第六端点B2、第七端点D以及折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域的具体实现可以包括:
将以第六端点B2、第七端点D以及第八端点E为端点的三角形区域确定为第二线段BC的折线转角区域。
即当转角类型为平角转角,可以确定线段B1B2的中点E,则第一线段AB的折线转角区域为三角形B1DE,第二线段BC的折线转角区域为三角形B2DE。第一线段AB的折线转角区域与第二线段BC的折线转角区域具有一条共同的边DE,且第一线段AB的折线转角区域三角形B1DE与第二线段BC的折线转角区域三角形B2DE不重合,即位置不相重叠,在后续填充颜色的过程中,可以清楚地划分第一线段AB与第二线段BC分别对应的填充区域,不会存在颜色重叠的问题。
参见图8所示,当转角类型为尖角转角,在第七端点D与转角点B的连线上确定一点作为折线转角区域顶点的具体实现可以包括:
获得第七端点D、转角点B的连线与第二端点A2、第三端点B1的连线的交点作为第九端点F,或者,获得第七端点D、转角点B的连线与第五端点C2、第六端点B2的连线的交点作为第九端点F,第九端点F为折线转角区域顶点;
同时可以理解的是,由于转角点B到第三端点B1的距离与转角点B到第六端点B2的距离相同,第九端点F可以为经过第二端点A2且经过第三端点B1的直线与经过第五端点C2且经过第六端点B2的直线的交点。
将以第三端点B1、第七端点D以及折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域的具体实现可以包括:
将以第三端点B1、第七端点D以及第九端点F为端点的三角形区域确定为第一线段AB的折线转角区域;
将以第六端点B2、第七端点D以及折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域的具体实现可以包括:
将以第六端点B2、第七端点D以及第九端点F为端点的三角形区域确定为第二线段BC的折线转角区域。
即当转角类型为尖角转角,线段A2B1的延长线与线段C2B2的延长线相交于点F,则与线段AB的折线转角区域为三角形B1DF,与线段BC的折线转角区域为三角形B2DF。第一线段AB的折线转角区域与第二线段BC的折线转角区域具有一条共同的边DF,且第一线段AB的折线转角区域三角形B1DF与第二线段BC的折线转角区域三角形B2DF不重合,即位置不相重叠,在后续填充颜色的过程中,可以清楚地划分第一线段AB与第二线段BC分别对应的填充区域,不会存在颜色重叠的问题。
参见图9所示,当转角类型为圆角转角,在第七端点D与转角点B的连线上确定一点作为折线转角区域顶点的具体实现可以包括:
确定以线段的转角点B为圆心、以预设距离为半径、第三端点B1与第六端点B2之间的劣弧;
获得第七端点D、转角点B的连线与劣弧的交点作为第十端点G,第十端点G为折线转角区域顶点;
同时可以理解的是,由于转角点B到第三端点B1的距离与转角点B到第六端点B2的距离相同,第十端点G可以为劣弧的中点。
将以第三端点B1、第七端点D以及折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域的具体实现可以包括:
确定劣弧划中以第三端点B1与第十端点G为端点的第一圆弧;
将以第一圆弧、第三端点B1与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域确定为第一线段AB的折线转角区域;
将以第六端点B2、第七端点D以及折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域的具体实现可以包括:
确定劣弧中以第六端点B2与第十端点G为端点的第二圆弧;
将以第二圆弧、第六端点B2与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域确定为第二线段BC的折线转角区域。
即当转角类型为圆角转角,绘制以B点为圆心、预设距离为半径的圆,则在B1点与B2点之间可以有一条劣弧,进而可以获得该劣弧的中点G,则与线段AB的折线转角区域为扇形B1DG,与线段BC的折线转角区域为扇形B2DG。第一线段AB的折线转角区域与第二线段BC的折线转角区域具有一条共同的边DG,且第一线段AB的折线转角区域扇形B1DG与第二线段BC的折线转角区域扇形B1DG不重合,即位置不相重叠,在后续填充颜色的过程中,可以清楚地划分第一线段AB与第二线段BC分别对应的填充区域,不会存在颜色重叠的问题。
另外,在本发明的一些实施例中,还可以将第一线段AB的折线主体区域填充第一颜色,将第一线段AB的折线转角区域填充第一颜色,将第二线段BC的折线主体区域填充第二颜色,将第二线段BC的折线转角区域填充第二颜色。
在填充颜色的过程中,如果使用OpenGL(Open Graphics Library,开放图形库)进行呈现,则将可以折线主体区域以及折线转角区域划分为基本图元三角形进行填充。
在本发明的一些实施例中,将第一线段AB的折线主体区域填充第一颜色的具体实现可以包括:
将以第一端点A1、第二端点A2、第三端点B1以及第七端点D为端点的多边形区域分割为两个三角形区域后分别填充第一颜色。
在本发明的一些实施例中,将第二线段BC的折线主体区域填充第二颜色的具体实现可以包括:
将以第四端点C1、第五端点C2、第六端点B2以及第七端点D为端点的多边形区域分割为两个三角形区域后分别填充第二颜色。
即参见图3所示,线段AB的折线主体区域多边形A1A2B1D可以分割为三角形A1A2D和三角形A2B1D,分别填充第一颜色;线段BC的折线主体区域为多边形C1C2B2D可以分割为三角形C1C2D和三角形C2B2D,分别填充第二颜色。
而对于折线转角区域,当转角类型为平角转角,第一线段AB的折线转角区域为三角形B1DE,可以直接填充第一颜色,线段BC的折线转角区域为三角形B2DE,可以直接填充第二颜色。
当转角类型为尖角转角,线段AB的折线转角区域为三角形B1DF,可以直接填充第一颜色,线段BC的折线转角区域为三角形B2DF,可以直接填充第二颜色。
当转角类型为圆角转角,将第一线段AB的折线转角区域填充第一颜色的具体实现可以包括:
将以第一圆弧、第三端点B1与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域分割为至少一个第一子扇形区域,将每个第一子扇形区域的三个端点所组成的三角形区域分别填充第一颜色;
将第二线段BC的折线转角区域填充第二颜色,包括:
将以第二圆弧、第六端点B2与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域分割为至少一个第二子扇形区域,将每个第二子扇形区域的三个端点所组成的三角形区域分别填充第二颜色。
即当转角类型为圆角转角,参见图9所示,可以在劣弧B1G上选取若干个点,例如,在劣弧B1G上平均选取三个点G1、G2、G3,则可以将第一线段AB的折线转角区域扇形B1DG近似划分为若干个三角形:三角形DB1G1、三角形DG1G2、三角形DG2G3以及三角形DG3G,分别将每个三角形填充第一颜色;类似的,可以在劣弧B2G上选取若干个点,将第二线段BC的折线转角区域扇形B2DG近似划分为若干个三角形,分别将每个三角形填充第二颜色。
另外,本发明实施例中提供的折线绘制方法还包括对折线端点的绘制,具体实现可以包括:
获取折线AC以端点A或端点C为端点的端点类型;
根据端点类型,确定第一线段AB的端点区域以及第二线段BC的端点区域;
将第一线段AB的端点区域填充第一颜色,将第二线段BC的端点区域填充第二颜色。
其中,根据端点类型,确定与第一线段AB的端点区域以及与第二线段BC的端点区域的具体实现可以包括:
当端点类型为方形端点,将与第一线段AB的折线主体区域等宽且与第一线段AB的折线主体区域外侧相连的矩形区域确定为第一线段AB的端点区域;将与第二线段BC的折线主体区域等宽且与第二线段BC的折线主体区域外侧相连的矩形区域确定为第二线段BC的端点区域。
即如果需要绘制折线端点,当端点类型为方形端点,则可以在折线主体区域A1A2B1D外侧连接处绘制一个与线段A1A2等宽的矩形,并填充第一颜色,在填充颜色的过程中,可以将该矩形分割为两个三角形进行颜色填充;类似的,可以在折线主体区域C1C2B2D外侧连接处绘制一个与线段C1C2等宽的矩形,并填充第二颜色,在填充颜色的过程中,可以将该矩形分割为两个三角形进行颜色填充,完成对折线端点的绘制。
当端点类型为圆形端点,将以第一线段AB的折线主体区域的宽度为直径且与第一线段AB的折线主体区域外侧相连的半圆形区域确定为第一线段AB的端点区域;将与第二线段BC的折线主体区域的宽度为直径且与第二线段BC的折线主体区域外侧相连的半圆形区域确定为第二线段BC的端点区域。
即如果需要绘制折线端点,当端点类型为圆形端点,则在折线主体区域A1A2B1D外侧连接处绘制一个以线段A1A2为直径的半圆形,并填充第一颜色,在填充颜色的过程中,可以将该半圆形近似分割为若干个三角形进行颜色填充;类似的,可以在折线主体区域C1C2B2D外侧连接处绘制一个以线段A1A2为直径的半圆形,并填充第二颜色,在填充颜色的过程中,以将该半圆形近似分割为若干个三角形进行颜色填充,完成对折线端点的绘制。
当端点类型为箭头端点,将与第一线段AB的折线主体区域外侧相连的三角形区域确定为第一线段AB的端点区域;将与第二线段BC的折线主体区域外侧相连的三角形区域确定为第二线段BC的端点区域。
如果需要绘制折线端点,当端点类型为圆形端点,则可以在折线主体区域A1A2B1D外侧连接处绘制一个三角形,并填充第一颜色;类似的,可以在折线主体区域C1C2B2D外侧连接处绘制一个三角形,并填充第二颜色,完成对折线端点的绘制。
这样,本发明实施例在获取折线AC的端点A、转角点B及端点C后,分别确定第一线段AB的折线主体区域以及折线转角区域、第二线段BC的折线主体区域以及折线转角区域,第一线段AB的折线主体区域与第二线段BC的折线主体区域不重合,第一线段AB的折线转角区域与第二线段BC的折线转角区域也不重合,准确划分了第一线段AB对应的填充区域以及第二线段BC对应的填充区域,从而避免了折线转角处由于区域划分不准确而造成的折线转角处颜色无法准确划分的问题。另外,本发明实施例可以实现平角转角、圆角转角以及尖角转角的绘制,使折线绘制的样式更为多样。
在实际应用中,各点位置的确定可以通过坐标计算获得,也可以通过向量计算获得,以下以通过向量计算确定各点位置为例,并结合实际应用,对本发明实施例中提供的折线绘制方法进行说明。
以绘制图10中的折线为例,用户可以输入折线中各点的坐标、折线线宽、转角类型(包括平角转角、尖角转角以及圆角转角)、端点类型(包括方形端点、圆形端点以及箭头端点)以及折线每条线段的颜色。
首先,可以将屏幕坐标系下的折线各点坐标换算至OpenGL坐标系下。换算方法为:若绘制均在z=0的平面上进行,屏幕坐标为(x,y),OpenGL坐标为(X,Y,0),屏幕尺寸为(screenWidth,screenHeight),OpenGL的viewPort视口尺寸为(glWidth,glHeight),则X=x/screenWidth*glWidth+left;Y=y/screenHeight*glHeight+top;其中,left,top为OpenGL中以glOrtho方法设置,而glWidth=right–left,glHeight=bottom-top。而屏幕尺寸根据实际情况设置,例如4英寸iphone retina全屏显示,则screenWidth=640像素,screenHeight=1136像素。
参见图11所示,以转角为单位,对折线进行分割。对包括多个转角点的折线进行分割后,每绘制一个包括转角的折线则可以使用本发明实施例中提供的折线绘制方法。
参见图12所示,例如,分割后的折线端点为A、C、转角点为B,则有向量向量参见图13所示,可以分别求出向量的垂直向量以及向量的垂直向量并将向量向量的长度设置为预设距离,即折线线宽的二分之一。具体的,需要确定ABC三点的关系是顺时针还是逆时针,设对向量和进行叉乘,z=a.x*b.y-a.y*b.x,得到的z如果为0,则证明两向量同向,如果大于0,则两向量为逆时针关系,小于0,则两向量为逆时针关系。如果ABC为顺时针关系,则将向量归一化,而后逆时针旋转90度,求得向量的垂直向量同理可以求得向量的垂直向量如果ABC为逆时针关系,则将向量归一化,而后顺时针旋转90度,求得向量的垂直向量同理可以求得向量的垂直向量再将线段AB沿垂直向量平移,将线段BC沿垂直向量平移,可以得到交点F以及A2点、C2点。
参见图14所示,将向量取反,可以得到向量进而可以获得A1点、C1点,这样,可以获得线段AB的折线主体区域为多边形A1A2B1D,线段BC的折线主体区域为多边形C1C2B2D。将多边形A1A2B1D、多边形C1C2B2D分别分割为三角形进行颜色填充。
如果转角类型为尖角转角,则线段AB的折线转角区域为三角形B1DF,线段BC的折线转角区域为三角形B2DF,并分别进行颜色填充。
如果转角类型为平角转角,再求得线段B1B2的中点E,则线段AB的折线转角区域为三角形B1DE,线段BC的折线转角区域为三角形B2DE,并分别进行颜色填充。
参见图15所示,如果转角类型为圆角转角,以B为圆心、BB1为半径,可以计算向量的夹角α,以及劣弧B1B2的弧长len,有OpenGL坐标系下的屏幕像素宽度pixelWidth=屏幕宽度/OpenGL坐标系可见宽度glWidth,其中glWidth可以由OpenGL中glOrtho方法设置,计算方法为glWidth=right–left;则插值个数n=len/pixelWidth;插值步长sita=α/n;将向量逆时针旋转sita角度,得到向量再将向量逆时针旋转sita角度,得到向量以此类推,循环n次,向量分割三角形可以得到三角形DB2I1,三角形DI1I2,三角形DI2I3,…,三角形DInB1,对于三角形第三个顶点编号小于n/2的三角形,颜色填充为线段BC的颜色,反之,填充线段AB的颜色。
另外,对于端点区域的分割与折线转角区域的分割类似,当端点类型为方形端点,则在端点外多绘制一个矩形,并将这个方形分割成两个三角形进行颜色填充;当端点类型为圆形端点,则在端点处绘制一个半圆形,并近似分割为多个三角形。当端点类型为箭头端点,则在端点处绘制一个三角形,例如,该三角形底边中点为起点或终点坐标,底边两侧坐标分别为端点坐标±端点处垂直单位向量*折线线宽*0.7,三角形顶点坐标为端点坐标+端点线段单位向量*折线线宽*1.4,在本实施例中,均可以利用OpenGL的三角形绘制接口对得到的三角形进行绘制以及颜色填充。
另外,当AB和BC几乎平行时,可能无法求得F点,或F点距离B过远,可能造成绘制效果不佳;在线段AB长度短于BD长度时,D不在AB内侧边上,可能造成绘制错误,此时,可以采用传统方法进行折线绘制。
这样,本发明实施例在获取折线AC的端点A、转角点B及端点C后,分别确定第一线段AB的折线主体区域以及折线转角区域、第二线段BC的折线主体区域以及折线转角区域,第一线段AB的折线主体区域与第二线段BC的折线主体区域不重合,第一线段AB的折线转角区域与第二线段BC的折线转角区域也不重合,准确划分了第一线段AB对应的填充区域以及第二线段BC对应的填充区域,从而避免了折线转角处由于区域划分不准确而造成的折线转角处颜色无法准确划分的问题。另外,本发明实施例可以实现平角转角、圆角转角以及尖角转角的绘制,使折线绘制的样式更为多样。
相应的,参见图16所示,本发明实施例中还提供一种折线绘制装置实施例,可以包括:
第一获取单元1601,用于获取折线AC的端点A、转角点B及端点C。
第一确定单元1602,用于确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,第一线段AB的折线主体区域与第二线段BC的折线主体区域具有同一个端点且第一线段AB的折线主体区域与第二线段BC的折线主体区域不重合。
第二确定单元1603,用于确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域,第一线段AB的折线转角区域与第二线段BC的折线转角区域具有同一条边且第一线段AB的折线转角区域与第二线段BC的折线转角区域不重合。
在本发明的一些实施例中,第一确定单元可以包括:
第一平移子单元,用于将第一线段AB上的点向第一线段AB的两侧平移预设距离,获得第一平移结果;
第二平移子单元,用于将第二线段BC上的点向第二线段BC的两侧平移预设距离,获得第二平移结果;
第一确定子单元,用于根据第一平移结果以及第二平移结果确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域。
在本发明的一些实施例中,第一平移子单元,可以具体用于将折线AC的端点A向垂直于第一线段AB的折线内侧方向移动预设距离获得第一端点A1,将折线AC的端点A向垂直于第一线段AB的折线外侧方向移动预设距离获得第二端点A2,将折线AC的转角点B向垂直于第一线段AB的折线外侧方向移动预设距离获得第三端点B1;
第二平移子单元,可以具体用于将折线AC的端点C向垂直于第二线段BC的折线内侧方向移动预设距离获得第四端点C1,将折线AC的端点C向垂直于第二线段BC的折线外侧方向移动预设距离获得第五端点C2,将折线AC的转角点B向垂直于第二线段BC的折线外侧方向移动预设距离获得第六端点B2;
第一确定子单元,可以具体用于获得经过第一端点A1且与第一线段AB平行的直线与经过第四端点C1且与第二线段BC平行的直线的交点作为第七端点D;将以第一端点A1、第二端点A2、第三端点B1以及第七端点D为端点的多边形区域确定为第一线段AB的折线主体区域,将以第四端点C1、第五端点C2、第六端点B2以及第七端点D为端点的多边形区域确定为第二线段BC的折线主体区域。
在本发明的一些实施例中,本发明实施例中提供的折线绘制装置还可以包括:
第二获取单元,用于获取折线AC以转角点B为转角点的转角类型。
在本发明的一些实施例中,第二确定单元可以包括:
第二确定子单元,用于根据转角类型,在第七端点D与转角点B的连线上确定一点作为折线转角区域顶点;
第三确定子单元,用于将以第三端点B1、第七端点D以及折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域;
第四确定子单元,用于将以第六端点B2、第七端点D以及折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域。
在本发明的一些实施例中,当转角类型为平角转角,第二确定子单元,可以具体用于获得第七端点D、转角点B的连线与第三端点B1、第六端点B2的连线的交点作为第八端点E,第八端点E为折线转角区域顶点。
在本发明的一些实施例中,当转角类型为尖角转角,第二确定子单元,可以具体用于获得第七端点D、转角点B的连线与第二端点A2、第三端点B1的连线的交点作为第九端点F,或者,获得第七端点D、转角点B的连线与第五端点C2、第六端点B2的连线的交点作为第九端点F,第九端点F为折线转角区域顶点。
在本发明的一些实施例中,当转角类型为圆角转角,第二确定子单元,可以具体用于确定以线段的转角点B为圆心、以预设距离为半径、第三端点B1与第六端点B2之间的劣弧;获得第七端点D、转角点B的连线与劣弧的交点作为第十端点G,第十端点G为折线转角区域顶点;
第三确定子单元,具体用于劣弧中以第三端点B1与第十端点G为端点的第一圆弧;将以第一圆弧、第三端点B1与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域确定为第一线段AB的折线转角区域;
第四确定子单元,具体用于确定劣弧中以第六端点B2与第十端点G为端点的第二圆弧;将以第二圆弧、第六端点B2与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域确定为第二线段BC的折线转角区域。
在本发明的一些实施例中,本发明实施例中提供的折线绘制装置还可以包括:
第一填充单元,用于将第一线段AB的折线主体区域填充第一颜色,将第一线段AB的折线转角区域填充第一颜色;
第二填充单元,用于将第二线段BC的折线主体区域填充第二颜色,将第二线段BC的折线转角区域填充第二颜色。
在本发明的一些实施例中,第一填充单元可以包括:
第一填充子单元,用于将以第一端点A1、第二端点A2、第三端点B1以及第七端点D为端点的多边形区域分割为两个三角形区域后分别填充第一颜色;
第二填充子单元,用于将以第四端点C1、第五端点C2、第六端点B2以及第七端点D为端点的多边形区域分割为两个三角形区域后分别填充第二颜色。
在本发明的一些实施例中,第二填充单元可以包括:
第三填充子单元,用于将以第一圆弧、第三端点B1与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域分割为至少一个第一子扇形区域,将每个第一子扇形区域的三个端点所组成的三角形区域分别填充第一颜色;
第四填充子单元,用于将以第二圆弧、第六端点B2与第七端点D为端点的线段、第十端点G与第七端点D为端点的线段之间的扇形区域分割为至少一个第二子扇形区域,将每个第二子扇形区域的三个端点所组成的三角形区域分别填充第二颜色。
在本发明的一些实施例中,本发明实施例中提供的折线绘制装置还可以包括:
第三获取单元,用于折线AC以端点A或端点C为端点的端点类型;
第三确定单元,用于根据端点类型,确定第一线段AB的端点区域以及第二线段BC的端点区域;
第三填充单元,用于将第一线段AB的端点区域填充第一颜色,将第二线段BC的端点区域填充第二颜色。
在本发明的一些实施例中,第三确定单元可以包括:
第五确定子单元,用于当端点类型为方形端点,将与第一线段AB的折线主体区域等宽且与第一线段AB的折线主体区域外侧相连的矩形区域确定为第一线段AB的端点区域;将与第二线段BC的折线主体区域等宽且与第二线段BC的折线主体区域外侧相连的矩形区域确定为第二线段BC的端点区域;
第六确定子单元,用于当端点类型为圆形端点,将以第一线段AB的折线主体区域的宽度为直径且与第一线段AB的折线主体区域外侧相连的半圆形区域确定为第一线段AB的端点区域;将与第二线段BC的折线主体区域的宽度为直径且与第二线段BC的折线主体区域外侧相连的半圆形区域确定为第二线段BC的端点区域;
第七确定子单元,用于当端点类型为箭头端点,将与第一线段AB的折线主体区域外侧相连的三角形区域确定为第一线段AB的端点区域;将与第二线段BC的折线主体区域外侧相连的三角形区域确定为第二线段BC的端点区域。
这样,本发明实施例在获取折线AC的端点A、转角点B及端点C后,分别确定第一线段AB的折线主体区域以及折线转角区域、第二线段BC的折线主体区域以及折线转角区域,第一线段AB的折线主体区域与第二线段BC的折线主体区域不重合,第一线段AB的折线转角区域与第二线段BC的折线转角区域也不重合,准确划分了第一线段AB对应的填充区域以及第二线段BC对应的填充区域,从而避免了折线转角处由于区域划分不准确而造成的折线转角处颜色无法准确划分的问题。另外,本发明实施例可以实现平角转角、圆角转角以及尖角转角的绘制,使折线绘制的样式更为多样。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (26)
1.一种折线绘制方法,其特征在于,所述方法包括:
获取折线AC的端点A、转角点B及端点C;
确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域具有同一个端点且所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域不重合;
确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域,所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域具有同一条边且所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域不重合。
2.根据权利要求1所述的方法,其特征在于,所述确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,包括:
将第一线段AB上的点向所述第一线段AB的两侧平移预设距离,获得第一平移结果;
将第二线段BC上的点向所述第二线段BC的两侧平移预设距离,获得第二平移结果;
根据所述第一平移结果以及所述第二平移结果确定所述第一线段AB的折线主体区域以及所述第二线段BC对应的折线主体区域。
3.根据权利要求2所述的方法,其特征在于,
所述将第一线段AB上的点向所述第一线段AB的两侧平移预设距离,获得第一平移结果,包括:
将所述折线AC的端点A向垂直于第一线段AB的折线内侧方向移动预设距离获得第一端点A1,将所述折线AC的端点A向垂直于所述第一线段AB的折线外侧方向移动所述预设距离获得第二端点A2,将所述折线AC的转角点B向垂直于所述第一线段AB的折线外侧方向移动所述预设距离获得第三端点B1;
所述将第二线段BC上的点向所述第二线段BC两侧平移预设距离,获得第二平移结果,包括:
将所述折线AC的端点C向垂直于第二线段BC的折线内侧方向移动所述预设距离获得第四端点C1,将所述折线AC的端点C向垂直于所述第二线段BC的折线外侧方向移动所述预设距离获得第五端点C2,将所述折线AC的转角点B向垂直于所述第二线段BC的折线外侧方向移动所述预设距离获得第六端点B2;
所述根据所述第一平移结果以及所述第二平移结果确定所述第一线段AB的折线主体区域以及所述第二线段BC的折线主体区域,包括:
获得经过所述第一端点A1且与所述第一线段AB平行的直线与经过所述第四端点C1且与所述第二线段BC平行的直线的交点作为第七端点D;
将以所述第一端点A1、所述第二端点A2、所述第三端点B1以及所述第七端点D为端点的多边形区域确定为所述第一线段AB的折线主体区域,将以所述第四端点C1、所述第五端点C2、所述第六端点B2以及所述第七端点D为端点的多边形区域确定为所述第二线段BC的折线主体区域。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取折线AC以转角点B为转角点的转角类型。
5.根据权利要求4所述的方法,其特征在于,所述确定第一线段AB的折线转角区域以及第二线段BC对应的折线转角区域,包括:
根据所述转角类型,在所述第七端点D与所述转角点B的连线上确定一点作为折线转角区域顶点;
将以所述第三端点B1、所述第七端点D以及所述折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域;
将以所述第六端点B2、所述第七端点D以及所述折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域。
6.根据权利要求5所述的方法,其特征在于,当所述转角类型为平角转角,所述在所述第七端点D与所述转角点B的连线上确定一点作为折线转角区域顶点,包括:
获得所述第七端点D、所述转角点B的连线与所述第三端点B1、所述第六端点B2的连线的交点作为第八端点E,所述第八端点E为折线转角区域顶点。
7.根据权利要求5所述的方法,其特征在于,当所述转角类型为尖角转角,所述在所述第七端点D与所述转角点B的连线上确定一点作为折线转角区域顶点,包括:
获得所述第七端点D、所述转角点B的连线与所述第二端点A2、所述第三端点B1的连线的交点作为第九端点F,或者,获得所述第七端点D、所述转角点B的连线与所述第五端点C2、所述第六端点B2的连线的交点作为第九端点F,所述第九端点F为折线转角区域顶点。
8.根据权利要求5所述的方法,其特征在于,当所述转角类型为圆角转角,所述在所述第七端点D与所述转角点B的连线上确定一点作为折线转角区域顶点,包括:
确定以所述线段的转角点B为圆心、以所述预设距离为半径、所述第三端点B1与所述第六端点B2之间的劣弧;
获得所述第七端点D、所述转角点B的连线与所述劣弧的交点作为第十端点G,所述第十端点G为折线转角区域顶点;
所述将以所述第三端点B1、所述第七端点D以及所述折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域,包括:
确定所述劣弧中以所述第三端点B1与第十端点G为端点的第一圆弧;
将以所述第一圆弧、所述第三端点B1与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域确定为第一线段AB的折线转角区域;
所述将以所述第六端点B2、所述第七端点D以及所述折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域,包括:
确定所述劣弧中以所述第六端点B2与第十端点G为端点的第二圆弧;
将以所述第二圆弧、所述第六端点B2与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域确定为第二线段BC的折线转角区域。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
将所述第一线段AB的折线主体区域填充第一颜色,将所述第一线段AB的折线转角区域填充所述第一颜色,将所述第二线段BC的折线主体区域填充第二颜色,将所述第二线段BC的折线转角区域填充所述第二颜色。
10.根据权利要求9所述的方法,其特征在于,
所述将所述第一线段AB的折线主体区域填充第一颜色,包括:
将以所述第一端点A1、所述第二端点A2、所述第三端点B1以及所述第七端点D为端点的多边形区域分割为两个三角形区域后分别填充第一颜色;
所述将所述第二线段BC的折线主体区域填充第二颜色,包括:
将以所述第四端点C1、所述第五端点C2、所述第六端点B2以及所述第七端点D为端点的多边形区域分割为两个三角形区域后分别填充所述第二颜色。
11.根据权利要求9所述的方法,其特征在于,
所述将所述第一线段AB的折线转角区域填充所述第一颜色,包括:
将以所述第一圆弧、所述第三端点B1与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域分割为至少一个第一子扇形区域,将每个所述第一子扇形区域的三个端点所组成的三角形区域分别填充所述第一颜色;
所述将所述第二线段BC的折线转角区域填充所述第二颜色,包括:
将以所述第二圆弧、所述第六端点B2与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域分割为至少一个第二子扇形区域,将每个所述第二子扇形区域的三个端点所组成的三角形区域分别填充所述第二颜色。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取折线AC以端点A或端点C为端点的端点类型;
根据所述端点类型,确定所述第一线段AB的端点区域以及所述第二线段BC的端点区域;
将所述第一线段AB的端点区域填充所述第一颜色,将所述第二线段BC的端点区域填充所述第二颜色。
13.根据权利要求12所述的方法,其特征在于,所述根据所述端点类型,确定所述第一线段AB的端点区域以及所述第二线段BC的端点区域,包括:
当所述端点类型为方形端点,将与所述第一线段AB的折线主体区域等宽且与所述第一线段AB的折线主体区域外侧相连的矩形区域确定为所述第一线段AB的端点区域;将与所述第二线段BC的折线主体区域等宽且与所述第二线段BC的折线主体区域外侧相连的矩形区域确定为所述第二线段BC的端点区域;
当所述端点类型为圆形端点,将以所述第一线段AB的折线主体区域的宽度为直径且与所述第一线段AB的折线主体区域外侧相连的半圆形区域确定为所述第一线段AB的端点区域;将与所述第二线段BC的折线主体区域的宽度为直径且与所述第二线段BC的折线主体区域外侧相连的半圆形区域确定为所述第二线段BC的端点区域;
当所述端点类型为箭头端点,将与所述第一线段AB的折线主体区域外侧相连的三角形区域确定为所述第一线段AB的端点区域;将与所述第二线段BC的折线主体区域外侧相连的三角形区域确定为所述第二线段BC的端点区域。
14.一种折线绘制装置,其特征在于,所述装置包括:
第一获取单元,用于获取折线AC的端点A、转角点B及端点C;
第一确定单元,用于确定第一线段AB的折线主体区域以及第二线段BC的折线主体区域,所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域具有同一个端点且所述第一线段AB的折线主体区域与所述第二线段BC的折线主体区域不重合;
第二确定单元,用于确定第一线段AB的折线转角区域以及第二线段BC的折线转角区域,所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域具有同一条边且所述第一线段AB的折线转角区域与所述第二线段BC的折线转角区域不重合。
15.根据权利要求14所述的装置,其特征在于,所述第一确定单元包括:
第一平移子单元,用于将第一线段AB上的点向所述第一线段AB的两侧平移预设距离,获得第一平移结果;
第二平移子单元,用于将第二线段BC上的点向所述第二线段BC的两侧平移预设距离,获得第二平移结果;
第一确定子单元,用于根据所述第一平移结果以及所述第二平移结果确定所述第一线段AB的折线主体区域以及所述第二线段BC的折线主体区域。
16.根据权利要求15所述的装置,其特征在于,
所述第一平移子单元,具体用于将所述折线AC的端点A向垂直于所述第一线段AB的折线内侧方向移动预设距离获得第一端点A1,将所述折线AC的端点A向垂直于所述第一线段AB的折线外侧方向移动所述预设距离获得第二端点A2,将所述折线AC的转角点B向垂直于所述第一线段AB的折线外侧方向移动所述预设距离获得第三端点B1;
所述第二平移子单元,具体用于将所述折线AC的端点C向垂直于第二线段BC的折线内侧方向移动所述预设距离获得第四端点C1,将所述折线AC的端点C向垂直于所述第二线段BC的折线外侧方向移动所述预设距离获得第五端点C2,将所述折线AC的转角点B向垂直于所述第二线段BC的折线外侧方向移动所述预设距离获得第六端点B2;
所述第一确定子单元,具体用于获得经过所述第一端点A1且与所述第一线段AB平行的直线与经过所述第四端点C1且与所述第二线段BC平行的直线的交点作为第七端点D;将以所述第一端点A1、所述第二端点A2、所述第三端点B1以及所述第七端点D为端点的多边形区域确定为所述第一线段AB的折线主体区域,将以所述第四端点C1、所述第五端点C2、所述第六端点B2以及所述第七端点D为端点的多边形区域确定为所述第二线段BC的折线主体区域。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于获取折线AC以转角点B为转角点的转角类型。
18.根据权利要求17所述的装置,其特征在于,所述第二确定单元包括:
第二确定子单元,用于根据所述转角类型,在所述第七端点D与所述转角点B的连线上确定一点作为折线转角区域顶点;
第三确定子单元,用于将以所述第三端点B1、所述第七端点D以及所述折线转角区域顶点为端点的区域确定为第一线段AB的折线转角区域;
第四确定子单元,用于将以所述第六端点B2、所述第七端点D以及所述折线转角区域顶点为端点的区域确定为第二线段BC的折线转角区域。
19.根据权利要求18所述的装置,其特征在于,当所述转角类型为平角转角,所述第二确定子单元,具体用于获得所述第七端点D、所述转角点B的连线与所述第三端点B1、所述第六端点B2的连线的交点作为第八端点E,所述第八端点E为折线转角区域顶点。
20.根据权利要求18所述的装置,其特征在于,当所述转角类型为尖角转角,所述第二确定子单元,具体用于获得所述第七端点D、所述转角点B的连线与所述第二端点A2、所述第三端点B1的连线的交点作为第九端点F,或者,获得所述第七端点D、所述转角点B的连线与所述第五端点C2、所述第六端点B2的连线的交点作为第九端点F,所述第九端点F为折线转角区域顶点。
21.根据权利要求18所述的装置,其特征在于,当所述转角类型为圆角转角,所述第二确定子单元,具体用于确定以所述线段的转角点B为圆心、以所述预设距离为半径、所述第三端点B1与所述第六端点B2之间的劣弧;获得所述第七端点D、所述转角点B的连线与所述劣弧的交点作为第十端点G,所述第十端点G为折线转角区域顶点;
所述第三确定子单元,具体用于确定所述劣弧中以所述第三端点B1与第十端点G为端点的第一圆弧;将以所述第一圆弧、所述第三端点B1与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域确定为第一线段AB的折线转角区域;
所述第四确定子单元,具体用于确定所述劣弧中以所述第六端点B2与第十端点G为端点的第二圆弧;将以所述第二圆弧、所述第六端点B2与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域确定为第二线段BC的折线转角区域。
22.根据权利要求21所述的装置,其特征在于,所述装置还包括:
第一填充单元,用于将所述第一线段AB的折线主体区域填充第一颜色,将所述第一线段AB的折线转角区域填充所述第一颜色;
第二填充单元,用于将所述第二线段BC的折线主体区域填充第二颜色,将所述第二线段BC的折线转角区域填充所述第二颜色。
23.根据权利要求22所述的装置,其特征在于,所述第一填充单元包括:
第一填充子单元,用于将以所述第一端点A1、所述第二端点A2、所述第三端点B1以及所述第七端点D为端点的多边形区域分割为两个三角形区域后分别填充第一颜色;
第二填充子单元,用于将以所述第四端点C1、所述第五端点C2、所述第六端点B2以及所述第七端点D为端点的多边形区域分割为两个三角形区域后分别填充所述第二颜色。
24.根据权利要求22所述的装置,其特征在于,所述第二填充单元包括:
第三填充子单元,用于将以所述第一圆弧、所述第三端点B1与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域分割为至少一个第一子扇形区域,将每个所述第一子扇形区域的三个端点所组成的三角形区域分别填充所述第一颜色;
第四填充子单元,用于将以所述第二圆弧、所述第六端点B2与所述第七端点D为端点的线段、所述第十端点G与所述第七端点D为端点的线段之间的扇形区域分割为至少一个第二子扇形区域,将每个所述第二子扇形区域的三个端点所组成的三角形区域分别填充所述第二颜色。
25.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第三获取单元,用于获取折线AC以端点A或端点C为端点的端点类型;
第三确定单元,用于根据所述端点类型,确定所述第一线段AB的端点区域以及所述第二线段BC的端点区域;
第三填充单元,用于将所述第一线段AB的端点区域填充所述第一颜色,将所述第二线段BC的端点区域填充所述第二颜色。
26.根据权利要求25所述的装置,其特征在于,所述第三确定单元包括:
第五确定子单元,用于当所述端点类型为方形端点,将与所述第一线段AB的折线主体区域等宽且与所述第一线段AB的折线主体区域外侧相连的矩形区域确定为所述第一线段AB的端点区域;将与所述第二线段BC的折线主体区域等宽且与所述第二线段BC的折线主体区域外侧相连的矩形区域确定为所述第二线段BC的端点区域;
第六确定子单元,用于当所述端点类型为圆形端点,将以所述第一线段AB的折线主体区域的宽度为直径且与所述第一线段AB的折线主体区域外侧相连的半圆形区域确定为所述第一线段AB的端点区域;将与所述第二线段BC的折线主体区域的宽度为直径且与所述第二线段BC的折线主体区域外侧相连的半圆形区域确定为所述第二线段BC的端点区域;
第七确定子单元,用于当所述端点类型为箭头端点,将与所述第一线段AB的折线主体区域外侧相连的三角形区域确定为所述第一线段AB的端点区域;将与所述第二线段BC的折线主体区域外侧相连的三角形区域确定为所述第二线段BC的端点区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510463438.8A CN106384370A (zh) | 2015-07-31 | 2015-07-31 | 一种折线绘制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510463438.8A CN106384370A (zh) | 2015-07-31 | 2015-07-31 | 一种折线绘制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106384370A true CN106384370A (zh) | 2017-02-08 |
Family
ID=57916187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510463438.8A Pending CN106384370A (zh) | 2015-07-31 | 2015-07-31 | 一种折线绘制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106384370A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107886556A (zh) * | 2017-11-24 | 2018-04-06 | 长沙理工大学 | 一种卵形线的快速绘制方法及系统 |
CN109945888A (zh) * | 2019-03-11 | 2019-06-28 | 百度在线网络技术(北京)有限公司 | 导航引导线的生成方法、装置及计算机设备 |
CN110211202A (zh) * | 2019-05-31 | 2019-09-06 | 北京三快在线科技有限公司 | 折线绘制方法、装置、电子设备及存储介质 |
CN115723570A (zh) * | 2022-12-27 | 2023-03-03 | 无锡车联天下信息技术有限公司 | 一种汽车智能座舱显示屏中的油耗量展示方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719057A (zh) * | 2009-11-27 | 2010-06-02 | 广东威创视讯科技股份有限公司 | 绘制几何图形的方法及装置 |
CN101950427A (zh) * | 2010-09-08 | 2011-01-19 | 东莞电子科技大学电子信息工程研究院 | 一种适用于移动终端的矢量线段轮廓化方法 |
EP2009594B1 (en) * | 2007-06-27 | 2012-03-28 | NEC System Technologies, Ltd. | Vector image drawing device, method for vector image drawing, and computer readable recording medium |
CN104268911A (zh) * | 2014-09-18 | 2015-01-07 | 腾讯科技(深圳)有限公司 | 绘制地图中路线的方法和装置 |
-
2015
- 2015-07-31 CN CN201510463438.8A patent/CN106384370A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2009594B1 (en) * | 2007-06-27 | 2012-03-28 | NEC System Technologies, Ltd. | Vector image drawing device, method for vector image drawing, and computer readable recording medium |
CN101719057A (zh) * | 2009-11-27 | 2010-06-02 | 广东威创视讯科技股份有限公司 | 绘制几何图形的方法及装置 |
CN101950427A (zh) * | 2010-09-08 | 2011-01-19 | 东莞电子科技大学电子信息工程研究院 | 一种适用于移动终端的矢量线段轮廓化方法 |
CN104268911A (zh) * | 2014-09-18 | 2015-01-07 | 腾讯科技(深圳)有限公司 | 绘制地图中路线的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107886556A (zh) * | 2017-11-24 | 2018-04-06 | 长沙理工大学 | 一种卵形线的快速绘制方法及系统 |
CN109945888A (zh) * | 2019-03-11 | 2019-06-28 | 百度在线网络技术(北京)有限公司 | 导航引导线的生成方法、装置及计算机设备 |
CN110211202A (zh) * | 2019-05-31 | 2019-09-06 | 北京三快在线科技有限公司 | 折线绘制方法、装置、电子设备及存储介质 |
CN110211202B (zh) * | 2019-05-31 | 2020-07-10 | 北京三快在线科技有限公司 | 折线绘制方法、装置、电子设备及存储介质 |
CN115723570A (zh) * | 2022-12-27 | 2023-03-03 | 无锡车联天下信息技术有限公司 | 一种汽车智能座舱显示屏中的油耗量展示方法及装置 |
CN115723570B (zh) * | 2022-12-27 | 2024-01-26 | 无锡车联天下信息技术有限公司 | 一种汽车智能座舱显示屏中的油耗量展示方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106384370A (zh) | 一种折线绘制方法及装置 | |
US8243065B2 (en) | Image presentation method and apparatus for 3D navigation and mobile device including the apparatus | |
CN101930620B (zh) | 使二维影像呈现出三维效果的影像处理方法及相关影像处理装置 | |
CN103745501B (zh) | Stl文件格式的三维模型着色及颜色信息存取方法 | |
CN105005970A (zh) | 一种增强现实的实现方法及装置 | |
CN103425800B (zh) | 地图可视化方法、装置及处理器 | |
Vaaraniemi et al. | High-quality cartographic roads on high-resolution DEMs | |
CN105701759A (zh) | 基于gpu的地图矢量线要素拐角合理性绘制方法 | |
CN105574931A (zh) | 一种电子地图道路绘制方法及装置 | |
CN110458959B (zh) | 体三维显示仿真方法、装置、设备及计算机可读存储介质 | |
KR20140073480A (ko) | 라인을 따른 텍스트 이미지 렌더링 | |
CN104318605A (zh) | 矢量实线与三维地形的并行贴合渲染方法 | |
CN105184856A (zh) | 一种基于稠密匹配的二阶段人体皮肤三维重建方法 | |
CN102999931A (zh) | 电子笔迹绘制方法及装置 | |
CN106023317B (zh) | 一种用于大数据测试的加权Voronoi图生成方法 | |
JP2738588B2 (ja) | 立体モデル描画方法 | |
She et al. | A parallelized screen-based method for rendering polylines and polygons on terrain surfaces | |
CN104008122A (zh) | 层次化数据的动态多级饼图展示方法 | |
CN103295260A (zh) | 一种基于旋转体三维显示器的实时体三维数据生成方法 | |
CN105960631A (zh) | 一种在安卓设备上进行图标排布的方法及装置 | |
Nagy et al. | New algorithm to find isoptic surfaces of polyhedral meshes | |
CN109087391A (zh) | 一种三维场景下的军标标绘方法 | |
CN113126944B (zh) | 深度图的显示方法、显示装置、电子设备及存储介质 | |
CN111127589B (zh) | 顾及线宽一致性的矢量地图圆形虚线符号绘制方法 | |
CN111145298B (zh) | 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200507 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 102200, No. 8, No., Changsheng Road, Changping District science and Technology Park, Beijing, China. 1-5 Applicant before: AUTONAVI SOFTWARE Co.,Ltd. |
|
TA01 | Transfer of patent application right |