VisibleAfter, VisibleBefore, VisibleFromToОбъект, видимый во временной стоимости
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
VisibleAfter, VisibleBefore, VisibleFromTo | Обертка библиотеки для “TimeEnd, TimeBegin, VisibleAfterEnd и VisibleBeforeBegin” | Неотрицательное вещественное число |
VisibleAfter = t0 представляет объектную невидимую операцию, пока оперативный t0 не протек в анимации. Затем объект становится видимым.
VisibleBefore = t1 представляет объект, видимый до времени t1. Затем объект становится невидимым.
VisibleFrom = t_0 .. t_1 представляет объектную невидимую операцию до времени t0. Затем объект становится видимым. После времени t1 это становится невидимым снова.
VisibleAfter, VisibleBefore, VisibleFromTo позволяет реализовывать анимированную видимость объектов. Это также включает в противном случае статические объекты, которые становятся анимированными объектами, когда один из этих атрибутов используется.
Атрибуты VisibleBeforeBegin и VisibleAfterEnd управляют видимостью объектов вне области значений времени их анимации, установленной TimeBegin и TimeEnd. Смотрите TimeBegin, TimeEnd для деталей.
VisibleAfter, VisibleBefore, VisibleFromTo обеспечивает короткие пути для подходящих настроек атрибутов TimeBegin, VisibleBeforeBegin, TimeEnd, VisibleAfterEnd, которые производят желаемые эффекты видимости.
VisibleAfter = t0 является коротким путем для установки следующих значений атрибута:
TimeBegin = t0, VisibleBeforeBegin = FALSE,
TimeEnd = t0, VisibleAfterEnd = TRUE.
Получившийся эффект состоит в том, что соответствующий объект невидим в начале анимации. Это становится видимым в то время t0, оставаясь видимым до конца анимации.
Время t0 должно быть действительным численным значением, дающим реальное время в секундах.
VisibleBefore = t1 является коротким путем для установки следующих значений атрибута:
TimeBegin = t1, VisibleBeforeBegin = TRUE,
TimeEnd = t1, VisibleAfterEnd = FALSE.
Получившийся эффект состоит в том, что соответствующий объект видим в начале анимации. В то время t1 это становится невидимым, оставаясь невидимым до конца анимации.
Время t1 должно быть действительным численным значением, дающим реальное время в секундах.
VisibleFromTo = t_0 .. t_1 является коротким путем для установки следующих значений атрибута:
TimeBegin = t0, VisibleBeforeBegin = FALSE,
TimeEnd = t1, VisibleAfterEnd = FALSE.
Получившийся эффект состоит в том, что соответствующий объект видим только со времени t0 до времени t1.
Атрибуты VisibleAfter = t0 и VisibleBefore = t1 не должны быть объединены, чтобы создать видимость для области значений времени между t0 и t1. (Конфликтные значения установлены неявно для VisibleBeforeBegin и т.д.), Используют VisibleFromTo = t_0 .. t_1 вместо этого.
VisibleAfter, VisibleBefore, VisibleFromTo не должен быть объединен ни с одним из атрибуты TimeBegin, TimeEnd, VisibleBeforeBegin или VisibleAfterEnd, поскольку неявные значения для этих атрибутов установлены.
Следующая анимация состоит из 100 частей графика функционального x sin (x). Во времена t = 0.1, 0.2 и т.д., дополнительная часть функции становится видимым до, наконец, целый график создается:
plot(plot::Function2d(x*sin(x), x = (i - 1)*PI/100 .. i*PI/100,
VisibleAfter = i/10) $ i = 1..100)
Этот пример создает анимированного “сетевого паука”. Это состоит из нескольких строк, которые появляются один за другим во времена, данные VisibleAfter, пока полная сеть не видима в конце анимации:
SpiderNet :=
proc(move, move1, rc, gc, bc)
local r, lines, x, y, x1, y1;
begin
r := 1.0:
lines := [FAIL $ 361]:
for i from 0 to 360 do
thet := float(i*PI/180);
x := r * cos(move * thet);
y := r * sin(move * thet);
x1 := r * cos(move1 * thet);
y1 := r * sin(move1 * thet);
lines[i+1] :=
plot::Line2d([x, y] ,[x1, y1],
Color = [abs(rc*sin(i*PI/360)),
abs(gc*sin(i*PI/360 + PI/4)),
abs(bc*sin(i*PI/360 + PI/2))],
VisibleAfter = i/36
);
end_for:
plot::Group2d(op(lines), Name = "SpiderNet",
Axes = None, Scaling = Constrained)
end_proc:plot(SpiderNet(3, 7, 0.9, 0.1, 0.5))

