作者: 姚彧
版本历史:
版本 | 日期 | 说明 |
---|---|---|
0.1 | 2018-08-07 | 创建文档 |
0.2 | 2018-08-09 | 加入公路基础 |
0.2.1 | 2018-08-10 | 自由基底符合左手法则 |
版权声明:本文为作者原创文章,博客地址:https://www.cnblogs.com/yaoyu126 未经作者允许不得转载。
目标
- [x] 建立公路工程三维坐标系
1. 引言
在公路三维建模中, 为了清晰、简洁的表达公路三维模型,我们需要各种三维坐标系。本文尝试通过应用空间向量基的原理,对公路三维建模所需的坐标系进行抛砖引玉。
1.1. 数学基础
1.1.1 向量(Vector)
向量指具有大小和方向的量。
1.1.2 基(Basic,基底)
1.1.2.1 线性无关
在一个向量空间(V_n)中,假设:
(a_1e_1 + ⋯ + a_ne_n = 0) (式1)
只在 (a_1 = ⋯ = a_n = 0) 时成立,那么向量 ({e_1, e_2, ..., e_n}) 是线性无关的。
如果任何 (a_i) 不为零,那么这些向量是线性相关的,其中一个向量是其他向量的组合。
1.1.2.2 基底
在向量空间(V_n)中,任意向量(P)都可以由一组(n)个线性无关的向量集(B_n)组成,这样的向量集(B_n)称为基底(基)。其定义如下:
向量空间 (V_n) 的基底 (B_n) 是一组 (n) 个线性无关的向量 ({e_1, e_2, ..., e_n}),
对于任何 (V_n) 的向量 (P),都存在实数 ({a_1, a_2, ..., a_n}),使得
$P = a_1e_1 + ⋯ + a_ne_n $ (式2)
1.2. 公路工程基础
1.2.1 公路的组成
公路的主要组成部分:路基、路面、桥梁、涵洞、隧道、绿化、排水、防护及其它设施等。
1.2.2 路线
公路路线是指公路平面线形、纵断面线形、横断面及其三者相结合的三维空间线形的总称。
1.2.3 结构物
公路结构物主要是桥梁、涵洞、立交、跨线桥、支挡结构物等。结构物一般都是沿路线进行布置。
2. 公路工程三维坐标系
基于向量空间 基 的定义, 在三维空间中, 可以使用任意 基底 来表达模型物体。根据公路三维特点,本文定义了如下公路三维基底:
2.1 路线基底 (B_r)
对于路线,直接使用笛卡尔基底(即单位矩阵(M_r = I_3 = (V_r, V_f, V_u))来表示坐标:
(P_r=(X, Y, Z) cdot M_r)。
在将路线三维坐标映射到桩号基底时,需要用到 (M_r) 的逆矩阵 (M_r)。
2.1.1 基向量之间的关系
基向量之间的关系符合右手法则
(V_r = V_f imes V_u)
(V_u = V_r imes V_f)
(V_f = V_u imes V_r)
2.2 桩号基底 (B_s)
首先,对于路线局部区域,可以建立以路线设计线指定桩号中心为基准的桩号基底。
2.2.1 桩号基底的选择
在任意中心桩号, 选择如下正交向量组({B_3})作为基底:
- 向前(基向量,(V_f)), 路线水平前进方向
- 向右(基向量,(V_r)), 路线水平前进方向右转(90^o)
- 向上(基向量,(V_u)), 竖直方向
2.2.2 桩号基底的存储
为了将横断面转换到三维, 使用((V_r, V_u))分量保存横断面坐标, 这样横断面从二维转到三维只需要第三分量设为0, 即(x, y, 0).
将前进方向保存在第三分量上, 这样就组成了桩号基底((V_r, V_u, V_f)), 我们用单位矩阵(M_s=I_3)表示.
因为分量定义顺序的原因, 桩号基底满足下列关系:
- (V_f = V_r imes V_u)
- (V_r = V_u imes V_f)
- (V_u = V_f imes V_r)
2.2.3 桩号基底的特点
- 将存储结果与实际情况对比, 造成了桩号基底符合 左手法则, (右, 上, 前), 在应用时, 需要注意。
- 真实的笛卡尔向量, 需要通过笛卡尔基底还原
(P_r cdot M_r = P_s cdot M_0 cdot egin{bmatrix} 0 & -1 & 0 \ 0 & 0 & 1\ 1 & 0 & 0 end{bmatrix} cdot M_l = P_s cdot egin{bmatrix} 0 & -1 & 0 \ 0 & 0 & 1\ 1 & 0 & 0 end{bmatrix} cdot M_l = P_s cdot M_s)
注: (M_0 = I_3)
2.3 自由基底 (B_{f})
2.3.1 自由基底的选择
选择如下自由向量组({B_3})作为基底:
- 向前(基向量,(V_f)), 路线前进方向
- 向右(基向量,(V_r)), 路线前进方向右转指定角度
- 向上(基向量,(V_u)), 竖直方向
2.3.2 自由基底的矩阵表达
自由基底采用与桩号基底同样的分量((V_r, V_u, V_f))。
2.3.3 自由基底的特点
自由基底适合于对模型应用错切变换。
2.3.4 应用方式
(P_r = P_f cdot M_f cdot M_s)
即对物体模型先应用自由基底,然后再应用路线基底。
3. 公路三维坐标系应用
3.1 计算桩号在路线中的位置矩阵
路线前进方向在笛卡尔坐标系中进行计算
(V_f = P_e - P_s)
其中:(P_e,P_s)中z分量=0
(V_u = [0,0,1])
(V_r = V_f imes V_u)
$M_s = [V_r, V_u, V_f] Leftrightarrowegin{bmatrix}
0 & -1 & 0
0 & 0 & 1
1 & 0 & 0
end{bmatrix} cdot M_l $
基点: $ P_s $
齐次位置矩阵为:
(M_s = egin{bmatrix} V_r & 0 \ V_u & 0 \ V_f & 0 \ P_s & 1 end{bmatrix})
最后, 以桩号基底(B_s)表示的齐次坐标点(P_s = [P_s, 1])最终在路线基底(B_r)中表示为
(P_r = P_s cdot M_s)
3.2 计算任意公路点在桩号坐标系中的位置
使用 (M_s) 的逆矩阵 (M_s ^ mathrm{ -1 }) 来计算点在桩号坐标系中的位置
$ P_s = P_r imes M_s ^ mathrm{ -1 } $