plotMesh

Экранный объект сцепляется на видимом с большого расстояния графике

Описание

plotMesh(mPlotter,vertices,faces) сетки отображений состоят из заданных вершин и поверхностей на видимом с большого расстояния графике. Чтобы получить вершины mesh и поверхности объекта в ведущем сценарии, используйте targetMeshes функция. Плоттер mesh, mPlotter, сопоставлен с birdsEyePlot возразите и конфигурирует отображение сеток.

Видимый с большого расстояния график присваивает различный цвет каждому агенту, на основе порядка цвета по умолчанию Axes объекты. Для получения дополнительной информации смотрите ColorOrder свойство для Axes объекты.

Удалить все сетки сопоставило с плоттером mesh mPlotter, вызовите clearData функционируйте и задайте mPlotter как входной параметр.

пример

plotMesh(mPlotter,vertices,faces,'Color',colors) задает цвета сеток.

Примеры

свернуть все

Отобразите агентов в ведущем сценарии при помощи их представлений mesh вместо их представлений кубоида.

Создайте ведущий сценарий и добавьте 25-метровую прямую дорогу к сценарию.

scenario = drivingScenario;
roadcenters = [0 0 0; 25 0 0];
road(scenario,roadcenters);

Добавьте пешехода и транспортное средство к сценарию. Задайте размерности mesh агентов с помощью предварительно созданных сеток.

  • Задайте пешеходную mesh как driving.scenario.pedestrianMesh объект.

  • Задайте mesh транспортного средства как driving.scenario.carMesh объект.

p = actor(scenario,'ClassID',4, ...
            'Length',0.2,'Width',0.4, ...
            'Height',1.7,'Mesh',driving.scenario.pedestrianMesh);

v = vehicle(scenario,'ClassID',1, ...
            'Mesh',driving.scenario.carMesh);

Добавьте траектории для пешехода и транспортного средства.

  • Задайте для пешехода, чтобы пересечь дорогу на уровне 1 метра в секунду.

  • Задайте для транспортного средства, чтобы идти по дороге на уровне 10 метров в секунду.

waypointsP = [15 -3 0; 15 3 0];
speedP = 1;
trajectory(p,waypointsP,speedP);

wayPointsV = [v.RearOverhang 0 0; (25 - v.Length + v.RearOverhang) 0 0];
speedV = 10;
trajectory(v,wayPointsV,speedV)

Добавьте эгоцентрический график для транспортного средства. Включите отображение сеток.

chasePlot(v,'Meshes','on')

Создайте видимый с большого расстояния график, в котором можно отобразить сетки. Также создайте плоттер mesh и плоттер контура маршрута. Затем запустите цикл симуляции.

  1. Получите дорожные контуры дороги, транспортное средство включено.

  2. Получите вершины mesh, поверхности и цвета сеток агента, с положениями относительно транспортного средства.

  3. Постройте дорожные контуры и сетки агента на видимом с большого расстояния графике.

  4. Приостановите сценарий, чтобы позволить время для графиков обновиться. График преследования обновляется каждый раз, когда вы совершенствуете сценарий.

bep = birdsEyePlot('XLim',[-25 25],'YLim',[-10 10]);
mPlotter = meshPlotter(bep);
lbPlotter = laneBoundaryPlotter(bep);
legend('off')

while advance(scenario)

   rb = roadBoundaries(v);

   [vertices,faces,colors] = targetMeshes(v);

   plotLaneBoundary(lbPlotter,rb)
   plotMesh(mPlotter,vertices,faces,'Color',colors)

   pause(0.01)
end

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

свернуть все

Поймайте в сети плоттер в виде MeshPlotter объект. Этот объект хранится в Plotters свойство birdsEyePlot возразите и конфигурирует отображение сеток в видимом с большого расстояния графике. Чтобы создать этот объект, используйте meshPlotter функция.

Поймайте в сети вершины каждого агента в виде N - массив ячеек элемента, где N является количеством агентов.

Каждый элемент в vertices должен быть V-by-3 матрица с действительным знаком, содержащая вершины агента, где:

  • V является количеством вершин.

  • Каждая строка задает 3-D (x, y, z) положение вершины. Когда вы используете targetMeshes функция, чтобы получить вершины mesh, положения вершины относительно положения агента, который вводится к этой функции. Модули исчисляются в метрах.

Поймайте в сети поверхности каждого агента в виде N - массив ячеек элемента, где N является количеством агентов.

Каждый элемент в faces должен быть F-by-3 матрица с целочисленным знаком, содержащая поверхности агента, где:

  • F является количеством поверхностей.

  • Каждая строка задает треугольник идентификаторов вершины, которые составляют поверхность. Идентификаторы вершины соответствуют номерам строк в vertices.

Предположим первая поверхность iэлемент th faces имеет эти идентификаторы вершины.

faces{i}(1,:)
ans =

     1     2     3

В iэлемент th vertices, строки 1, 2, и 3 содержат (x, y, z) положения вершин, которые составляют эту поверхность.

vertices{i}(1:3,:)
ans =

    3.7000    0.9000    0.8574
    3.7000   -0.9000    0.8574
    3.7000   -0.9000    0.3149

Цвет mesh стоит для каждого агента в виде N-by-3 перед матрицей триплетов RGB. N является количеством агентов и равен числу элементов в vertices и faces.

iстрока th colors значение цвета RGB поверхностей в iэлемент th faces. Функция применяет тот же цвет ко всем поверхностям mesh агента.

Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].

Больше о

свернуть все

Сетки

В ведущих сценариях mesh является основанным на треугольнике 3-D представлением объекта. Сцепитесь представления объектов более подробны, чем кубоид по умолчанию представления, (имеющие форму поля) объектов. Сетки полезны для генерации синтетических данных об облаке точек из ведущего сценария.

Эта таблица показывает различие между представлением кубоида и представлением mesh транспортного средства в ведущем сценарии.

КубоидMesh

A vehicle represented as a cube.

A vehicle represented as a mesh.

Смотрите также

| |

Введенный в R2020b