график::
Камера
Блокноты 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 | положения камер, световых сигналов и текстовых объектов | |
PositionX | x-положения камер, световых сигналов и текстовых объектов | |
PositionY | y-положения камер, световых сигналов и текстовых объектов | |
PositionZ | z-положения камер, световых сигналов и текстовых объектов | |
TimeEnd | время окончания анимации | 10.0 |
TimeBegin | время начала анимации | 0.0 |
TimeRange | оперативный промежуток анимации | 0.0 .. 10.0 |
UpVector | “направление” камеры | [0.0, 0.0, 1.0] |
UpVectorX | x- “вектор” камеры | 0.0 |
UpVectorY | y- “вектор” камеры | 0.0 |
UpVectorZ | z- “вектор” камеры | 1.0 |
ViewingAngle | вводный угол камеры lense | |
Visible | видимость | TRUE |
Мы используем нашу собственную камеру, чтобы просмотреть 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:
|
Координаты положения камеры: числовые действительные значения или арифметические выражения параметра анимации
|
|
Координаты центр: числовые действительные значения или арифметические выражения параметра анимации
|
|
Вводный угол lense в радианах: числовое действительное значение или арифметическое выражение параметра анимации
|
|
Параметр анимации, заданный как |
CameraCoordinates
| CameraDirection
| FocalPoint
| KeepUpVector
| OrthogonalProjection
| Position
| UpVector
| ViewingAngle
| plot
| plot::copy