Mathematica: почему 3D plot запоминает последнюю точку обзора / поворот, сделанные с ней, даже после повторной оценки?

#wolfram-mathematica

#wolfram-mathematica

Вопрос:

Я нахожу это немного раздражающим.

Я создаю 3D-график, изначально он отображается в ориентации по умолчанию. Затем, используя мышь, я поворачиваю его каким-либо образом.

Теперь я снова запускаю команду, ожидая получить исходную форму (т. Е. исходную ориентацию до того, как я повернул ее мышью), но вместо этого она просто выдает мне тот же график, который у меня есть на экране, т. Е., похоже, она сохранила / запомнила последнюю точку обзора в этой выходной ячейке.

Я хотел, чтобы он вернулся к исходной точке обзора. Итак, я удаляю выходную ячейку, чтобы это произошло.

Вы думаете, это так, как это должно работать? Необходимость постоянно удалять выходные данные ячейки раздражает, когда я пытаюсь что-то сделать. Я думаю, что он должен вернуться к исходной ориентации по умолчанию.

   Graphics3D[ Cuboid[{-.1,-.1,-.1},{.1,.1,.1}],
        AxesOrigin->{0,0,0},
        PlotRange->{{-1,1},{-1,1},{-1,1}},
        Axes->True,
        AxesLabel->{"X","Y","Z"},
        Ticks->None]
  

Если вы выполните описанное выше действие, затем переместите график, затем снова запустите команду, вы поймете, что я имею в виду.

версия 8.0.01

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

Еще более странно: я добавил опцию viewpoint, чтобы принудительно использовать точку обзора по умолчанию, но результат тот же. Он запоминает последнюю точку обзора. Ниже приведена точка зрения по умолчанию из справки.

  Graphics3D[ Cuboid[{-.1,-.1,-.1},{.1,.1,.1}],
        AxesOrigin->{0,0,0},
        PlotRange->{{-1,1},{-1,1},{-1,1}},
        Axes->True,
        AxesLabel->{"X","Y","Z"},
        ViewPoint->{1.3,-2.4,2},
        Ticks->None]
  

Я нахожу это странным.

Ответ №1:

Попробуйте:

 With PreserveImageOptions->False, settings for image options from the previous
version of a graphic are always ignored.
  

Комментарии:

1. Спасибо, это помогло. Но я все еще нахожу это странным поведением, потому что ожидается, что команда будет выдавать один и тот же результат каждый раз, когда она выдается. приветствия

2. Мне действительно нравится такое поведение, потому что тогда я могу интерактивно ориентировать его так, как я хочу, и работать над улучшением некоторых аспектов графики в этом представлении и видеть обновление результатов. Было бы громоздко, если бы мне приходилось переориентировать его каждый раз.

3. @Yoda, да, но я имел в виду, что опция должна быть наоборот! Я имею в виду, что по умолчанию должно быть сохранено значение FALSE, и если кто-то хочет сделать так, как вы хотите, тогда они должны использовать опцию. т. Е. логика обратная. Ожидается, что команда сгенерирует тот же результат, и на нее не повлияет история. Если не указано иное.

4. @Nasser Если вы тратите много времени, пытаясь придать графику красивый вид, а затем теряете всю работу, вы можете думать иначе. Таким образом, ваша работа никогда не будет потеряна, если вы специально не укажете это.

Ответ №2:

В записной книжке Mathematica визуализируйте свой график, затем ориентируйте его так, как вам нравится.

Затем поместите курсор слева от ВЫХОДНЫХ данных ГРАФИКА и введите «AbsoluteOptions [» Затем поместите курсор справа от выходных данных ГРАФИКА и введите «]» Shift-Enter

Вы получите кучу информации. Найдите точку обзора, а затем используйте это как опцию в своей графике. Тогда вы всегда будете получать одну и ту же ориентацию.

Комментарии:

1. спасибо!, Раньше я помнил этот трюк и забыл его, спасибо, что напомнили мне об этом. Полезно знать текущую точку зрения.

Ответ №3:

Мне нравится думать о повторном запуске команды Plot как об обновлении графики, которую я уже создал. В конце концов, это не создает второй график.

С этой точки зрения, если я поворачиваю или изменяю размер своего рисунка, я не хочу, чтобы Mathematica возилась с этим, когда я добавляю метку или меняю стиль.

Однако, если я удалю свою графику, чтобы начать все сначала, Mathematica использует поворот и размер по умолчанию.

Поэтому я нахожу поведение логичным и оцененным.