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, поскольку неявные значения для этих атрибутов установлены.

Примеры

Пример 1

Следующая анимация состоит из 100 частей графика функционального xsin (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)

Пример 2

Этот пример создает анимированного “сетевого паука”. Это состоит из нескольких линий, которые появляются один за другим во времена, данные 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:

Пример 3

Этот пример создает анимированного “Маурера, повысился”. Здесь запуски анимации с полным объектом. Во время анимации линии исчезают во времена, данные 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:

Пример 4

Этот пример создает анимированный “сетевой 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:

Пример 5

Вот 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) записанный профессором Миреком Майевским. Смотрите там для получения дополнительной информации о математике позади примеров выше.