plot::Spherical

Поверхности в 3D, параметризованном в сферических координатах

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

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

Синтаксис

plot::Spherical([r, ϕ, θ], u = umin .. umax, v = vmin .. vmax, <a = amin .. amax>, options)

Описание

plot::Spherical создает поверхности, параметризованные в сферических координатах.

Поверхность, данная отображением (“параметризация”), является набором всех точек изображений

{(r(u,v)ϕ(u,v)θ(u,v))|u[umin,umax ],v[vmin,vmax ]}

в сферических координатах, которые переводят в обычные “Декартовы” координаты как

x=rпотому что(ϕ)sin(θ)y=rsin(ϕ)sin(θ)x=rпотому что(θ)

r упоминается как “радиус”, ϕ как “азимутальный угол”, и θ известен как “угол в полярных координатах”.

Функции r, ϕ, θ оценен на регулярной равноотстоящей mesh точек выборки в u-v плоскость. Эта mesh определяется атрибутами UMesh, VMesh. По умолчанию, атрибут AdaptiveMesh = 0 установлен, т.е. никакое адаптивное улучшение равноотстоящей mesh не используется.

Если стандартная mesh не достаточна, чтобы произвести достаточно подробный график, можно или увеличить значение UMesh, VMesh или USubmesh, VSubmesh, или набор AdaptiveMesh = n с некоторым (маленьким) положительным целочисленным n. При необходимости до 2n - 1 дополнительная точка помещается в каждое направление u-v плоскость между смежными точками начальной равноотстоящей mesh. См. Пример 3.

“Координатные линии” (“линии параметра”) являются кривыми на поверхности.

Фраза “ULines” отсылает к кривым (r (u, v 0), ϕ (u, v 0), θ (u, v 0)) параметром u, запускающийся от umin к umax, в то время как v 0 является некоторым фиксированным значением от интервала [vmin, vmax].

Фраза “VLines” отсылает к кривым (r (u 0, v), ϕ (u 0, v), θ (u 0, v)) параметром v, запускающийся от vmin к vmax, в то время как u 0 является некоторым фиксированным значением от интервала [umin, umax].

По умолчанию кривые параметра отображаются. Они могут быть выключены путем определения ULinesVisible = FALSE и VLinesVisible = FALSE, соответственно.

Координатными линиями управляет ULinesVisible = TRUE/FALSE и VLinesVisible = TRUE/FALSE укажите на равноотстоящую mesh в u-v плоский набор через UMesh, VMesh атрибуты. Если mesh усовершенствована USubmesh, VSubmesh атрибутами, или адаптивным механизмом управляет AdaptiveMesh = n, никакие дополнительные линии параметра не проведены.

Насколько числовое приближение поверхности затронуто, настройки

UMesh = nu, VMesh = nv, USubmesh = mu, VSubmesh = mv

и

UMesh = (nu - 1) (mu + 1) + 1, VMesh = (nv - 1) (mv + 1) + 1,

USubmesh = 0, VSubmesh = 0

эквивалентны. Однако в первой установке, nu линии параметра отображаются в направлении u, в то время как в последней установке (nu - 1)*(mu + 1) + 1 линии параметра отображаются. См. Пример 3.

Используйте Filled = FALSE получить каркасное представление поверхности.

Если выражение/функция, r содержит сингулярность, он рекомендуется (но не строго необходимый), чтобы использовать атрибут ViewingBox установить подходящее поле просмотра. Никакие такие меры предосторожности не необходимы для ϕ и θ, несмотря на то, что сингулярность в этих функциях может привести к плохо представленным поверхностям – во многих случаях установка атрибутов Mesh и/или AdaptiveMesh к более высоким значениям поможет. См. Пример 6.

Атрибуты

АтрибутЦельЗначение по умолчанию
AdaptiveMeshадаптивная выборка0
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
Colorосновной цветRGB::Red
Filledзаполненные или прозрачные области и поверхностиTRUE
FillColorцвет областей и поверхностейRGB::Red
FillColor2второй цвет областей и поверхностей для цветных смешенийRGB::CornflowerBlue
FillColorTypeтипы заполнения поверхностиDichromatic
FillColorFunctionфункциональная область / поверхностная окраска 
FillColorDirectionнаправление цветовых переходов на поверхностях[0, 0, 1]
FillColorDirectionXx-компонент направления цветовых переходов на поверхностях0
FillColorDirectionYy-компонент направления цветовых переходов на поверхностях0
FillColorDirectionZz-компонент направления цветовых переходов на поверхностях1
Framesколичество систем координат в анимации50
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?TRUE
LineColorцвет линийRGB::Black.[0.25]
LineWidthширина линий0.35
LineColor2цвет линийRGB::DeepPink
LineStyleтело, подчеркнутые штриховой линией или пунктирные линии?Solid
LineColorTypeтипы окраски линииFlat
LineColorFunctionфункциональная окраска линии 
LineColorDirectionнаправление цветовых переходов на линиях[0, 0, 1]
LineColorDirectionXx-компонент направления цветовых переходов на линиях0
LineColorDirectionYy-компонент направления цветовых переходов на линиях0
LineColorDirectionZz-компонент направления цветовых переходов на линиях1
Meshколичество точек выборки[25, 25]
MeshVisibleвидимость неправильных линий mesh в 3DFALSE
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
PointSizeразмер точек1.5
PointStyleстиль презентации точекFilledCircles
PointsVisibleвидимость точек meshFALSE
Submeshплотность подmesh (дополнительные точки выборки)[0, 0]
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0.. 10.0
Titleобъектный заголовок 
TitleFontшрифт объектных заголовков[" sans-serif ", 11]
TitlePositionположение объектных заголовков 
TitleAlignmentвыравнивание по горизонтали заголовков w.r.t. их координатыCenter
TitlePositionXположение объектных заголовков, x компонент 
TitlePositionYположение объектных заголовков, y компонент 
TitlePositionZположение объектных заголовков, z компонент 
ULinesVisibleвидимость линий параметра (u линии)TRUE
UMaxокончательное значение параметра “u” 
UMeshколичество точек выборки для параметра “u”25
UMinначальное значение параметра “u” 
UNameимя параметра “u” 
URangeобласть значений параметра “u” 
USubmeshплотность дополнительных точек выборки для параметра “u”0
VLinesVisibleвидимость линий параметра (v линии)TRUE
VMaxокончательное значение параметра “v” 
VMeshколичество точек выборки для параметра “v”25
VMinначальное значение параметра “v” 
VNameимя параметра “v” 
VRangeобласть значений параметра “v” 
VSubmeshплотность дополнительных точек выборки для параметра “v”0
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE
XContoursлинии контура в постоянных x значениях[]
XFunctionфункция для x значений 
YContoursлинии контура в постоянных y значениях[]
YFunctionфункция для y значений 
ZContoursлинии контура в постоянных z значениях[]
ZFunctionфункция для z значений 

Примеры

Пример 1

Сферические координаты получают свое имя от того, что, с постоянным радиусом, параметризовать сферу:

plot(plot::Spherical([1, u, v], u = 0..2*PI, v = 0..PI))

plot(plot::Spherical([1, u, v], u = 0..PI, v = 0..2*PI))

Пример 2

Следующий график демонстрирует, что сферические графики могут показать сингулярные поверхностные функции даже с дифференцируемой параметризацией; в этом случае оправа в середине является на самом деле границей и лево-и правой части:

plot(plot::Spherical(
       [(phi^2*thet), phi, thet^2],
       phi = -PI..PI, thet=0..0.25*PI,
       Mesh = [40,40], Submesh=[3,0],
       Color = [0.9$3], FillColorType=Flat, LineColor=[0.8$3]),
     Axes = None, CameraDirection = [1, 0, 0])

Пример 3

Для колеблющейся параметризации или других поверхностей с мелкими деталями, mesh по умолчанию может быть слишком крупной. Как указано выше, три атрибута Mesh, Submesh, и AdaptiveMesh может использоваться в улучшении графиков этих объектов.

Во-первых, обратите внимание, что следующий график не представляется с достаточным разрешением:

surf := plot::Spherical([4+sin(5*(u+v)), u, v], u = 0..PI, v = 0..2*PI):
plot(surf, Axes = None)

Установка Mesh к дважды его значению по умолчанию мы получаем более сглаженную поверхность с дополнительными линиями параметра:

surf::Mesh := [50, 50]:
plot(surf, Axes = None)

Почти тот же эффект, но без дополнительных линий параметра, может быть достигнут установкой Submesh = [1, 1]:

delete surf::Mesh:
surf::Submesh := [1, 1]:
plot(surf, Axes = None)

Также возможно использовать адаптивное улучшение mesh в областях, где соседние закрашенные фигуры имеют угол больше чем 10 градусов. В то время как эта опция в основном полезна для поверхностей, которые требуют улучшения только в некоторых частях, это, конечно, выполнимо с графиком как это, также (но увеличивающийся Submesh быстрее):

delete surf::Submesh:
surf::AdaptiveMesh := 2:
plot(surf, Axes = None)

Пример 4

Функция радиуса r может также взять отрицательные величины. С функциями радиуса изменения знака часто самопересекаются сферические поверхности:

plot(plot::Spherical(
       [sin(phi^2*thet), phi, thet],
         phi = -PI..PI, thet = 0..0.5*PI,
       Mesh = [40, 20], Submesh=[0, 3]))

Пример 5

Угловые функции (ϕ и θ) не ограничиваются в значении:

plot(plot::Spherical([r, r, thet], r = 0..9, thet = -PI..PI,
                     Mesh = [60, 60], Filled = FALSE),
     Axes = None, 
     plot::Camera([100, 100, 50], [0,0,0], 0.1))

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

Пример 6

Сингулярность в функции радиуса эвристическим образом обработана:

plot(plot::Spherical([1/(u + v), u, v], u = 0..PI, v = 0..PI))

Однако эвристика перестала работать для некоторых примеров:

plot(plot::Spherical([1/(u + v)^2, u, v], u = 0..PI, v = 0..PI))

В случаях как это мы рекомендуем установить поле просмотра явным образом с атрибутом ViewingBox:

plot(plot::Spherical([1/(u + v)^2, u, v], u = 0..PI, v = 0..PI),
     ViewingBox = [-1/10..0.7, 0..1/4, -0.2..0.3])

Пример 7

Путем устанавливания одного из параметра располагается к вырожденному интервалу, возможно чертить кривые на сферической поверхности:

f := (u, v) -> [1 + u/10, u, v]:
surface := plot::Spherical(f(u,v), u = 0..2, v = 0..2,
                           FillColor = RGB::Grey, FillColorType = Flat):
curve := plot::Spherical(f((1 + sin(u)), (1 + sin(2*u))),
                         u = 0..2*PI, v = 0..0, Mesh = [200, 1],
                         LineColor = RGB::Red, LineWidth = 1):
plot(surface, curve)

Пример 8

В то время как преобразование от сферического до Декартовых координат не является обратимым, существует по крайней мере два способа выразить каждую Декартову точку в сферических координатах, и любая поверхность, parameterizable в Декартовых координатах, может также быть построена с помощью plot::Spherical:

trans := linalg::ogCoordTab[Spherical, InverseTransformation]:
spher := trans(x, y, sin(x^2+y^2))

plot(plot::Spherical(spher, x = -2..2, y = -2..2))

Пример 9

Наконец, что не менее важно, мы можем также произвести анимации с помощью plot::Spherical. Следующее показывает деформацию от общего сферического объекта до сферы. Мы использовали параметр анимации a в аргументе для синусоидальной функции, чтобы получить небольшое вращение во время процесса деформации:

plot(
  plot::Spherical(
   [1+a*sin(3*Phi+a)*sin(2*Theta),Phi,Theta],
   Theta=0..PI, Phi=0..2*PI, a=5..0
  )
)

Параметры

r, ϕ, θ

Координатные функции: арифметические выражения или piecewise объекты в зависимости от поверхностных параметров u, v и параметр анимации a. В качестве альтернативы процедуры, которые принимают 2 входных параметра u, v или 3 входных параметра u, v, a и возвращают действительное численное значение, когда входные параметры являются числовыми.

r, ϕ, θ эквивалентны атрибутам XFunctionYFunction ZFunction .

u

Первый поверхностный параметр: идентификатор или индексируемый идентификатор.

u эквивалентно атрибуту UName.

umin .. umax

Область значений графика для параметра u: umin, umax должны быть числовые действительные значения или выражения параметра анимации a.

umin .. umax эквивалентно атрибутам URange, UMin, UMax.

v

Второй поверхностный параметр: идентификатор или индексируемый идентификатор.

v эквивалентно атрибуту VName.

vmin .. vmax

Область значений графика для параметра v: vmin, vmax должны быть числовые действительные значения или выражения параметра анимации a.

vmin .. vmax эквивалентно атрибутам VRange, VMin, VMax.

a

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

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

Функции MuPAD

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