Создайте плоттер ориентации
создает плоттер ориентации для использования с театральным графиком oPlotter
= orientationPlotter(tp
)tp
.
создает плоттер ориентации с дополнительными опциями, заданными одним или несколькими oPlotter
= orientationPlotter(tp
,Name,Value
)Name,Value
парные аргументы.
В этом примере показано, как анимировать ориентацию колеблющегося устройства.
Загрузите rpy_9axis.mat
. Данные в rpy_9axis.mat
зарегистрированный акселерометр, гироскоп, и данные о датчике магнитометра из устройства, колеблющегося в подаче (вокруг оси Y), затем отклоняются от курса (вокруг оси z), затем прокручиваются (вокруг оси X). Ось X устройства указывала на юг, когда зарегистрировано.
ld = load('rpy_9axis.mat')
ld = struct with fields:
Fs: 200
sensorData: [1x1 struct]
Установите частоту дискретизации. Извлеките данные о гироскопе и акселерометр. Установитесь коэффициент децимации на 2. Используйте fuse
создать косвенный фильтр сплава датчика Кальмана из данных.
accel = ld.sensorData.Acceleration; gyro = ld.sensorData.AngularVelocity; Fs = ld.Fs; decim = 2; fuse = imufilter('SampleRate',Fs,'DecimationFactor',decim);
Получите информацию о положении объединенных данных.
pose = fuse(accel,gyro);
Создайте театральный график. Добавьте в театральный график плоттер ориентации с 'DisplayName'
установите на 'Fused Data'
и 'LocalAxesLength'
установите на 2
.
tp = theaterPlot('XLimit',[-2 2],'YLimit',[-2 2],'ZLimit',[-2 2]); op = orientationPlotter(tp,'DisplayName','Fused Data',... 'LocalAxesLength',2);
Цикл через информацию о положении, чтобы анимировать изменяющуюся ориентацию.
for i=1:numel(pose) plotOrientation(op, pose(i)) drawnow end
tp
— Театральный графикtheaterPlot
объектТеатральный график, заданный как theaterPlot
объект.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'HistoryDepth',6
'DisplayName'
— Постройте имя, чтобы отобразиться в легендеПостройте имя, чтобы отобразиться в легенде, заданной как разделенная запятой пара, состоящая из 'DisplayName'
и вектор символов или скаляр строки. Если никакое имя не задано, никакую запись не показывают.
Пример: 'DisplayName','Radar Detections'
'HistoryDepth'
— Количество предыдущей дорожки обновляется к отображению
(значение по умолчанию) | неотрицательное целое число, меньше чем или равное 100Количество предыдущей дорожки обновляется к отображению, заданному как разделенная запятой пара, состоящая из 'HistoryDepth'
и неотрицательное целое число, меньше чем или равное 100. Если установлено в 0, то никакие предыдущие обновления не представляются.
'Marker'
— Символ маркера'o'
(значение по умолчанию) | вектор символов | представляет скаляр в виде строкиСимвол маркера, заданный как разделенная запятой пара, состоящая из 'Marker'
и один из этих символов.
Значение | Описание |
---|---|
'+' | Знак «плюс» |
'o' | Круг (значение по умолчанию) |
'*' | Звездочка |
'.' | Точка |
'x' | Крест |
's' или 'square' | Квадрат |
'd' или 'diamond' | Ромб |
'v' | Нисходящий треугольник |
'^' | Треугольник, направленный вверх |
'>' | Треугольник, указывающий вправо |
'<' | Треугольник, указывающий влево |
'p' или 'pentagram' | Пятиконечная звезда (пентаграмма) |
'h' или 'hexagram' | Шестиконечная звезда (гексаграмма) |
'none' | Никакой символ маркера |
'MarkerSize'
— Размер маркера
(значение по умолчанию) | положительное целое числоРазмер маркера, заданного в точках как разделенная запятой пара, состоящая из 'MarkerSize'
и положительное целое число.
'MarkerEdgeColor'
— Цвет контура маркера'black'
(значение по умолчанию) | вектор символов | представляет скаляр в виде строки | триплет RGB | шестнадцатеричный цветовой кодЦвет контура маркера, заданный как разделенная запятой пара, состоящая из 'MarkerEdgeColor'
и вектор символов, представьте в виде строки скаляр, триплет RGB или шестнадцатеричный цветовой код. Цветом по умолчанию является 'black'
.
'MarkerFaceColor'
— Цвет заливки маркера'none'
(значение по умолчанию) | вектор символов | представляет скаляр в виде строки | триплет RGB | шестнадцатеричный цветовой кодЦвет контура маркера, заданный как разделенная запятой пара, состоящая из 'MarkerFaceColor'
и вектор символов, скаляр строки, триплет RGB, шестнадцатеричный цветовой код или 'none'
. Значением по умолчанию является 'none'
.
'FontSize'
— Размер шрифта для маркировки дорожек
(значение по умолчанию) | положительное целое числоРазмер шрифта для маркировки дорожек, заданных как разделенная запятой пара, состоящая из 'FontSize'
и положительное целое число, которое представляет размер точки шрифта.
'LabelOffset'
— Разорвите между меткой и позиционной точкой
(значение по умолчанию) | трехэлементный вектор-строкаРазорвите между меткой и позиционной точкой, которую она аннотирует, заданный как разделенная запятой пара, состоящая из 'LabelOffset'
и трехэлементный вектор-строка. Задайте [x
y
z] смещение в метрах.
'LocalAxesLength'
— Длина линии
(значение по умолчанию) | положительная скалярная величинаДлина линии раньше обозначала каждый локальный x - y - и z - оси данной ориентации, заданной как разделенная запятой пара, состоящая из 'LocalAxesLength'
и положительная скалярная величина. 'LocalAxesLength'
исчисляется в метрах.
'Tag'
— Пометьте, чтобы сопоставить с плоттером'PlotterN'
(значение по умолчанию) | вектор символов | представляет скаляр в виде строкиПометьте, чтобы сопоставить с плоттером, заданным как разделенная запятой пара, состоящая из 'Tag'
и вектор символов или скаляр строки. Значением по умолчанию является 'PlotterN'
, где N является целым числом, которое соответствует N th плоттер, сопоставленный с theaterPlot
.
Теги обеспечивают способ идентифицировать объекты плоттера, например, при поиске использования findPlotter
.
clearData
| clearPlotterData
| plotOrientation
| theaterPlot
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.