标牌刻度值轮廓加粗绘制方法.pdf

上传人:111****11 文档编号:4576412 上传时间:2018-10-21 格式:PDF 页数:9 大小:490.82KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010265876.0

申请日:

2010.08.27

公开号:

CN101916318A

公开日:

2010.12.15

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 17/50变更事项:专利权人变更前:镇江科大船苑计算机网络工程有限公司变更后:江苏科大汇峰科技有限公司变更事项:地址变更前:212003 江苏省镇江市梦溪路2号变更后:212003 江苏省镇江市梦溪路2号|||授权|||实质审查的生效IPC(主分类):G06F 17/50申请日:20100827|||公开

IPC分类号:

G06F17/50

主分类号:

G06F17/50

申请人:

镇江科大船苑计算机网络工程有限公司

发明人:

薛峰; 于萧榕

地址:

212003 江苏省镇江市梦溪路2号

优先权:

专利代理机构:

南京经纬专利商标代理有限公司 32200

代理人:

楼高潮

PDF下载: PDF下载
内容摘要

本发明公开了一种标牌刻度值轮廓加粗绘制方法,首先绘制圆弧、刻度线,计算定位点和旋转角度,然后设置轮廓加粗的宽度值w1,根据字体、定位点、字体高度参数通过GetGlyphOutline方法遍历获得刻度值的轮廓点数组集,判断轮廓点数组集类型;遍历折线数组,绘制2点线段对象并写入一个公用的ObjectIdCollection类中,遍历曲线数组,绘制样条曲线对象并写入同一个公用的ObjectIdCollection类中,所有轮廓线绘制完成后,根据上面的ObjectIdCollection类进行多边形填充操作。本发明解决了刻度值字体轮廓加粗的技术问题,提高了工作效率。

权利要求书

1: 一种标牌刻度值轮廓加粗绘制方法, 首先绘制标牌圆弧、 标牌刻度线 ; 其次确定 标牌刻度值所在路径弧的圆心和半径、 刻度值偏转角度、 刻度值的文字样式、 刻度值的字 体高度、 宽度因子、 字符间距等参数, 然后根据上述参数分别计算得到刻度值的定位点 Location(x, y) 和刻度值旋转角度 ; 其特征在于, 还包括以下步骤 : 1) 设置轮廓加粗的宽度值 w1 ; 2) 根 据 刻 度 值 的 文 字 样 式 中 的 字 体, 定 位 点 Location(x, y), 字体高度参数通过 GetGlyphOutline 方法, 即取轮廓点方法遍历获得刻度值的轮廓点数组集 ; 因任何的文字 都是折线与曲线的组合, 轮廓点有两种类型 : 折线与曲线, 数组集内的所有点按类型绘制后 就是文字的轮廓边框 ; 3) 判断轮廓点数组集类型, 折线数组进入步骤 4), 曲线数组进入步骤 5) ; 4) 遍历折线数组, 该数组由 2 个点组成, 绘制 2 点线段 line 对象并写入一个公用的 ObjectIdCollection 类中, 折线线段宽度即为轮廓加粗宽度值 w1, 所有线段和曲线绘制完 成后就是文字的轮廓线, 轮廓线的宽度就是 w1, w1 的值确定了字体加粗的样式 ; 5) 遍历曲线数组, 该数组由 4 个点组成, 绘制样条曲线 spline 并写入同一个公用的 ObjectIdCollection 类中, 样条曲线宽度即为轮廓加粗宽度值 w1, 所有线段和曲线绘制完 成后就是文字的轮廓线, 轮廓线的宽度就是 w1 ; 6) 所有轮廓线绘制完成后根据不同的文字形成了多个任意多边形, 多边形的集合就是 文字的轮廓边框, 此时文字是空心的, 根据上面的 ObjectIdCollection 类进行多边形填充 操作 ; 7) 根据每个刻度值旋转角度参数将每个刻度值分别旋转相应的角度, 刻度值绘制完 成。
2: 如权利要求 1 所述的标牌刻度值轮廓加粗绘制方法, 其特征在于, 所述定位点 Location(x, y) 通过以下方法获得 : 根据刻度值路径弧的圆心、 半径和每个刻度值的偏转角度分别计算得到刻度值的中心 点 A(x, y) ; 根据已设定的刻度值的字体参数用多行文字的方式在刻度值的中心点 A(x, y) 位置上 逐一绘制刻度值, 此时中心点 A(x, y) 位于绘制好的刻度值的左上角 ; 通过范围函数逐一得到绘制好的刻度值的范围边框, 得到刻度值的高度值 h 和宽度值 w, 将中心点 A(x, y) 向 -x 轴方向移动宽度值 w 的二分之一, 向 y 轴方向移动高度值 h 的二 分之一, 得到点 B(x-w/2, y+h/2), 将该点记为刻度值的定位点 Location(x, y) ; 删除前述绘制好的刻度值对象。

