график::
Обобщенные трубчатые графики (поверхности канала)
Блокноты 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] |
FillColorDirectionX | x-компонент направления цветовых переходов на поверхностях | 0 |
FillColorDirectionY | y-компонент направления цветовых переходов на поверхностях | 0 |
FillColorDirectionZ | z-компонент направления цветовых переходов на поверхностях | 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] |
LineColorDirectionX | x-компонент направления цветовых переходов на строках | 0 |
LineColorDirectionY | y-компонент направления цветовых переходов на строках | 0 |
LineColorDirectionZ | z-компонент направления цветовых переходов на строках | 1 |
Mesh | количество точек выборки | [60, 11] |
Name | имя объекта графика (для браузера и легенды) | |
ParameterEnd | закончите значение параметра анимации | |
ParameterName | имя параметра анимации | |
ParameterBegin | начальное значение параметра анимации | |
ParameterRange | область значений параметра анимации | |
PointsVisible | видимость точек mesh | FALSE |
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 значений |
Торус может чертиться как труба вокруг круга:
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))
Все поверхности вращения являются особыми случаями поверхностей канала:
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]))
Известная бутылка Клейна может быть получена из “контура отбрасывания” при помощи соответствующей параметризации радиуса:
plot(plot::Tube([6*cos(u)*(sin(u) - 1), 0, 14*sin(u)], 4 - 2*cos(u), u = -PI..PI))
Снова используя циклиду сверху, мы демонстрируем окраску поверхности канала:
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))
Еще одно изменение циклиды, мы используем непостоянный 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])
Кривая позвоночника, функция радиуса, функции управления цветом и т.д. могут быть анимированы, как обычно:
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))
|
Координаты кривой позвоночника: выражения с действительным знаком в
|
|
Радиус трубы: выражение с действительным знаком в
|
|
Параметр кривой: (индексируемый) идентификатор.
|
|
Область значений параметра кривой: выражения с действительным знаком в параметре анимации. |
|
Параметр анимации, заданный как |