график::

“графика с относительными командами” (обязательные рисунки)

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

plot::Turtle(commands, <a = amin .. amax>, options)

Описание

Графика с относительными командами задает рисунок строки последовательностью команд к абстрактному роботу.

plot::Turtle задает диаграмму путем отправки команд перемещения в абстрактного робота. Этот робот запускает заголовок и положение в начале координат с его пером, готовым к рисованию (“вниз”) и цвету линии, взятому из атрибута LineColor.

Следующие команды известны роботу:

  • Left(α)

    Поверните налево углом α (в радианах).

  • Right(α)

    Поверните направо углом α (в радианах).

  • Forward(d)

    Продвиньтесь расстояние d.

  • Up

    Снимите “перо”, т.е. последующие команды перемещения не проводят линии.

  • Down

    Понизьте “перо”, т.е. последующие команды перемещения действительно проводят линии.

  • Push

    Помните текущее состояние (положение, угол, цвет линии).

  • Pop

    Восстановите последнее помнившее состояние и удалите его из списка помнивших состояний.

  • Noop

    Эта команда проигнорирована.

  • LineColor(c)

    Установите цвет линии на colorc.

Команды, не берущие аргумент, могут также быть введены с пустыми круглыми скобками () после, например, Push().

plot::Turtle - объектом можно управлять динамически путем вызова его методов left, right, forward, penUp, penDown, push, pop и setLineColor, с очевидными связями с командами выше. Эти методы добавляют новую команду в конец списка. Cf. Пример 3.

Примечание

Для длинных последовательностей команды это настоятельно рекомендовано, чтобы дать команды непосредственно с помощью синтаксиса выше или путем установки атрибута CommandList непосредственно.

И углы и расстояния могут быть анимированы. Цвета не могут.

Атрибуты

АтрибутЦельЗначение по умолчанию
AffectViewingBoxвлияние объектов на ViewingBox сценыTRUE
AntiAliasedсглаженные строки и точки?TRUE
Colorосновной цветRGB::Blue
CommandListкоманды перемещения черепахи[]
Framesколичество кадров в анимации50
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
LineColorцвет строкRGB::Blue
LineWidthширина строк0.35
LineStyleтело, подчеркнутые штриховой линией или пунктирные линии?Solid
LinesVisibleвидимость строкTRUE
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
PointSizeразмер точек1.5
PointStyleстиль презентации точекFilledCircles
PointsVisibleвидимость точек meshFALSE
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0 .. 10.0
Titleобъектный заголовок 
TitleFontшрифт объектных заголовков[" sans-serif ", 11]
TitlePositionположение объектных заголовков 
TitleAlignmentвыравнивание по горизонтали заголовков w.r.t. их координатыCenter
TitlePositionXположение объектных заголовков, x компонент 
TitlePositionYположение объектных заголовков, y компонент 
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE

Примеры

Пример 1

Квадрат может чертиться четырьмя разами, продвигаясь, каждый раз поворачивая направо 90 °:

plot(plot::Turtle([Forward(1), Right(PI/2),
                   Forward(1), Right(PI/2),
                   Forward(1), Right(PI/2),
                   Forward(1), Right(PI/2)]))

Используя оператор $, этот список команд может быть записан намного короче:

plot(plot::Turtle([(Forward(1), Right(PI/2))$4]))

Тем же способом мы можем чертить любой регулярный n - примкнул полигон:

n := 7:
plot(plot::Turtle([(Forward(1), Right(2*PI/n)) $ n]))

Пример 2

Расстояние до перемещения может содержать параметр анимации:

plot(plot::Turtle([Forward(1+a), Right(PI/2),
                   Forward(1-2*a), Right(PI/2),
                   Forward(1+3*a), Right(PI/2),
                   Forward(1-4*a), Right(PI/2),
                   Forward(1+5*a)], a=0..2))

Аналогично, угол может быть анимирован:

plot(plot::Turtle([(Forward(1), Right(a))$10],
                  a = 0.25..2.5))

Пример 3

Также возможно последовательно добавить команды к списку:

t := plot::Turtle()

t::forward(1)

for i from 1 to 9 do
  t::left(3*PI/5);
  t::forward(1);
end_for

plot(t)

Пример 4

Как расширение исходной модели черепахи, цвет линии может быть изменен при графическом выводе:

t := plot::Turtle():
t::setLineColor(RGB::Red):
t::forward(1):
p := float(PI/5):
for i from 1 to 9 do
  t::left(108*PI/180);
  t::setLineColor([cos(i*p), sin(i*p), 0.0]);
  t::forward(1);
end_for;

plot(t)

Обратите внимание на то, что цвет в рамках одного линейного сегмента является постоянным.

Пример 5

Другое расширение модели черепахи состоит в том, что plot::Turtle поддерживает стек сохраненных состояний, позволяя роботу возвратиться к предыдущим положениям:

t := plot::Turtle():
t::forward(5):
for i from -3 to 4 do
  t::push();
    t::left(PI/18*i);
    t::forward(3);
  t::pop();
end_for:
plot(t)

Пример 6

Используя небольшие шаги, возможно создать привлекательные кривые с plot::Turtle:

t := plot::Turtle(LineColor = RGB::Green):
t::forward(2):
for dir in [-1, 1] do
  t::push();
    t::left(dir*PI/30);
    for i from 1 to 10 do
      t::forward(0.2);
      t::left(dir*PI/30);
    end_for;
    t::left(dir*2/3*PI);
    for i from 1 to 10 do
      t::forward(0.2);
      t::left(dir*PI/30);
    end_for;
  t::pop()
end_for:
t::forward(3):
t::setLineColor(RGB::Red):
for dir from -5 to 5 do
  t::push();
    t::left(dir*2*PI/11);
    for i from 1 to 10 do
      t::forward(0.1);
      t::left(PI/30);
    end_for;
    t::left(2*PI/3);
    for i from 1 to 10 do
      t::forward(0.1);
      t::left(PI/30);
    end_for;
  t::pop()
end_for:
plot(t)

Параметры

commands

Список команд. Смотрите ниже для определений команды.

commands эквивалентен атрибуту CommandList.

a

Параметр анимации, заданный как a = amin..amax, где amin является начальным значением параметров и amax, является итоговым значением параметров.

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

Функции MuPAD

MuPAD графические примитивы