exponenta event banner

terrainHeight

Возвращает высоту рельефа в сценариях БПЛА

    Описание

    пример

    heights = terrainHeight(scene,x,y) возвращает высоты рельефа указанных позиций xy для данных рельефа для uavScenario объект.

    heights = terrainHeight(___,Name,Value) указывает дополнительные параметры с помощью аргументов «имя-значение». Заключить каждый Name в кавычках.

    Примеры

    свернуть все

    В этом примере показано, как добавить рельеф местности и пользовательскую сетку здания в сценарий БПЛА.

    Добавить поверхность рельефа

    Добавление поверхности рельефа на основе данных об отметке рельефа из n39_w106_3arc_v2.dt1 DTED-файл.

    addCustomTerrain("CustomTerrain","n39_w106_3arc_v2.dt1");
    scenario = uavScenario("ReferenceLocation", [39.5 -105.5 0]);
    addMesh(scenario,"terrain", {"CustomTerrain", [-200 200], [-200 200]}, [0.6 0.6 0.6]);
    show3D(scenario);

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

    Добавить здания

    Добавьте в сценарий пару пользовательских строительных сетей с использованием вершин и полигональных сетей. Используйте terrainHeight для получения высоты грунта для каждого основания сборки.

    buildingCenters = [-50, -50; 100 100];
    
    buildingHeights = [30 100];
    buildingBoundary = [-25 -25; -25 50; 50 50; 50 -25];
    for idx = 1:size(buildingCenters,1)
        buildingVertices = buildingBoundary+buildingCenters(idx,:);
        buildingBase = min(terrainHeight(scenario,buildingVertices(:,1),buildingVertices(:,2)));
        addMesh(scenario,"polygon", {buildingVertices, buildingBase+[0 buildingHeights(idx)]}, [0.3922 0.8314 0.0745]);
    end
    
    show3D(scenario);
    view([0 15])

    Figure contains an axes. The axes contains 3 objects of type patch.

    Удалить пользовательскую местность

    Удалите импортированную пользовательскую местность.

    removeCustomTerrain("CustomTerrain")

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

    свернуть все

    Сценарий БПЛА, указанный как uavScenario объект.

    x-positions в сценарии, указанном как вектор или матрица скалярных значений в метрах. Если указано как матрица, y входные данные и heights выходные данные также являются матрицей одинакового размера.

    Пример: [1 2 0.5 -0.97]

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

    y-положения в сценарии, указанном как вектор или матрица скалярных значений в метрах. Если указано как матрица, x входные данные и heights выходные данные также являются матрицей одинакового размера.

    Пример: [1 2 0.5 -0.97]

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

    Аргументы пары «имя-значение»

    Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

    Пример: h = terrainHeight(scene,x,y,"UseLatLon",true) использует широту и долготу для x и y входные данные.

    Включить координаты широты и долготы, указанные как true или false.

    • Если указано как trueкоординаты x и y интерпретируются как долгота и широта соответственно.

    • Если указано как falseкоординаты x и y интерпретируются как декартовы координаты.

    Опорная система координат, заданная как имя инерциальной системы координат, определенной в InertialFrames имущества uavScenario объект scene. Можно добавить новые инерциальные кадры в сценарий с помощью addInertialFrame объектная функция.

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

    свернуть все

    Высота местности в каждой позиции, возвращаемая в виде вектора или матрицы скалярных значений в метрах. Если возвращено в виде матрицы, x и y входные данные также являются матрицей одинакового размера.

    Пример: [1 2 0.5 -0.97]

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

    Представлен в R2021a