Постройте набор покрытий на плоттере покрытия кинотеатра
plotCoverage(
задает строения M датчиков или излучателей, зоны покрытия которых и лучи нанесены на cPlotter
,configurations
)CoveragePlotter
объект, cPlotter
. Посмотрите coveragePlotter
о том, как создать CoveragePlotter
объект.
plotCoverage(
задает цвет каждой пары покрытия и графика луча с помощью списка индексов и цветов.cPlotter
,configurations
,indices
,colors
)
Создать график театра и задать пределы для его осей. Создайте график покрытия с DisplayName
установлено на 'Sensor Coverage'
.
tp = theaterPlot('XLim',[-40 40],'YLim',[-40 40],'ZLim',[-40 40]); covp = coveragePlotter(tp,'DisplayName','Sensor Coverage');
Настройте строение датчиков, покрытие которых должно быть нанесено.
sensor = struct('Index',1,'ScanLimits',[-45 45],'FieldOfView',[10;40],... 'LookAngle',-10,'Range',30,'Position',zeros(1,3),'Orientation',zeros(1,3));
Постройте график покрытия с помощью plotCoverage
функция и визуализация результатов. Темно-синий представляет пучок датчика тока, а светло-синий - зону покрытия.
plotCoverage(covp,sensor) view(70,30)
Создайте график театра и создайте график покрытия.
tp = theaterPlot('XLim',[-1e7 1e7],'YLim',[-1e7 1e7],'ZLim',[-2e6 1e6]); covp = coveragePlotter(tp,'DisplayName','Sensor Coverage'); view(25,20)
Моделируйте не сканирующий радар и растровый сканирующий радар.
radarIndex = 1; radar =fusionRadarSensor(radarIndex,'No Scanning','RangeLimits',[0 1e8]); RasterIndex = 2; raster = fusionRadarSensor(RasterIndex,'Raster','RangeLimits',[0 1e8]);
Создайте целевую платформу.
tgt = struct( ... 'PlatformID', 1, ... 'Position', [0 -50e3 -1e3], ... 'Speed', -1e3);
Симулируйте датчики и визуализируйте их шаблон сканирования.
time = 0; timestep = 1; stopTime = 90; while time < stopTime time = time+timestep; radar(tgt,time); raster(tgt,time); % Obtain sensor configuration using coverageConfig. radarcov = coverageConfig(radar); ircov = coverageConfig(raster); % Update plotter plotCoverage(covp,[radarcov,ircov],... [radarIndex, RasterIndex],... {'blue','red'}... ); pause(0.03) end
cPlotter
- Объект плоттера покрытияCoveragePloter
объектОбъект плоттера покрытия, созданный coveragePlotter
функция.
configurations
- строения датчика или излучателяДатчик или строения излучателя, заданный как массив структур. Каждая конструкция соответствует строению датчика или излучателя. Полями каждой структуры являются:
Поля строений
Область | Описание |
---|---|
Index | Уникальное целое число для различения датчиков или излучателей. |
LookAngle | Текущие углы boresight датчика или излучателя, заданные как:
|
FieldOfView | Поле зрения датчика или излучателя, заданное как двухэлементный вектор [azimuth ; elevation ] в степенях. |
ScanLimits | Минимальный и максимальный углы, которые датчик или излучатель может сканировать с его
|
Range | Область значений луча и зоны покрытия датчика или излучателя в метрах. |
Position | Исходное положение датчика или излучателя, заданное как трехэлементный вектор [X , Y , Z ] на оси театрального сюжета. |
Orientation | Преобразование вращения из сценария или глобальной системы координат в монтажную систему датчика или эмиттера, заданное как матрица вращения, кватернион или три угла Эйлера в ZYX последовательности. |
Совет
Если либо значение Position
поле или значение Orientation
поле NaN
соответствующая зона покрытия и луч не будут нанесены.
indices
- Индексы датчика или эмиттераИндексы датчика или эмиттера, заданные как массив N-element из неотрицательных целых чисел. Этот аргумент позволяет вам задать цвет каждой зоны покрытия и пары луча с соответствующим индексом.
Пример: [1;2;4]
colors
- Цвет плоттера покрытияЦвет плоттера покрытия, заданный как N-вектор элементов символов, строковых скаляров, триплетов RGB или шестнадцатеричных цветовых кодов. N - количество элементов в indices
массив. Зона покрытия и пара луча, индексируемые i-м элементом в indices
массив нанесен цветом, заданным i-м элементом colors
массив.
clearData
| clearPlotterData
| coveragePlotter
| theaterPlot
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.