目录
作者: 姚彧
版本历史:
版本 | 日期 | 说明 |
---|---|---|
0.1 | 2018-08-07 | 创建文档 |
版权声明:本文为作者原创文章,博客地址:https://www.cnblogs.com/yaoyu126 未经作者允许, 不得转载。
目标
- 建立公路工程三维坐标系
引言
在公路三维建模中, 为了清晰、简洁的表达公路三维模型,我们需要采用各种三维坐标系。本文尝试通过应用空间向量基的原理,对公路三维建模所需的坐标系进行研究。
1. 数学基础
1.1 向量(Vector)
向量指具有大小和方向的量。
1.2 基(Basic,基底)
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.2.2 基底
\(n\)维向量空间\(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)
2. 公路工程三维坐标系
在公路工程中,结构物一般都是沿路线进行布置。找出适合公路工程表现方式的三维坐标系,可以清晰地表达公路三维模型。
基于向量空间 基 的定义, 在三维空间中, 可以使用任意 基底 来表达模型物体。因此本文根据公路三维特点,定义了如下公路三维基底:
2.1 桩号基底 \(B_s\)
首先,对于路线局部区域,可以建立以路线设计线指定桩号中心为基准的桩号基底。
2.1.1 桩号基底的选择
在任意中心桩号, 可以选择如下正交向量组\(\{B_3\}\)作为基底:
- 向右(基向量,\(V_r\)), 路线水平前进方向右转\(90^o\)
- 向前(基向量,\(V_f\)), 路线水平前进方向
- 向上(基向量,\(V_u\)), 竖直高度方向
2.1.2 桩号基底的存储
为了将横断面转换到三维, 使用(\(V_r, V_u\))分量保存横断面坐标, 这样横断面从二维转到三维只需要第三分量设为0, 即(x, y, 0).
将前进方向保存在第三分量上, 这样就组成了桩号基底(\(V_r, V_u, V_f\)), 我们用单位矩阵\(M_s=I_3\)表示.
因为分量定义顺序的原因, 桩号基底满足下列关系:
- \(V_r \times V_u = V_f\)
- \(V_u \times V_f = V_r\)
- \(V_f \times V_r = V_u\)
2.1.3 桩号基底的特点
- 将存储结果与实际情况对比, 造成了桩号基底符合 左手法则, (右, 上, 前), 在应用时, 需要注意.
真实的笛卡尔向量, 需要通过笛卡尔基底还原
\(P_r \cdot M_r = P_s \cdot M_0 \cdot \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & 1\\ 1 & 0 & 0 \end{bmatrix} \cdot M_l = P_s \cdot \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & 1\\ 1 & 0 & 0 \end{bmatrix} \cdot M_l = P_s \cdot M_s\)
2.2 路线基底 \(B_r\)
对于路线,直接使用笛卡尔基底(即单位矩阵\(M_r=I_3\))来表示坐标:
\(P_r=(X, Y, Z) \cdot M_r\)。
3. 公路三维坐标系应用
3.1 计算桩号在路线中的位置矩阵
路线前进方向在笛卡尔坐标系中进行计算
\(V_f = P_e - P_s\)
其中:\(P_e,P_s\)中z分量=0
\(V_u = [0,0,1]\)
\(V_r = V_f \times V_u\)
$M_s = [V_r, V_u, V_f] \Leftrightarrow\begin{bmatrix}
0 & -1 & 0 \
0 & 0 & 1\
1 & 0 & 0
\end{bmatrix} \cdot M_l $
基点: $ P_s $
使用齐次矩阵表示为
\(M_s = \begin{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\)