plot
::Transform3d
Аффинное линейное преобразование 3D объектов
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
plot::Transform3d(<b3d
>, A3d
, obj1
, <obj2,...
>, <a = amin .. amax
>, options
)
plot::Transform3d(b, A, objects)
с векторным b и матричным A применяет аффинное линейное преобразование к 3D объектам.
Матрица преобразования A
может быть задан списком списков, с подсписками, представляющими строки:
[[A1, 1, A1, 2, …], [A2, 1, A2, 2, …], …]
Простой список [A1, 1, A1, 2, …, A3, 2, A3, 3]
представляет строку матрицы строкой.
Преобразуйте объекты, может преобразовать несколько графических объектов одновременно. Графический вывод объекта преобразования представляет все графические объекты внутри.
Преобразованные объекты имеют тенденцию переоценить их ViewingBox
. В таких случаях задайте подходящий ViewingBox
явным образом.
Объекты преобразования могут использоваться в объектах преобразования. Если они анимированы, анимации, запущенные одновременно.
Анимированный преобразовывают объекты, “довольно дешевое” касающееся вычисление и хранение затрат. Для более комплексных графических объектов более эффективно использовать анимированное, преобразовывают объект, чем переопределить объект для каждой системы координат.
Функциональный op
позволяет извлекать графические объекты в объекте преобразования.
Атрибут | Цель | Значение по умолчанию |
---|---|---|
AffectViewingBox | влияние объектов на ViewingBox из сцены | TRUE |
Frames | количество систем координат в анимации | 50
|
Matrix3d | матрицы преобразования | [1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 ] |
Name | имя объекта графика (для браузера и легенды) | |
ParameterEnd | закончите значение параметра анимации | |
ParameterName | имя параметра анимации | |
ParameterBegin | начальное значение параметра анимации | |
ParameterRange | область значений параметра анимации | |
Shift | вектор сдвига | [0 , 0 , 0 ] |
ShiftX | вектор сдвига | 0
|
ShiftY | вектор сдвига | 0
|
ShiftZ | вектор сдвига | 0
|
TimeEnd | время окончания анимации | 10.0
|
TimeBegin | время начала анимации | 0.0
|
TimeRange | оперативный промежуток анимации | 0.0 .. 10.0
|
Для некоторых приложений это очень популярно, чтобы построить функцию в 3D вместе с проекцией ее линий контура на более низкую или верхнюю плоскость ограничения. MuPAD® не имеет никакой прямой опции для этого, но с plot::Transform3d
, возможно достигнуть того же эффекта. Предположим, что у вас есть функция на рассмотрении в plot::Function3d
объект:
f := plot::Function3d(sin(x*y)+cos(x^2-y), x=-3..3, y=-3..3, Submesh=[1,1]):
Чтобы построить линии контура вообще, используйте атрибут ZContours
. Постараться не изменять f
, создайте модифицированную копию с помощью plot::modify
:
plot(plot::modify(f, ZContours = [Automatic, 10]))
Чтобы только получить линии контура, измените еще несколько параметров: выключите поверхность и линии параметра. Затем добавьте высоту, окрашивающую в линии, и используйте plot::Transform3d
спроектировать их на плоский z = - 2.5. Наконец, постройте эти графики вместе с исходной функцией:
plot(f, plot::Transform3d([0, 0, -2.5], // shift vector [1, 0, 0, // transformation matrix 0, 1, 0, 0, 0, 0], plot::modify(f, Filled = FALSE, XLinesVisible = FALSE, YLinesVisible = FALSE, ZContours = [Automatic, 10], LineColorFunction = // height coloring ((x, y, z) -> [(z+2)/4, 0, (2-z)/4]))))
|
3D вектор сдвига: список с 3 записями. Также векторы сгенерированы
|
|
3D матрица преобразования: 3×3 матрица, 3×3 массив, список 3 списков или простого списка с 9 записями. Записи должны быть численными значениями или арифметическими выражениями параматери анимации
|
|
Постройте объекты |
|
Параметр анимации, заданный как |