说明书


标牌刻度值轮廓加粗绘制方法

    技术领域 本发明涉及一种图形绘制方法, 尤其涉及一种标牌刻度值轮廓加粗绘制方法, 属 于印刷技术领域。
     背景技术 随着计算机在工厂的普及, 越来越多的企业使用 CAD 软件进行绘图, 在标牌厂的 标牌制作工艺流程中, 一般先用 CAD 绘图软件将需要制作的标牌图形在计算机中绘制好并 保存, 然后将标牌图形文件转换成和激光照排机兼容的文件格式输出到照排机, 照排机打 印出胶片后进行生产。标牌制造厂现有的绘图软件基于 AutoCAD 绘图软件, 对标牌绘制方 法做了一些改进, 以输入标牌圆弧、 刻度线、 刻度值的各项参数的方法绘制标牌, 提高了工 作效率。制作标牌时在精确显示用户所需要的标牌样式的同时还需考虑到标牌的视觉效 果, 主要体现在标牌刻度值上, 这里所说的刻度值主要指中文字、 英文字、 数字等, 下文用文 字统称。当然一个标牌中不仅仅是刻度值文字, 还有不在标牌刻度上的其他辅助文字, 分 布在标牌周围, 一般只要刻度值文字绘制成功, 辅助文字的绘制也是同样的方法, 并且更简 单, 不需考虑整体绘制和角度偏转的问题。 Windows 软件内所提供的字体以及另安装的其他 字体在正常情况下在 AutoCAD 中都可以绘制出来, 但是, 有些标牌考虑视觉效果需要对刻 度值文字进行加粗。在 Word 中字体设置中可以选择加粗, 在 AutoCAD 中字体样式也可以设 置加粗, 如果上述两种方法选择加粗后刻度文字仍达不到标牌要求的视觉效果, 就要对刻 度值文字进行再加粗操作, 标牌制作企业绘图员在进行该操作时必须先在其它专业软件中 绘制出加粗的刻度值文字, 再以图块的方式贴到 AutoCAD 系统中。如果标牌中有 100 个文 字就要粘贴 100 次, 这样工作人员在绘制的时候操作非常繁琐, 粘贴后又必须手工调整刻 度值的位置, 手工操作使刻度值定位精确程度大大下降, 所以绘制这类标牌时绘图员工作 量非常大, 工作效率很低。因此, 研究一种标牌刻度值文字轮廓加粗的绘制方法, 对减少绘 图员工作量, 提高工作效率, 保证刻度值文字定位精度十分重要。
     发明内容
     本发明的目的在于提供一种标牌刻度值轮廓加粗绘制方法, 减少绘图员工作量, 提高工作效率, 保证刻度值文字定位精度。
     本发明的目的通过以下技术方案予以实现 :
     一种标牌刻度值轮廓加粗绘制方法, 首先绘制标牌圆弧、 标牌刻度线 ; 其次确 定标牌刻度值所在路径弧的圆心和半径、 刻度值偏转角度、 刻度值的文字样式、 刻度值的 字体高度、 宽度因子、 字符间距等参数, 然后根据上述参数分别计算得到刻度值的定位点 Location(x, y) 和刻度值旋转角度 ; 然后进行以下步骤 :
     1) 设置轮廓加粗的宽度值 w1 ;
     2) 根据刻度值的文字样式中的字体, 定位点 Location(x, y), 字体高度参数通过 GetGlyphOutline 方法, 即取轮廓点方法遍历获得刻度值的轮廓点数组集 ; 因任何的文字都是折线与曲线的组合, 轮廓点有两种类型 : 折线与曲线, 数组集内的所有点按类型绘制后 就是文字的轮廓边框 ;
     3) 判断轮廓点数组集类型, 折线数组进入步骤 4), 曲线数组进入步骤 5) ;
     4) 遍历折线数组, 该数组由 2 个点组成, 绘制 2 点线段 line 对象并写入一个公用 的 ObjectIdCollection 类中, 折线线段宽度即为轮廓加粗宽度值 w1, 所有线段和曲线绘制 完成后就是文字的轮廓线, 轮廓线的宽度就是 w1, w1 的值确定了字体加粗的样式 ;
     5) 遍历曲线数组, 该数组由 4 个点组成, 绘制样条曲线 spline 并写入同一个公用 的 ObjectIdCollection 类中, 样条曲线宽度即为轮廓加粗宽度值 w1, 所有线段和曲线绘制 完成后就是文字的轮廓线, 轮廓线的宽度就是 w1 ;
     6) 所有轮廓线绘制完成后根据不同的文字形成了多个任意多边形, 多边形的集合 就是文字的轮廓边框, 此时文字是空心的, 根据上面的 ObjectIdCollection 类进行多边形 填充操作 ;
     7) 根据每个刻度值旋转角度参数将每个刻度值分别旋转相应的角度, 刻度值绘制 完成。
     本发明的目的还可以通过以下技术措施来进一步实现 : 前述一种标牌刻度值轮廓加粗绘制方法, 其中定位点 Location(x, y) 通过以下方 法获得 :
     根据刻度值路径弧的圆心、 半径和每个刻度值的偏转角度分别计算得到刻度值的 中心点 A(x, y) ;
     根据已设定的刻度值的字体参数用多行文字的方式在刻度值的中心点 A(x, y) 位 置上逐一绘制刻度值, 此时中心点 A(x, y) 位于绘制好的刻度值的左上角 ;
     通过范围函数逐一得到绘制好的刻度值的范围边框, 得到刻度值的高度值 h 和宽 度值 w, 将中心点 A(x, y) 向 -x 轴方向移动宽度值 w 的二分之一, 向 y 轴方向移动高度值 h 的二分之一, 得到点 B(x-w/2, y+h/2), 将该点记为刻度值的定位点 Location(x, y) ;
     删除前述绘制好的刻度值对象。
     与现有技术相比, 本发明的有益效果是 : 在绘制标牌刻度值时, 需要在常规的 AutoCAD 软件字体之外更粗字体的情况下, 能进行字体轮廓自动加粗, 以满足标牌要求的视 觉效果, 并且减少了绘图员绘制时间, 提高了工作效率, 保证了刻度值文字定位的精度。
     附图说明
     图 1 是本发明的程序流程图 ;
     图 2 是刻度值定位点确定方法流程图 ;
     图 3 为未加粗的刻度值文字的轮廓线和字体 ;
     图 4 为用本方法加粗的刻度值文字的轮廓线和字体 ;
     图 5 是本实施例绘制好的标牌图形。 具体实施方式
     下面结合附图和具体实施例对本发明作进一步说明。
     如图 1 所示, 进行标牌刻度值轮廓加粗的绘制, 首先要绘制标牌圆弧、 标牌刻度线; 其次确定标牌刻度值所在路径弧的圆心和半径、 刻度值偏转角度、 刻度值的文字样式、 刻度值的字体高度、 宽度因子、 字符间距等参数, 然后根据上述参数分别计算得到刻度值的 定位点 Location(x, y) 和刻度值旋转角度。 如图 2 所示, 上述刻度值的定位点 Location(x, y) 通过以下方法获得 : 根据刻度值路径弧的圆心、 半径和每个刻度值的偏转角度分别计算 得到刻度值的中心点 A(x, y) ; 根据已设定的刻度值的字体参数用多行文字的方式在刻度 值的中心点 A(x, y) 位置上逐一绘制刻度值, 此时中心点 A(x, y) 位于绘制好的刻度值的左 上角 ; 通过范围函数逐一得到绘制好的刻度值的范围边框, 得到刻度值的高度值 h 和宽度 值 w, 将中心点 A(x, y) 向 -x 轴方向移动宽度值 w 的二分之一, 向 y 轴方向移动高度值 h 的 二分之一, 得到点 B(x-w/2, y+h/2), 将该点记为刻度值的定位点 Location(x, y) ; 删除前述 绘制好的刻度值对象。
     如图 1 所示, 刻度值的定位点 Location(x, y) 确定后进行以下步骤 :
     1) 设置轮廓加粗的宽度值 w1 ;
     2) 根据刻度值的文字样式中的字体, 定位点 Location(x, y), 字体高度参数通过 GetGlyphOutline 方法, 即取轮廓点方法遍历获得刻度值的轮廓点数组集 ; 因任何的文字 都是折线与曲线的组合, 轮廓点有两种类型 : 折线与曲线, 数组集内的所有点按类型绘制后 就是文字的轮廓边框 ;
     3) 判断轮廓点数组集类型, 折线数组进入步骤 4), 曲线数组进入步骤 5) ;
     4) 遍历折线数组, 该数组由 2 个点组成, 绘制 2 点线段 line 对象并写入一个公用 的 ObjectIdCollection 类中, 折线线段宽度即为轮廓加粗宽度值 w1, 所有线段和曲线绘制 完成后就是文字的轮廓线, 轮廓线的宽度就是 w1, w1 的值确定了字体加粗的样式 ;
     5) 遍历曲线数组, 该数组由 4 个点组成, 绘制样条曲线 spline 并写入同一个公用 的 ObjectIdCollection 类中, 样条曲线宽度即为轮廓加粗宽度值 w1, 所有线段和曲线绘制 完成后就是文字的轮廓线, 轮廓线的宽度就是 w1 ;
     6) 所有轮廓线绘制完成后根据不同的文字形成了多个任意多边形, 多边形的集合 就是文字的轮廓边框, 此时文字是空心的, 根据上面的 ObjectIdCollection 类进行多边形 填充操作 ;
     7) 根据每个刻度值旋转角度参数将每个刻度值分别旋转相应的角度, 刻度值绘制 完成。
     具体的, 绘制一个刻度值轮廓加粗的标牌, 参数如下, 圆弧圆心坐标为 (0, 0), 半径 80mm, 起始角度 320 度, 终止角度 220, 刻度线圆心, 刻度线半径、 起终角度与圆弧一样, 刻度 线均分 50 格, 长刻度均分 5 格, 刻度值从左至右分别是零、 一、 二、 三、 四、 五、 六、 七、 八、 九、 十, 用户给出每个中文刻度值的偏转角度, 刻度值高度 5mm, 刻度值轮廓加粗 0.3mm, 刻度值 所在路径弧的圆心为 (0, 0), 半径为 70mm。
     根据上述参数, 首先绘制圆弧, 然后绘制刻度线, 接着进行刻度值的绘制 :
     先 输 入 标 牌 刻 度 值 所 在 路 径 弧 的 圆 心 (0, 0) 和 半 径 70mm ; 选择刻度值的 文字样式, 确定刻度值的字体高度、 宽度因子、 字符间距 ; 选择刻度值的旋转方向, 一 般 刻 度 值 旋 转 方 式 有 垂 直、 向 圆 心、 反向圆心和自定义四种 ; 逐一输入刻度值 ( 零 一二三四五六七八九十 ) 和偏转角度 ; 根据刻度值路径弧的圆心 (0, 0)、 半径 70mm 和每个 刻度值的偏转角度分别计算得到刻度值的中心定位点 A(x, y), 根据 AutoCAD 的绘制方法,AutoCAD 绘制多行文字时不是以定位点作为中心进行绘制的, 因而点 A(x, y) 是 AutoCAD 绘 制的多行文字刻度值的左上角点, 所以沿着圆弧逐一绘制的刻度值的位置会偏向一边, 这 个定位点后续要进行调整 ; 根据刻度值的旋转方式 ( 垂直、 向圆心、 反向圆心和自定义之 一 ) 和偏转角度分别计算出每个刻度值的旋转角度并保存, 向圆心方式旋转角度是偏转角 度减 90 度, 反向圆心方式旋转角度是偏转角度加 90 度, 垂直方式和自定义方式无须计算, 垂直方式是 90 度, 自定义角度既是旋转角度 ; 根据前面的刻度值的字体参数 ( 文字字体、 字 体高度、 宽度因子、 字符间距 ) 用多行文字的方式以点 A(x, y) 定位逐一绘制刻度值 ; 通过范 围函数遍历逐一得到绘制好的刻度值对象的范围边框, 即得到刻度值的高度值 h 和宽度值 w, 每个刻度值都不一样, 所以刻度值对象的范围边框也不一样, 刻度值的高度值 h 和宽度 值 w 也不一样 ; 将点 A(x, y) 向 -x 轴方向移动宽度值 w 的二分之一, 向 y 轴方向移动高度值 h 的二分之一, 得到点 B(x-w/2, y+h/2), 将该点记为刻度值的真正的定位点 Location(x, y) ; 删除前面绘制的刻度值对象, 绘制这些对象的目的就是计算刻度值的定位点 Location(x, y), 以便于下面轮廓加粗刻度值的绘制, 所有已绘制出来的刻度对象要删除掉 ; 设置轮廓加 粗的宽度值 w1, w1 取值 0.3mm ; 根据刻度值的文字样式中的字体, 定位点 Location(x, y), 字体高度参数通过 GetGlyphOutline 方法, 即取轮廓点方法遍历获得刻度值的轮廓点数组 集, 数组集内的所有点如果按类型绘制后就是文字的轮廓边框, 轮廓点有两种类型 : 折线 ( 小线段 ) 与曲线, 因为任何的文字都是折线与曲线的组合 ; 遍历折线数组, 该数组由 2 个 点组成, 绘制 2 点线段 line 对象并写入一个公用的 ObjectIdCollection 对象集类中, 线段 宽度即为轮廓加粗宽度值 w1, 所有线段和曲线绘制完成后就是文字的轮廓线, 轮廓线的宽 度就是 w1, w1 的值确定了字体加粗的样式 ; 遍历曲线数组, 该数组由 4 个点组成, 绘制样条 曲线 spline 并写入同一个公用的 ObjectIdCollection 对象集类中, 样条曲线宽度即为轮 廓加粗宽度值 w1, 所有线段和曲线绘制完成后就是文字的轮廓线, 轮廓线的宽度就是 w1 ; 所有轮廓线绘制完成后根据不同的文字就形成了多个任意多边形, 多边形的集合就是文字 的轮廓边框, 此时文字是空心的, 这里就看出 w1 的重要性了, w1 的值决定了文字加粗的宽 度大小, 所以该方法可以实现文字的任意加粗, 标牌内所有需要加粗的文字都可以用上述 的方法实现 ; 因为现在文字是空心的, 所有还需根据上面的 ObjectIdCollection 对象集类 进行多边形填充操作, 该类中记录了文字的所有轮廓边框数据 ; 最后根据上述计算出的每 个刻度值旋转角度参数将每个刻度值分别旋转相应的角度, 刻度值绘制完成。如图 3 所示 为未加粗的刻度值文字的轮廓线和字体。如图 4 所示为用本方法加粗的刻度值文字的轮廓 线和字体。如图 5 所示, 是本实施例绘制好的标牌图形。
     除上述实施例外, 本发明还可以有其他实施方式, 凡采用等同替换或等效变换形 成的技术方案, 均落在本发明要求的保护范围内。

标牌刻度值轮廓加粗绘制方法.pdf_第1页
第1页 / 共9页
标牌刻度值轮廓加粗绘制方法.pdf_第2页
第2页 / 共9页
标牌刻度值轮廓加粗绘制方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《标牌刻度值轮廓加粗绘制方法.pdf》由会员分享,可在线阅读,更多相关《标牌刻度值轮廓加粗绘制方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明公开了一种标牌刻度值轮廓加粗绘制方法,首先绘制圆弧、刻度线,计算定位点和旋转角度,然后设置轮廓加粗的宽度值w1,根据字体、定位点、字体高度参数通过GetGlyphOutline方法遍历获得刻度值的轮廓点数组集,判断轮廓点数组集类型;遍历折线数组,绘制2点线段对象并写入一个公用的ObjectIdCollection类中,遍历曲线数组,绘制样条曲线对象并写入同一个公用的ObjectIdColle。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1