plot::Waterman

Многогранники лодочника

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

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

Синтаксис

plot::Waterman(r, <a = amin .. amax>, options)

Описание

plot::Waterman(r) создает многогранник Лодочника радиуса r.

Многогранники Уотермена, изобретенные приблизительно 1 990 Стивом Уотерменом, формируют обширное семейство многогранников. У некоторых из них есть много хороших свойств как несколько симметрий или очень интересные и регулярные формы. Некоторый другой - только набор поверхностей, сформированных из неправильных выпуклых многоугольников.

Многогранники лодочника следуют из исследования шаров в гранецентрированной кубической близкой упаковке (который является одной из двух самых плотных упаковок одинаково размерных шаров на 3D пробеле, согласно Догадке Кеплера, проверенной Хейлзом и Фергюсоном, 1997-2005). Единственный слой сфер (радиуса) в этой упаковке выглядит так:

Близкие результаты упаковки размещения нескольких из этих слоев друг по другу, переключенному, чтобы оптимально заполнить разрывы (в почти совершенно также вашем продуктовом магазине помещает яблоки и демонстрирующиеся апельсины):

Учитывая радиус r и центр c (который мы позволяем значению по умолчанию к [0, 0, 0]), теперь рассмотрите все те центры сфер в этой упаковке, которые попадают в сферу радиуса r вокруг c:

Выпуклая оболочка этих точек является многогранником Лодочника данного радиуса и центра:

Атрибуты

АтрибутЦельЗначение по умолчанию
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
Centerцентр объектов, центр вращения[0, 0, 0]
CenterXцентр объектов, центр вращения, x-компонент0
CenterYцентр объектов, центр вращения, y-компонент0
CenterZцентр объектов, центр вращения, z-компонент0
Colorосновной цветRGB::SafetyOrange
Filledзаполненные или прозрачные области и поверхностиTRUE
FillColorцвет областей и поверхностейRGB::SafetyOrange
FillColor2второй цвет областей и поверхностей для цветных смешенийRGB::CornflowerBlue
FillColorTypeтипы заполнения поверхностиFlat
FillColorFunctionфункциональная область / поверхностная окраска 
FillColorDirectionнаправление цветовых переходов на поверхностях[0, 0, 1]
FillColorDirectionXx-компонент направления цветовых переходов на поверхностях0
FillColorDirectionYy-компонент направления цветовых переходов на поверхностях0
FillColorDirectionZz-компонент направления цветовых переходов на поверхностях1
Framesколичество систем координат в анимации50
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
LineColorцвет линийRGB::Grey40.[0.4]
LineWidthширина линий0.25
LineColor2цвет линийRGB::DeepPink
LineStyleтело, подчеркнутые штриховой линией или пунктирные линии?Solid
LinesVisibleвидимость линийTRUE
LineColorTypeтипы окраски линииFlat
LineColorFunctionфункциональная окраска линии 
LineColorDirectionнаправление цветовых переходов на линиях[0, 1, 1]
LineColorDirectionXx-компонент направления цветовых переходов на линиях0
LineColorDirectionYy-компонент направления цветовых переходов на линиях1
LineColorDirectionZz-компонент направления цветовых переходов на линиях1
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
PointSizeразмер точек1.5
PointStyleстиль презентации точекFilledCircles
PointsVisibleвидимость точек meshFALSE
Radiusрадиус кругов, сферы и т.д. 
Shadingсглаживайте цветное смешение поверхностейSmooth
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 компонент 
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE

Примеры

Пример 1

С увеличивающимся радиусом многогранники Лодочника становятся еще ближе к сферам:

plot(plot::Waterman(r, r=0..10,
                    PointsVisible, PointSize=1,
                    LineColor=RGB::Black,
                    Color=RGB::Red.[0.75]),
     plot::Sphere(r, [0,0,0], r=0..10,
                  Color=RGB::Yellow.[0.3]),
     CameraDirection=[2,10,1])

Пример 2

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

plot(plot::Waterman(5, Center=[0,0,0]))

plot(plot::Waterman(5, Center=[0,0,1]))

Чтобы перевести или масштабировать многогранник Лодочника, используйте plot::Translate3d и plot::Scale3d:

n := 3:
r := i -> 3/2+sqrt(i+1):
plot(plot::Translate3d([i mod n, i div n, 0],
               plot::Scale3d([1/(3*r(i)) $ 3],
                  plot::Waterman(r(i), Color=RGB::random())))
     $ i = 0..n^2-1, Axes=None)

Пример 3

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

plot(plot::Waterman(5, Center=[a/PI, cos(a), 0],
                    a=0..2*PI),
     AnimationStyle=BackAndForth, CameraDirection=[0,0.1,1])

Пример 4

LineColorFunction и FillColorFunction атрибуты могут быть установлены в функции, которые получают индексы в настоящее время нарисованного surfacepolygon и его текущей вершины в качестве четвертого и пятого аргумента, соответственно. Это позволяет окрашивать многоугольники индивидуально:

colors := [RGB::random() $ i = 1..42]:
plot(plot::Waterman(5, FillColorFunction=((x,y,z,i) -> colors[i])))

Другой способ получить произвольные цвета, которые остаются постоянными для каждого многоугольника, состоит в том, чтобы использовать процедуру с option remember:

col := 
proc(n)
  option remember;
begin
  RGB::fromHSV([360*frandom(), 1, 1]);
end:
plot(plot::Waterman(7, FillColorFunction=((x,y,z,i) -> col(i))))

Параметры

r

Арифметическое выражение: радиус многогранника (см. ниже для деталей).

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

a

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

Алгоритмы

plot::Waterman использование plot::hull (и поэтому, qhull код Центра Геометрии), чтобы вычислить выпуклую оболочку координат. Большая часть остающегося кода была внесена Миреком Майевским.

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

Функции MuPAD

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

Для просмотра документации необходимо авторизоваться на сайте