“与图形结构无关”的矢量绘图算法
本文作者 徐庆荣(武汉大学)
1. 何谓图形结构
这里是指符号图案中各图元(几何图形)及相互间的组合方式。符号图案则是线状符号(例如道路,境界,河流等)或面状符号(如土壤,地质,植被,水域等)中的一个重复单元。通常,线状符号或面状符号都是由这种图案连续串接或拼接而成的,故图形结构也就是线状符号的线型或面状符号的填充型。
2. 基于图形结构的矢量绘图算法
至今,各种制图软件的矢量绘图算法均基于图形结构,即针对不同图形结构(线型或填充型)须分别编制各矢量绘图函数。因此,一些商品矢量制图软件都不具有绘制任意线型或任意填充型的功能。图形结构是个变数,可有无数种形式及其组合,且日新月异。在基于图形结构的矢量绘图算法中,图形结构与绘图函数的关系是N:N,即N种图形结构须对应有N个绘图函数,而N可能有任意多,为不确定数。可见,矢量绘图函数的编程量和维护工程量是无法估量的。
3. “与图形结构无关”算法及其基本原理
在“与图形结构无关”的矢量绘图算法中,图形结构与绘图函数的关系是N:1,即N种图形结构只须1个绘图函数,无论何种图形结构(任意线型或任意填充型)始终用此同一绘图函数,省去巨大的编程量和维护工程量。这种算法的无比优越和广阔前景是不言而喻的。
“与图形结构无关”算法的对象是点而不是整个图形结构。将符号图案离散化成一系列点(含色彩及关联标志等),绘图输出过程便是图案空间向制图空间逐点拓扑映射的过程(映射前后,图形点间的拓扑关系保持不变)。正因为算法的对象是点而不是整个图形结构,所以同一绘图函数能适应任意线型或任意填充型。
4.“与图形结构无关”算法的绘图示例
下图纯属虚构,含各种复杂的符号图形(点状的,线状的,面状的),均用同一绘图函数输出,耗时不足5秒。
5. UGS(通用绘图软件)采用了“与图形结构无关”算法
UGS含矢量绘图和图面注记二部分,其中绘图模块采用了“与图形结构无关”算法。
UGS是图形工具类软件,面向矢量图形软件开发者,适用于绘制各种图件,尤其是地图绘制。
UGS发布于CSDN(图形与多媒体大类,图形处理小类),下载处:
http://www.csdn.net/cnshare/shtm/18.shtm
联系:可在CSDN论坛向xqr发短信息。