график::

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

Блокноты 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 и его текущей вершины в качестве четвертого и пятого аргумента, repectively. Это позволяет окрашивать полигоны индивидуально:

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 графические примитивы

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