egoGeometry

Геометрические свойства тел эго

Описание

[egoIDs,geomStruct] = egoGeometry(capsuleListObj) возвращает ID эго и параметры геометрии для каждого тела эго в списке капсул.

пример

[egoIDs,geomStruct] = egoGeometry(capsuleListObj,selectEgoIDs) задает который тела эго возвратить ID и параметры геометрии для.

[egoIDs,geomStruct,status] = egoGeometry(capsuleListObj,selectEgoIDs) возвращает индикатор ли каждый ID в selectEgoIDs \exists.

Примеры

свернуть все

Добавьте тела эго в среду с помощью dynamicCapsuleList объект. Измените свойства тел эго. Удалите тело эго из среды. Визуализируйте состояния всех объектов в среде в различных метках времени.

Создайте dynamicCapsuleList объект. Извлеките максимальное количество шагов, чтобы использовать в качестве количества меток времени для контуров объектов.

capsuleList = dynamicCapsuleList;
numSteps = capsuleList.MaxNumSteps;

Добавьте тела эго

Задайте состояния для двух тел эго как линейный контур от x = 0 м к x = 100 м. Два тела эго разделяются на 5 м в противоположных направлениях на оси Y.

egoState = linspace(0,1,numSteps)'.*[100 0 0];
egoState1 = egoState+[0 5 0];
egoState2 = egoState+[0 -5 0];

Сгенерируйте положения по умолчанию и геометрические структуры для двух тел эго с помощью идентификаторов эго.

[egoIDs,egoPoseStruct] = egoPose(capsuleList,[1 2]);
[egoIDs,egoGeomStruct] = egoGeometry(capsuleList,egoIDs);

Обновите тела эго

Присвойте состояния телам эго.

egoPoseStruct(1).States = egoState1;
egoPoseStruct(2).States = egoState2;

Увеличьте радиус первого тела эго к 2 м.

egoGeomStruct(1).Geometry.Radius = 2;

обновите тела эго с помощью updateEgoPose и updateEgoGeometry функции объекта.

updateEgoPose(capsuleList,egoIDs,egoPoseStruct);
updateEgoGeometry(capsuleList,egoIDs,egoGeomStruct);

Визуализируйте тела эго.

show(capsuleList,'TimeStep',1:numSteps);
axis equal

Figure contains an axes object. The axes object contains 2 objects of type patch.

Удалите тело эго

Удалите первое тело эго из списка капсул путем определения его ID.

removeEgo(capsuleList,1);

Визуализируйте тела эго снова.

show(capsuleList,'TimeStep',1:numSteps);
axis equal

Figure contains an axes object. The axes object contains an object of type patch.

Входные параметры

свернуть все

Динамический список капсул в виде dynamicCapsuleList или dynamicCapsuleList3D объект.

Идентификаторы тела эго в виде вектора из положительных целых чисел. Функция возвращает идентификаторы эго и параметры геометрии только для тел эго, заданных в этом векторе.

Выходные аргументы

свернуть все

Идентификаторы тел эго, возвращенных как вектор из положительных целых чисел.

Параметры геометрии для тел эго, возвращенных как структура или массив структур, где каждая структура содержит поля от структуры в Geometry поле связанного тела эго. Поля этой структуры зависят от того, используете ли вы dynamicCapsuleList или dynamicCapsuleList3D объект.

Индикация относительно существования тела эго, возвращенного как N - вектор-столбец элемента из единиц, нулей и отрицательных единиц. Каждое значение указывает, существует ли связанное тело (1), обновленный (0), или копия (-1). Если вы задаете тот же ID тела эго несколько раз в selectEgoIDs аргумент, затем функция отмечает все экземпляры того ID после первого как копии и игнорирует их.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2020b