使用手册 - Simple:包络如何定义:修订间差异
跳到导航
跳到搜索
(创建页面,内容为“== 1.为什么要使用包络 == 举一个简单的例子,如下图所示,两辆对向行驶的车辆,要从窄通道交汇而过。 无框|600x600像素 如果不使用包络,两辆车会同时进入窄通道,虽然在“锁点”上,两辆车没有冲突,但是对于实际轮廓,两辆车是冲突的。 无框|600x600像素 如果使用包络,可…”) |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
== 1.为什么要使用包络 == | == 1.为什么要使用包络 == | ||
举一个简单的例子,如下图所示,两辆对向行驶的车辆,要从窄通道交汇而过。 | 举一个简单的例子,如下图所示,两辆对向行驶的车辆,要从窄通道交汇而过。 | ||
[[文件:0ea07779ff1a2df9e4cc46901d4ceb3.png|无框|600x600像素]] | [[文件:0ea07779ff1a2df9e4cc46901d4ceb3.png|无框|600x600像素]] | ||
如果不使用包络,两辆车会同时进入窄通道,虽然在“锁点”上,两辆车没有冲突,但是对于实际轮廓,两辆车是冲突的。 | 如果不使用包络,两辆车会同时进入窄通道,虽然在“锁点”上,两辆车没有冲突,但是对于实际轮廓,两辆车是冲突的。 | ||
2023年10月25日 (三) 10:35的版本
1.为什么要使用包络
举一个简单的例子,如下图所示,两辆对向行驶的车辆,要从窄通道交汇而过。
如果不使用包络,两辆车会同时进入窄通道,虽然在“锁点”上,两辆车没有冲突,但是对于实际轮廓,两辆车是冲突的。
如果使用包络,可以看到,右侧车辆要锁的点,实际上是在左侧车辆的包络中的,此时不会允许右侧车辆锁点,直到包络间没有冲突,右侧车辆才可以通过。
所以包络可以理解为车辆的“轮廓”,“锁点”没有冲突不代表“轮廓”没有冲突。
如何定义包络
首先需要定义车辆常规状态下的包络,需要在simple工程下的xxxxCar.cs中进行定义。如下图所示,使用[EnveplopConfig(centerX = 0,centerY = 0,lengthX = 1162,lengthY = 783]进行常规包络的定义,此代码的含义为,车体包络为“以车体坐标系(0,0)为中心,x方向长度为lengthX,y方向长度为lengthY”。
在定义完常规包络后,还可以定义小车在不同情况下的包络。如下图所示。创建一个名为RotateSiteEnvelop的类,代表是在站点旋转时的包络,继承SiteEnvelopDefinition类。首先覆写Use()方法,为true代表启用此包络。然后覆写Prompt()方法,此方法中定义了旋转时的包络。当进行Fetch()动作时,将包络修改为1550*1120大小,进行Put()动作时,将包络修改为1160*783大小。
如何启用包络
在simple中,点击项目属性,将属性中的useEnvelop改为true,即开启了包络。