delete SpiderNet:
Этот пример создает анимированного “Маурера, повысился”. Здесь запуски анимации с полным объектом. Во время анимации строки исчезают во времена, данные VisibleBefore:
MaurerRose := proc(n, b, rc, gc, bc)
local lines, i, thet, r, x, y, x1, y1;
begin
r := 1.0;
lines := [FAIL $ 361]:
b := float(b*PI/180);
for i from 0 to 360 do
thet := float(i*PI/180);
x := r * sin(n*thet) * cos(thet);
y := r * sin(n*thet) * sin(thet);
x1 := r * sin(n*(thet+b))* cos(thet+b);
y1 := r * sin(n*(thet+b))* sin(thet+b);
lines[i+1] :=
plot::Line2d([x, y], [x1, y1],
Color = [abs(rc*sin(i*PI/360)),
abs(gc*sin(i*PI/360 + PI/4)),
abs(bc*sin(i*PI/360 + PI/2))],
VisibleBefore = i/36
);
end_for:
plot::Group2d(op(lines), Name = "MaurerRose",
Axes = None, Scaling = Constrained):
end_proc:plot(MaurerRose(4, 120, 0.1, 0.5, 0.9)):

delete MaurerRose:
Этот пример создает анимированный “сетевой Lissajous”. Это создается от строк, которые имеют продолжительность жизни только 2 секунд каждый, установленный VisibleFromTo:
LissajousNet := proc(r, a, b, R, A, B, rc, gc, bc)
local lines, i, thet;
begin
lines := [FAIL $ 361]:
for i from 0 to 360 do
thet := float(i*PI/180);
x := r * cos(a*thet);
y := r * sin(b*thet);
x1 := R * cos(A*thet);
y1 := R * sin(B*thet);
lines[i+1] :=
plot::Line2d([x, y], [x1, y1],
Color = [abs(rc*sin(i*PI/360)),
abs(gc*sin(i*PI/360 + PI/4)),
abs(bc*sin(i*PI/360 + PI/2))],
VisibleFromTo = i/36 .. i/36 + 2
);
end_for:
plot::Group2d(op(lines), Name = "LissajousNet",
Axes = None, Scaling = Constrained):
end_proc:plot(LissajousNet(2, 3, 4, 1, 6, 3, 0.7, 0.1, 0.99))

delete LissajousNet:
Вот 3D пример анимации. “Паук, сетевой”, создается со строками, которые имеют продолжительность жизни 4 секунд каждый:
SpiderNet3d := proc(a, b, c, rc, gc, bc)
local r, lines, i, x, x1, y, y1, thet, z1, z;
begin
r := 1.0:
lines := [FAIL $ 361]:
for i from 0 to 360 do
thet := float(i*PI/180);
x := r * cos(thet)*cos(thet);
y := r * sin(thet)*cos(thet);
z := r * sin(thet):
x1 := r * cos(a*thet)*cos(a*thet);
y1 := r * sin(b*thet)*cos(b*thet);
z1 := r * sin(c*thet):
lines[i+1] :=
plot::Line3d([x,y,z],[x1,y1,z1],
Color = [abs(rc*sin(i*PI/360)),
abs(gc*sin(i*PI/360 + PI/4)),
abs(bc*sin(i*PI/360 + PI/2))],
VisibleFromTo = i/36 .. i/36 + 4
);
end_for:
plot::Group3d(op(lines), Name = "SpiderNet3d"):
end_proc:plot(SpiderNet3d(2, 1, 3, 0.99, 0.9, 0.1))

Последние примеры на этой странице взяты из mathPAD Онлайн-издания (http://www.mupad.com/mathpad/recreations.html), записанный профессором Миреком Майевским. Смотрите там для получения дополнительной информации о математике позади примеров выше.