plot::Camera

Камера

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

plot::Camera([px, py, pz], [fx, fy, fz], angle, <a = amin .. amax>, options)

Описание

plot::Camera([px, py, pz], [fx, fy, fz], angle) создает камеру в положении [px, py, pz] обращение к центру [fx, fy, fz]. Вводный угол его lense дан angle.

При создании 3D сцены используется “автоматическая камера”. Его местоположением может управлять атрибут CameraDirection, но существуют теперь дальнейшие средние значения управления его параметрами.

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

Камера типа plot::Camera позволяет устанавливать все параметры, определяющие представление и его перспективу. Далее, все параметры могут быть анимированы таким образом, что может быть понят анимированный “рейс” через 3D сцену.

Первый аргумент [px, py, pz] в вызове, генерирующем камеру, Position из камеры в с 3 пробелами. Второй аргумент [fx, fy, fz] точка, на которую нацелена камера (FocalPoint).

Оптическая ось дана векторным FocalPoint - Position.

Вместе с вводным углом изменения масштаба lense (ViewingAngle), эти параметры определяют представление сцены.

FocalPoint вектор может быть заменен любой другой точкой на оптических осях, не изменяя представление. (FocalPoint и Position не должен совпадать, все же.)

По умолчанию z - направление в с 3 пробелами соответствует вертикальному направлению конечного изображения. Если это не желаемо, камера может вращаться вокруг ее оптических осей с помощью атрибута UpVector.

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

Так же, как для действительной камеры, необходимо будет придвинуться поближе к или дальше от сцены, чтобы заставить его заполнить область рисунка, как желаемый. В качестве альтернативы можно сохранить положение камеры зафиксированным и использовать изменение масштаба lense путем выбора соответствующего ViewingAngle.

Как в реальной жизни, необходимо найти соответствующие параметры экспериментально путем рассмотрения изображения и изменения параметров в интерактивном режиме.

В качестве альтернативы можно задать камеру с атрибутом OrthogonalProjection = TRUE. Это оказывает то же влияние как позиционирование камеры на большом расстоянии от сцены с помощью мощного телека lense.

В этом случае камера игнорирует ViewingAngle и Position в с 3 пробелами. Это перемещено вдоль оптической оси FocalPoint - Position к бесконечности и выбирает бесконечно малый небольшой угол обзора, таким образом, что сцена заполняет область рисунка оптимально.

Несколько камер могут присутствовать одновременно в графической сцене. Первая камера задана в plot команда определяет представления.

Можно переключиться между камерами путем нажатия на соответствующую камеру в интерактивном “обозревателе объектов” инструмента графики MuPAD® (см. раздел Viewer, Браузер и Инспектора: Интерактивная Манипуляция этого документа).

Можно поместить собственные источники света в сцену. При определении атрибута CameraCoordinates = TRUE в определении световых сигналов они присоединены к камере и перемещаются автоматически, когда камера перемещена.

Атрибуты

АтрибутЦельЗначение по умолчанию
FocalPointцентр камеры 
FocalPointXцентр камеры, x-координаты 
FocalPointYцентр камеры, y-координаты 
FocalPointZцентр камеры, z-координаты 
Framesколичество систем координат в анимации50
KeepUpVectorсохранить UpVector постоянным при перемещении камеры?TRUE
Nameимя объекта графика (для браузера и легенды) 
OrthogonalProjectionпараллельная проекция без перспективного искаженияFALSE
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
Positionположения камер, световых сигналов и текстовых объектов 
PositionXx-положения камер, световых сигналов и текстовых объектов 
PositionYy-положения камер, световых сигналов и текстовых объектов 
PositionZz-положения камер, световых сигналов и текстовых объектов 
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0.. 10.0
UpVector“направление” камеры[0.0, 0.0, 1.0]
UpVectorXx- компонент “вектор” камеры0.0
UpVectorYy- компонент “вектор” камеры0.0
UpVectorZz- компонент “вектор” камеры1.0
ViewingAngleвводный угол камеры lense 
VisibleвидимостьTRUE

Примеры

Пример 1

Мы используем нашу собственную камеру, чтобы просмотреть 3D график функции:

f := plot::Function3d(sin(x) + y^3 + 2*exp(-3*x^2 - 20*y^2),
                      x = -PI..PI, y = -1 .. 1, 
                      Submesh = [2, 2]):
camera := plot::Camera([-12, -4, 14], [0, 0, 0], PI/7):
plot(f, camera):

Мы перемещаем камеру в другое положение:

camera::Position := [7, -5, 6]:
plot(f, camera):

Мы поворачиваем камеру к центральному пику и увеличению путем уменьшения openening угла изменения масштаба lense:

camera::FocalPoint := [0, 0, 1]:
camera::ViewingAngle := PI/20:
plot(f, camera):

Мы создаем анимированную камеру и летим через сцену:

camera := plot::Camera([-15 + 3*a, 4 - a, 3 +  (a - 4)^2], 
                       [0, 0, 1.5], PI/6, a = 0..8,
                       Frames = 100, TimeRange = 0..20):
plot(f, camera):

delete f, camera:

Параметры

px, py, pz

Координаты положения камеры: числовые действительные значения или арифметические выражения параметра анимации a.

px, py, pz эквивалентны атрибутам PositionX, PositionY, PositionZ.

fx, fy, fz

Координаты центр: числовые действительные значения или арифметические выражения параметра анимации a.

fx, fy, fz эквивалентны атрибутам FocalPointX, FocalPointY, FocalPointZ.

angle

Вводный угол lense в радианах: числовое действительное значение или арифметическое выражение параметра анимации a представление значения между 0 и π.

angle эквивалентно атрибуту ViewingAngle.

a

Параметр анимации, заданный как a = amin..amax, где amin начальное значение параметров и amax итоговое значение параметров.

Для просмотра документации необходимо авторизоваться на сайте