график::

Аффинное линейное преобразование 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 применяет аффинное линейное преобразование xAx+b к 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

Примеры

Пример 1

Для некоторых приложений это очень популярно, чтобы построить функцию в 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]))))

Параметры

b3d

3D вектор сдвига: список с 3 записями. Также векторы, сгенерированные matrix или массивами, приняты. Записи должны быть численными значениями или арифметическими выражениями параматери анимации a.

b3d эквивалентен атрибуту Shift.

A3d

3D матрица преобразования: 3×3 матрица, 3×3 массив, список 3 списков или простого списка с 9 записями. Записи должны быть численными значениями или арифметическими выражениями параматери анимации a.

A3d эквивалентен атрибуту Matrix3d.

obj1, obj2, …

Постройте объекты

a

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

Смотрите также

Функции MuPAD

MuPAD графические примитивы