Шаг 161.
Язык Python. Визуализация данных.
Библиотека Mayavi. Настройка представления. Управление камерой

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

    Mayavi предоставляет ряд инструментов для управления положением камеры, с которой происходит обзор 3D-сцены, список функций представлен в таблице 1.

Таблица 1. Функции управления камерой
Функция Описание
move() Перемещает камеру и фокус
pitch() Вращает камеру вокруг оси, которая соответствует "правому" направлению
roll() Задаёт / возвращает абсолютный угол крена камеры
view() Задаёт / возвращает точку обзора камеры.
yaw() Вращает камеру вокруг оси, которая соответствует "верхнему" направлению


Более подробно обо всех эти функциях управления камерой вы можете прочитать в официальной документации (https://docs.enthought.com/mayavi/mayavi/auto/mlab_camera.html).

    Для примера рассмотрим работу с функцией view(). Прототип функции:

  view(azimuth=None, elevation=None, distance=None, focalpoint=None, 
    roll=None, reset_roll=None, figure=None)

    Параметры функции:

azimuth
Азимут, задаётся в градусах (от 0 до 360).

elevation
Подъём, задаётся в градусах (от 0 до 180).

distance
Расстояние, от фокуса до камеры. Если поставить значение 'auto', то будет подобрано наилучшее значение.

focalpoint
Фокус камеры. Если поставить значение 'auto', то будет подобрано наилучшее значение.

roll
Задаёт вращение камеры вокруг оси.

reset_roll
Если значение равно True, то параметр roll не учитывается.

figure
Сцена, на которой будет производиться управление камерой.

    Пример работы с функцией view():

import numpy as np
from mayavi import mlab

t = np.linspace(-5, 5, 100)
x = 3 * np.cos(t)
y = 3 * np.sin(t)
z = t / np.pi

s = mlab.plot3d(x, y, z, z, tube_radius=0.1)

v = mlab.view() # Возвращает текущий вид камеры
mlab.view(azimuth=0, elevation=0, distance=20, focalpoint=[1, 0, 0])

mlab.show()
Архив с файлом можно взять здесь.

    В результате получим следующее изображение:


Рис.1. Пример работы с функцией view()

    Со следующего шага мы начнем рассматривать визуализацию данных.




Предыдущий шаг Содержание Следующий шаг