анимация и пространственные рычажные механизмы

Форум пользователей пакета Maple

Модератор: Admin

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

анимация и пространственные рычажные механизмы

Сообщение алексей_алексей » Вт июл 19, 2011 9:02 pm

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:58 pm, всего редактировалось 2 раза.

Kitonum
Сообщения: 2078
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: анимация

Сообщение Kitonum » Вт июл 19, 2011 10:11 pm

алексей_алексей писал(а): ...возможно ли в пакете производить анимацию не по непрерывной переменной, а по индексу массива? ...

Да, возможно! Но в этом случае используется не команда animate ,а сначала формируется последователность кадров анимации (кадров столько - сколько элементов в массиве), а затем эти кадры последовательно выводятся на графике с помощью команды display с опцией insequence=true . При этом при выводе очередного кадра - предыдущий стирается и этим создаётся эффект анимации. Этим методом можно создавать любые, сколь угодно сложные, анимации.

В качестве примера посмотрите пример анимации циклоиды, который я делал где-то 2 - 3 года тому назад:

restart:
R:=3: N:=120:
with(plots): with(plottools):
t:=6*Pi*k/N:
A:=seq(disk([t*R,R],R,color=yellow),k=1..N):
B:=seq(disk([R*(t-sin(t)),R*(1-cos(t))],R/15,color=red),k=1..N):
C:=seq(plot([R*(s-sin(s)),R*(1-cos(s)),s=0..t],color=red,thickness=2),k=1..N):
for k from 1 to N do
E[k]:=display(B[k],A[k],C[k])
end do:
display(seq(E[k],k=1..N),insequence=true,scaling=constrained,view=[-R..4*R*Pi+R,-1..2*R+1]);

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: анимация

Сообщение алексей_алексей » Ср июл 20, 2011 9:11 am

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:58 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: анимация

Сообщение алексей_алексей » Вт авг 09, 2011 9:15 pm

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:58 pm, всего редактировалось 1 раз.

Kitonum
Сообщения: 2078
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: анимация

Сообщение Kitonum » Ср авг 10, 2011 6:57 am

алексей_алексей писал(а):а вот стандартная процедура строит коряво. Что надо сделать для гладкости?
И ещё вопрос: а что, в параметрах нельзя сразу указывать, какая анимация, как, например, цвет или вид графика?

Для гладкости надо в любом случае увеличивать количество точек! В стандартной процедуре spacecurve надо использовать опцию numpoints , например

spacecurve([.25*t^2, t-sin(t), t*cos(3*t)+t], t = smin .. smax, thickness = 3,numpoints=5000);

Второй Ваш вопрос "нельзя сразу указывать, какая анимация, как, например, цвет или вид графика?" не понял!

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: анимация

Сообщение алексей_алексей » Ср авг 10, 2011 9:13 am

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:58 pm, всего редактировалось 1 раз.

Kitonum
Сообщения: 2078
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: анимация

Сообщение Kitonum » Ср авг 10, 2011 8:56 pm

алексей_алексей писал(а):А насчёт анимации имел ввиду, есть ли такая возможность куда-нибудь вставить что-то типа play = [oscillate, continues?

1) Мне такая возможность неивестна (в Maple нет команды play)!

2) Мне известно только, что в Maple существует 2 способа создания анимаций: с помощью команды animate или animate3d либо с помощью plots[display] с опцией insequence = true.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: анимация

Сообщение алексей_алексей » Ср авг 10, 2011 9:20 pm

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:58 pm, всего редактировалось 1 раз.

Kitonum
Сообщения: 2078
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: анимация

Сообщение Kitonum » Чт авг 11, 2011 9:33 pm

алексей_алексей писал(а):Да, похоже, что задавать параметры анимации можно только из окошка… Спасибо.
Но вопросов ещё набежало. В DEplot, как уже опробовано, например:
G1 := DEplot3d({(D(u))(t) = w(t), D(v))(t) = z(t), (D(w))(t) = 1., (D(x))(t) = y(t), (D(y))(t) = x(t), (D(z))(t) = x(t)+y(t)}, [x(t), y(t), z(t), v(t), w(t)], t = S .. s, [[x(0) = x0g1, y(0) = y0g1, z(0) = z0g1, v(0) = .1, w(0) = 1., u(0)=0.1]], scene = [x(t), v(t), w(t)], stepsize = h, linecolor = COLOR(HUE, svet1)):
display({G1});
можно решать систему неограниченной размерности, а на график выводить нужные сочетания переменных. Пусть имеется 6 переменных (u,v,w,x,y,z), (а вообще 3n), решается система из 6 уравнений, и надо вывести на один график траектории (u,v,w) и (x,y,z).
Как это можно сделать, решая систему единожды, и при этом заполучить все нужные наборы?

Я сам никогда не пользовался командой DEtools[DEplot3d]. Я просто решаю уравнение или систему командой dsolve/numeric, а потом, пользуясь полученной процедурой, формирую нужные мне списки и строю обычными командами plot или plots[spacecurve].

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: анимация

Сообщение алексей_алексей » Чт авг 11, 2011 9:49 pm

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:59 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Re: анимация

Сообщение алексей_алексей » Вт авг 23, 2011 9:33 pm

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:59 pm, всего редактировалось 1 раз.

Kitonum
Сообщения: 2078
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Сообщение Kitonum » Ср авг 24, 2011 10:24 am

Вот решение Вашей задачи без вызова дополнительных пакетов непосредственно на основе процедуры sol:

restart:
u1 := diff(x(t), t) = y(t):
u2 := diff(y(t), t) = -x(t):
inicond := x(0) = 1., y(0) = 0:
sol := dsolve({u1, u2, inicond}, {x(t), y(t)}, type = numeric):

N:=100: # Число кадров анимации

L:=seq(plot([seq([rhs(sol(-Pi+2*Pi*k/N)[2]),rhs(sol(-Pi+2*Pi*k/N)[3])],k=0..n)],thickness=2,view=[-1.3..1.3,-1.3..1.3]),n=0..N): # Последовательность кадров анимации

plots[display](L,insequence=true,scaling=constrained); # Анимация

L[N+1]; # Последний кадр анимации (полная окружность)

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Ср авг 24, 2011 8:44 pm

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 8:59 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Сб авг 27, 2011 7:56 pm

'
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 9:00 pm, всего редактировалось 1 раз.

алексей_алексей
Сообщения: 1776
Зарегистрирован: Вс май 01, 2005 9:02 pm

Сообщение алексей_алексей » Сб авг 27, 2011 9:56 pm

w
Последний раз редактировалось алексей_алексей Чт июн 16, 2016 9:00 pm, всего редактировалось 1 раз.