как анимировать трехмерный сюжет по оси вращения в математике - PullRequest
4 голосов
/ 01 марта 2011

Если задана нормализованная ось вращения, например {1 / Sqrt [3], 1 / Sqrt [3], 1 / Sqrt [3]}, и трехмерный график, например,

z[x_, y_] := Exp[-(Sqrt[x^2 + y^2]/Power[4, (3)^-1]) + Power[4, (3)^-1]*Sqrt[1/2*(Sqrt[x^2 + y^2] + x)]];

Plot3D[2*z[x, y], {x, -5, 5}, {y, -5, 5}]

Я хочу создать анимацию для этого графика вокруг оси {1 / Sqrt [3], 1 / Sqrt [3], 1 / Sqrt [3]} (может быть любой другой произвольный), а затем экспортировать его в виде анимированного GIF.Кто-нибудь, пожалуйста, помогите?Большое спасибо.

Редактировать

Я также исключил одну степень свободы при указании поворота.Может ли кто-нибудь помочь, если также дать координату точки, которую должна пройти ось вращения, как сделать визуализацию / анимацию?Еще раз спасибо.

Ответы [ 2 ]

7 голосов
/ 01 марта 2011

Копирование того, что сделал Даниэль, только что подготовил к экспорту.

axis = {1, 1, 1};
l = {-7, 7};

s = Table[

      Plot3D[2*z[x, y], {x, -5, 5}, {y, -5, 5}, PlotRange -> {l, l, l}] /. 

      gg : GraphicsComplex[___] :> Rotate[gg, theta, axis], {theta, 0., 2. Pi}];

Export["c:\\test.gif", s]

enter image description here

Для экспорта в формате gif доступны следующие параметры (согласно документам):

"AnimationRepetitions" how many times the animation is played before stopping
"Background"           background color shown in transparent image regions 
"BitDepth"             bits used to represent each color channel in the file
"ColorMap"             color reduction palette, given as a list of color values
"GlobalColorMap"       default color palette for individual animation frames
"DisplayDurations"     display durations of animation frames, given in seconds
"ImageCount"           number of frames in an animated GIF
"ImageSize"            overall image size
"RawData"              array of color map indices
"Comments"             user comments stored in the file

Я использовал «DisplayDurations» в прошлом, и это сработало.

6 голосов
/ 01 марта 2011

Может сделать, как показано ниже.

axis = {1, 1, 1};

Animate[
  Plot3D[2*z[x, y], {x, -5, 5}, {y, -5, 5}] /. 
    gg : GraphicsComplex[___] :> Rotate[gg, theta, axis],
  {theta, 0., 2.*Pi}]

enter image description here

Даниэль Лихтблау Вольфрам Исследования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...