二、二维实体符号形成方法
二维实体是平面的,符号位置取决于实体位置,形状取决于实体的质量或数量特征。根据实体形态可以将二维实体符号分为点位符号、线状符号和面状符号。
- 点位符号:点位符号包括简单符号、结构符号、扩展符号和统计符号
(图 5-3),根据制作方式又可分为象形符号和规则符号。象形符号采用连接离散点或信息块的方法,规则图形符号通常可以通过折线和圆弧连接而成,这些折线和圆弧可以用解析几何的数学规则计算出参数。
对于规则多边形可以采用下列一组基本表达式表示(图 5-4):
设 n 为多边形边数,r 为外接圆半径,x、y 为符号中心点坐标,s 为逆时针第一点与 x 轴的夹角,则
α=360°/n β=(i-1)α+s xi=x+rcosβ yi=y+rsinβ
- 线状符号:铁路、公路、界线、堤坝等线状地物都采用线状符号表示
(图 5-5),其特点是在两个点间除了趋势性的各种线划外中间还有其它一些符号,这些线状符号可以通过连接线划中按规则排列的中间点和与线划相距一定距离的点形成,这些点可以用一组数学表达式描述(图 5-6)。
设 S 为两点间距离,D 为线划上点与起点的距离,W 为线划两侧点与线划距离,则线状符号形状特征点分别为:
S =
cos α = ( xi+1 − xi ) / S sinα = ( yi+1 − yi ) / S
xm = xi + D * cos α
ym = yi + D * sinα
xL = xm − W* sinα
yL = ym + W* cos α
xr = xm + W* sinα
yr = ym − W* cos α
- 面状符号:面状符号通过面域边界内以晕线或图案填充形成(图 5-
- ,其中图案的填充可以转化为多组晕线填充完成。
设制图区域边界坐标为 xi,yi,晕线间距为 D,晕线与 x 轴夹角α,填充步骤为:
- 坐标旋转:对轮廓点作坐标旋转,使晕线与 x 轴平行(图 5-8a),
新坐标为
xi=x0+xicosα+yisinα yi=y0-yisinα+yicosα
x0,y0 为新原点在旧坐标系中坐标。
- 确定各条晕线与边界交点(图
5-8b):对组成面域边界的每条线段(xi,yi)和(xi+1,yi+1),其起始晕线和终止晕线号为
miny=min(yi,yi+1)divD+1 maxy=max(yi,yi+1)divD
对每条晕线,将晕线方程和轮廓线段方程联立
y = D * Ln (Ln 为晕线号)
(x − x
i )(xi +1
− xi ) = (y − yi )( yi+1
- yi )
解得交点坐标
y = D * Ln
x = (x − x )( D * L − y) / (y − y ) + x
i+1 i n i +1 i i
为了避免晕线通过节点时产生两个交点,可以将晕线上移或下移一个小于坐标单位的量,如 y=D*Ln+0.01,这样既避免了奇点问题,也不会影响精度。
- 晕线交点的整理(图 5-8c):对每条晕线的一组交点按 x
坐标从小到大排序,排序后将交点经过旋转恢复到原坐标系中,即
xi=(xi-x0)cosα-(yi-y0)sinα yi=(xi-x0)sinα+(yi-y0)cosα
- 交点的配对和晕线输出(图
5-8d):对一条晕线,从左到右将交点两两配对,将配对的两点连成线段并通过绘图指令驱动设备输出。