主要内容

本页采用了机器翻译。点击此处可查看英文原文。

SpanSequence

R2026b

定义由跨距连接的节点序列

自 R2025a 起

    描述

    SpanSequence 对象表示由相邻节点间连接的跨段组成的节点序列。

    跨距序列是由称为节点的控制点组成的有序集合,这些节点通过跨距相连,从而定义道路元素的形状与连续性,例如参考线、车道标记、车道宽度纵断面或高程纵断面。每个节点指定道路沿线的位置及其相关属性,例如曲率、高程或宽度;而每个跨段则在两个相邻节点之间进行插值,以生成平滑的几何过渡。

    跨段序列表示以下内容:

    • 车道参考线用于定义道路走向或车辆行驶轨迹。

    • 对于车道标记轮廓,它描述了标记随距离的变化方式,例如虚线与实线之间的过渡。

    • 对于车道宽度分布,它模拟了车道宽度在道路长度方向上的变化情况。

    创建对象

    要检索一个 SpanSequence 对象,请从 RoadRunner 场景中的车道或参考车道中提取 LaneMarkingProfile 属性或 WidthProfile 属性。例如,对于给定的 Lane 对象,rrLane 和 markingProfile = rrLane.LaneMarkingProfile 会提取车道的 LaneMarkingProfile 属性,该属性是一个 SpanSequence 对象。标记轮廓由一系列参数化跨段组成,表现为有序节点集合,相邻节点间通过跨段相连。跨段序列中的每个节点标记道路沿线特定位置的距离,该距离以道路为基准进行测量,起始点为道路基准线的第一个节点。相邻节点之间的跨段可以采用各自独立的标记样式。

    属性

    全部展开

    此 属性 为只读。

    指定跨段序列的节点,以 SpanSequenceNode 对象数组的形式指定。

    此 属性 为只读。

    跨段序列的跨段,指定为 SpanSequenceSpan 对象的数组。

    对象函数

    insertNode在跨段序列中插入节点

    示例

    全部折叠

    创建一个 roadrunner 对象,指定现有工程的路径。例如,此代码显示 Windows® 计算机上位于 "C:\RR\MyProject" 的工程的路径。此代码假设 RoadRunner 已安装在默认位置,并返回一个名为 rrApp 的对象,该对象提供用于执行基本任务的函数,例如打开、关闭和保存场景及工程。

    rrApp = roadrunner(ProjectFolder="C:\RR\MyProject");

    注意

    若您首次从 MATLAB® 打开 RoadRunner,或自上次从 MATLAB 打开以来更改了 RoadRunner 的安装位置,可使用 roadrunnerSetup 功能指定新的默认工程和安装文件夹,以便在打开 RoadRunner 时使用。您可以在 MATLAB 会话之间通过从对应下拉菜单中选择 Across MATLAB sessions 选项来保存这些文件夹。

    在 RoadRunner 中使用 newScene 函数创建新场景,指定 roadrunner 对象 rrApp。

    newScene(rrApp)
    

    创建一个名为 RoadRunner 的创作 API 对象 rrAPI,该对象引用当前 RoadRunner 实例 rrApp 的对象。rrApi 对象支持通过编程方式创建场景,例如使用 MATLAB 添加和修改道路及车道组件。

    rrApi = roadrunnerAPI(rrApp);
    
    从创作 API 对象 rrApi 的 Scene 属性中提取场景对象。提取的 Scene 对象可用于指定添加场景组件(如道路和车道)的场景。
    scn = rrApi.Scene;

    从创作 API 对象 rrApi 的 Project 属性中提取 RoadRunner 工程的对象。提取的 Project 对象可让您指定当前 RoadRunner 会话的工程文件夹,以便从中检索素材对象。您可以使用素材对象为场景中的车道添加车道标记。

    prj = rrApi.Project;

    使用 addLineArcRoad 函数向场景中添加一条具有线弧形水平曲线类型的道路。通过指定道路控制点在 RoadRunner 局部坐标系的 X- 和 Y- 轴上的位置来确定道路的位置。将道路的控制点分别设置在 X- 轴上的 -100 和 Y- 轴上的 50。

    controlPoints = [-100 0; 0 50];
    rrRoad = addLineArcRoad(scn,controlPoints);

    从道路 rrRoad 的 ReferenceLane 属性中提取参考车道。提取的属性 ReferenceLane 定义了道路的中线。

    refLane = rrRoad.ReferenceLane;

    使用 getAsset 函数获取用于虚实黄线标记和实黄线标记的 LaneMarkingStyle 对象。这些对象定义了用于标记参考车道车道标记轮廓中跨段的车道标记素材。

    dashedSolidYellowMarkingStyle = getAsset(prj, "<PROJECT>/Assets/Markings/DashedSolidYellow.rrlms", "LaneMarkingStyle");
    solidDoubleYellowMarkingStyle = getAsset(prj, "<PROJECT>/Assets/Markings/SolidDoubleYellow.rrlms", "LaneMarkingStyle");

    使用 refLane 对象的 LaneMarkingProfile 属性提取参考车道的车道标记轮廓。

    refLaneMarkingProfile = refLane.LaneMarkingProfile;

    在车道标记轮廓中,使用 insertNode 函数在三个 30 米跨段处插入节点。该方案通过在 30 米、60 米和 90 米处插入节点,将车道标记轮廓划分为四个跨段。

    insertNode(refLaneMarkingProfile, 30);
    insertNode(refLaneMarkingProfile, 60);
    insertNode(refLaneMarkingProfile, 90);
    

    版本历史记录

    在 R2025a 中推出