plot
::Turtle
“графика с относительными командами” (обязательные рисунки)
Блокноты 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
, с очевидными связями с командами выше. Эти методы добавляют новую команду в конец списка. См. Пример 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 | видимость точек mesh | FALSE |
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 |
Квадрат может чертиться четырьмя разами, продвигаясь, каждый раз поворачивая направо 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]))
Расстояние до перемещения может содержать параметр анимации:
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))
Также возможно последовательно добавить команды к списку:
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)
Как расширение исходной модели черепахи, цвет линии может быть изменен при графическом выводе:
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)
Обратите внимание на то, что цвет в рамках одного линейного сегмента является постоянным.
Другим расширением модели черепахи является тот 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)
Используя небольшие шаги, возможно создать привлекательные кривые с 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)
|
Список команд. Смотрите ниже для определений команды.
|
|
Параметр анимации, заданный как |