plot::Tube

Обобщенные трубчатые графики (поверхности канала)

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

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

Синтаксис

plot::Tube([x, y, z], <r>, t = tmin .. tmax, <a = amin .. amax>, options)

Описание

plot::Tube создает обобщенные трубчатые графики, известные как “поверхности канала”, с особыми случаями, известными как “поверхность трубы”, “передают поверхностные” или “трубчатые поверхности по каналу”.

Интуитивно, поверхности канала являются пространственными кривыми с толщиной. Более официально, канал появляются plot::Tube([x(t), y(t), z(t)], r(t), t = t_min..t_max) конверт сфер с центром [x (t), y (t), z (t)] и радиус r (t), т.е. толщина кривой может меняться в зависимости от параметра кривой t.

Атрибуты

АтрибутЦельЗначение по умолчанию
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
AngleEndконец угловой области значений2*PI
AngleBeginначните угловой области значений0
AngleRangeугловая область значений0 .. 2*PI
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
LineColorTypeтипы окраски линииFlat
LineColorFunctionфункциональная окраска линии 
LineColorDirectionнаправление цветовых переходов на линиях[0, 0, 1]
LineColorDirectionXx-компонент направления цветовых переходов на линиях0
LineColorDirectionYy-компонент направления цветовых переходов на линиях0
LineColorDirectionZz-компонент направления цветовых переходов на линиях1
Meshколичество точек выборки[60, 11]
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
PointsVisibleвидимость точек meshFALSE
RadiusFunctionрадиус графика трубы1/10
Shadingсглаживайте цветное смешение поверхностейSmooth
Submeshплотность подmesh (дополнительные точки выборки)[0, 1]
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”60
UMinначальное значение параметра “u” 
UNameимя параметра “u” 
URangeобласть значений параметра “u” 
USubmeshплотность дополнительных точек выборки для параметра “u”0
VLinesVisibleвидимость линий параметра (v линии)TRUE
VMeshколичество точек выборки для параметра “v”11
VSubmeshплотность дополнительных точек выборки для параметра “v”1
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE
XFunctionфункция для x значений 
YFunctionфункция для y значений 
ZFunctionфункция для z значений 

Примеры

Пример 1

Торус может чертиться как труба вокруг круга:

plot(plot::Tube([cos(t), sin(t), 0], 0.4,
     t = 0..2*PI))

Варьируясь диаметр трубы, мы деформируем торус в циклиду:

plot(plot::Tube([cos(t), sin(t), 0], 0.4 + 0.3*cos(t),
     t = 0..2*PI))

Пример 2

Все поверхности вращения являются особыми случаями поверхностей канала:

plot(plot::Scene3d(plot::XRotate(sin(u), u = 0..10)),
     plot::Scene3d(plot::ZRotate(sin(u), u = 0..10)),
     plot::Scene3d(plot::Tube([u, 0, 0], sin(u), u = 0..10)),
     plot::Scene3d(plot::Tube([0, 0, sin(u)], u, u = 0..10)),
     Width = 180 * unit::mm)

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

plot(plot::Tube([0, 0, sin(u)], u, u = 0..10,
                Mesh = [20, 20]))

Пример 3

Известная бутылка Клейна может быть получена из “контура отбрасывания” при помощи соответствующей параметризации радиуса:

plot(plot::Tube([6*cos(u)*(sin(u) - 1), 0, 14*sin(u)],
                4 - 2*cos(u), u = -PI..PI))

Пример 4

Снова используя циклиду сверху, мы демонстрируем окраску поверхности канала:

color := (t, phi) -> RGB::fromHSV([(t+sin(4*phi))*180/PI, 1, 1]):
plot(plot::Tube([sin(t), cos(t), 0], 0.4 + 0.3*cos(t), t=0..2*PI,
                FillColorFunction = color))

Пример 5

Еще одно изменение циклиды, мы используем непостоянный AngleRange “нарезать” его:

plot(plot::Tube([sin(t), cos(t), 0], 0.4 - 0.3*sin(t), t=0..2*PI,
                AngleRange = 0 .. 2*PI*sin(abs(t-PI/2)/2)),
     Axes = None, CameraDirection = [14, 1, 5])

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

braid := i ->
   plot::Tube([sin(u), cos(u), 0], 0.2, u=0..2*PI,
              AngleRange = i*PI/3 + 3*u .. i*PI/3 + 3*u + 1/2,
              Color = RGB::EmeraldGreen, Mesh = [60, 2]):
torus := plot::Tube([sin(u), cos(u), 0], 0.18, u=0..2*PI,
                    Color = RGB::BlueLight,
                    Name = "Torus"):
plot(braid(i) $ i = 0..5,
     torus,
     ULinesVisible = FALSE, VLinesVisible = FALSE,
     FillColorType = Flat,
     Axes = None, CameraDirection = [0, 7, 10])

Пример 6

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

plot(plot::Tube([sin(t)*sin(a), cos(t)*cos(a), sin(a)],
                0.4 - 0.3*sin(t-a),
                t = 0..2*PI, a = 0..2*PI,
                Frames = 20, TimeRange = 0..5))

Пример 7

Обратите внимание на то, что в присутствии резкого поворота (относительно диаметра трубы), поверхность построила мой plot::Tube может самопересечься:

plot(plot::Tube([x, 0, x^2], 1.2, x = -1.4..1.4,
                Mesh = [20, 10]),
     Axes = None, CameraDirection = [-3, 1, 2])

Этот эффект неизбежен. Повороты Sharp также вызывают другой эффект, которого можно избежать путем повышения плотности mesh: труба не может следовать за кривой достаточно быстро:

plot(plot::Tube([sin(x^2), x, 0], x = -5..0))

В этой ситуации можно установить USubmesh к положительному значению, чтобы запросить дополнительные функциональные оценки:

plot(plot::Tube([sin(x^2), x, 0], x = -5..0, USubmesh = 5))

Параметры

xYZ

Координаты кривой позвоночника: выражения с действительным знаком в t и параметр анимации.

xYZ эквивалентны атрибутам XFunctionYFunction ZFunction .

r

Радиус трубы: выражение с действительным знаком в t и параметр анимации. Значением по умолчанию является константа.

r эквивалентно атрибуту RadiusFunction.

t

Параметр кривой: (индексируемый) идентификатор.

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

tmin .. tmax

Область значений параметра кривой: выражения с действительным знаком в параметре анимации.

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

a

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

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

Функции MuPAD

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