график::

Камера

Блокноты 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, является итоговым значением параметров.