updateEgoGeometry

Обновите геометрические свойства тел эго

Описание

пример

updateEgoGeometry(capsuleListObj,egoIDs,geomStruct) параметры геометрии обновлений для заданных тел эго в списке капсул. Если заданный ID эго уже не существует, функция добавляет новое тело эго с тем ID к списку.

status = updateEgoGeometry(capsuleListObj,egoIDs,geomStruct) дополнительно возвращает индикатор того, добавляется ли тело эго, обновляется, или копия.

Примеры

свернуть все

Добавьте тела эго в среду с помощью 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 объект.

Типы данных: struct

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

свернуть все

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

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

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

Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте