график::

Поверхности в 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. Cf. Пример 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 строки видимы. Cf. Пример 3.

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

Если выражение/функция, r содержит особенности, он рекомендуется (но не строго необходимый), чтобы использовать атрибут ViewingBox, чтобы установить подходящее поле просмотра. Никакие такие меры предосторожности не необходимы для ϕ и θ, несмотря на то, что особенности в этих функциях могут привести к плохо представленным поверхностям – во многих случаях установка атрибутов, Mesh и/или AdaptiveMesh к более высоким значениям помогут. Cf. Пример 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, ϕ, θ эквивалентен атрибутам XFunction, YFunction, 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 графические примитивы