Документация Engee

Сцены

Страница в процессе перевода.

Что такое Scene?

Объекты Scene — это основные стандартные блоки рисунков в Makie. Сцена выступает в качестве контейнера для Plot и других объектов Scene. С объектами Scenes связаны объекты Plot и Subscenes. У каждой сцены также есть преобразование, состоящее из масштаба, перемещения и поворота.

Note До появления рабочего процесса Figure объект Scene был основным объектом-контейнером, который возвращался всеми функциями построения графиков. В настоящее время для большинства пользователей сцены являются лишь особенностью реализации, если только они не хотят создавать собственные решения, выходящие за рамки того, что предлагает система по умолчанию.

Доступ к графикам сцены можно получить посредством scene.plots.

Доступ к подсценам (также называемым дочерними сценами) можно получить посредством scene.children. В результате возвращается массив дочерних сцен Scene. Дочернюю сцену можно создать так: childscene = Scene(parentscene).

С любым объектом Scene с осью также связан объект camera; к нему можно получить доступ посредством camera(scene), а к его элементам управления — посредством cameracontrols(scene). Дополнительные сведения об этом см. в разделе Камеры.

Размер объекта Scene настраивается. Задать размер можно в аппаратно независимых пикселях следующим образом: Scene(size = (500, 500)). (Дополнительные сведения о размерах, разрешениях и единицах измерения см. в разделе Размер и разрешение рисунка или Как подобрать размер рисунка, размер шрифта и разрешение (в DPI, точках на дюйм).)

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

Подсцены

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

Атрибуты сцены

  • scene.clear = true: сцены отрисовываются сначала на одном и том же изображении. Если для сцены (подсцены) задано значение clear = true, ранее отрисованные объекты в ее области очищаются и заменяются на backgroundcolor. В противном случае графики в scene будут отрисовываться поверх, а цвет фона будет проигнорирован. Обратите внимание, что технически это не атрибут, а просто поле Scene.

  • ssao = SSAO(bias = 0.025, blur=2, radius=0.5): управляет настройками SSAO; см. документацию по освещению.

  • size = (800, 600): задает размер создаваемого окна, если сцена является корневой.

Изменение сцены

Makie предлагает изменяющие функции для динамического масштабирования, перемещения и поворота сцен.

translate!(t::Transformable, xyz::VecTypes)
translate!(t::Transformable, xyz...)

Применяет абсолютное перемещение к данному объекту Transformable (сцене или графику), перемещая его в позицию x, y, z.

rotate!(Accum, t::Transformable, axis_rot...)

Применяет относительный поворот к трансформируемому объекту путем умножения на текущий поворот.

scale!([mode = Absolute], t::Transformable, xyz...)
scale!([mode = Absolute], t::Transformable, xyz::VecTypes)

Масштабирует заданный объект t::Transformable (сцену или график) до заданных аргументов xyz. Отсутствующее измерение будет масштабировано на 1. При значении mode == Accum заданное масштабирование будет умножено на предыдущее.

Обновление сцены

При изменении сцены может потребоваться обновить несколько ее аспектов. Makie предоставляет три основные функции обновления:

update_cam!(scene::SceneLike, area)

Обновляет камеру для заданной сцены scene так, чтобы она охватывала область area в двух измерениях.

События

У сцен есть несколько предварительно созданных перехватчиков событий (действующих через наблюдаемые объекты), которые можно обрабатывать. Доступ к ним можно получить посредством scene.events, в результате чего возвращается структура Events.