公路工程三维坐标系研究

做者: 姚彧
版本历史:设计

版本 日期 说明
0.1 2018-08-07 建立文档
0.2 2018-08-09 加入公路基础
0.2.1 2018-08-10 自由基底符合左手法则

版权声明:本文为做者原创文章,博客地址:https://www.cnblogs.com/yaoyu126 未经做者容许不得转载。blog

目标

  • [x] 创建公路工程三维坐标系

1. 引言

在公路三维建模中, 为了清晰、简洁的表达公路三维模型,咱们须要各类三维坐标系。本文尝试经过应用空间向量的原理,对公路三维建模所需的坐标系进行抛砖引玉。文档

1.1. 数学基础

1.1.1 向量(Vector)

向量指具备大小和方向的量。get

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\) 不为零,那么这些向量是线性相关的,其中一个向量是其余向量的组合。it

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\}\),使得table

$P = a_1e_1 + ⋯ + a_ne_n $  (式2)class

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 \times V_u\)
\(V_u = V_r \times V_f\)
\(V_f = V_u \times 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 \times V_u\)
  • \(V_r = V_u \times V_f\)
  • \(V_u = V_f \times V_r\)

2.2.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\)
    注: \(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 \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\)

3.2 计算任意公路点在桩号坐标系中的位置

使用 \(M_s\) 的逆矩阵 \(M_s ^ \mathrm{ -1 }\) 来计算点在桩号坐标系中的位置

$ P_s = P_r \times M_s ^ \mathrm{ -1 } $

相关文章
相关标签/搜索