График::

Строит График в размещении сетки

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

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

Синтаксис

Graph::plotGridGraph(G, <PointSize = n>, <VerticesPerLine = n>, <VertexOrder = [n1, …,nm]>, <SpecialVertices = [v1, …,vn]>, <SpecialEdges = [e1, …,en]>, <EdgeColor = RGB>, <SpecialEdgeColor = RGB>, <SpecialVertexColor = RGB>, <Vertex1Color = RGB>, <Vertex2Color = RGB>)

Описание

Graph::plotGridGraph(G) возвращает график:: объект Scene, в котором вершины квадратные упорядоченный (самый верхний оставленный нижнему праву). Количество вершин на строку является этажом квадратного корня количества вершин. Первая вершина чертится в RGB:: Синий и второе в RGB:: Зеленый. Все другие вершины чертятся в RGB:: Красный. Ребра чертятся в RBG:: Красный. Ширина точек предопределена с 40. Если последняя строка будет содержать только одну вершину, она будет чертиться сосредоточенная посреди строки.

Graph::plotGridGraph(G, VerticesPerLine=n) возвращает график:: объекту Scene нравится описанный выше за одним исключением. В каждой строке существуют точно вершины n. Они появляются в отсортированном порядке в зависимости от их имени. Если последняя строка будет состоять только из одной вершины, этот будет сосредоточен.

Graph::plotGridGraph(G, VerticesPerLine=[v1..vn]) возвращает график:: объекту Scene нравится описанный выше за одним исключением. В строке 1 существуют точно помещенные вершины v1. В строке 2 и так далее существуют вершины v2. Последняя строка содержит вершины vn. Они появляются в отсортированном порядке в зависимости от их имени. Сумма чисел, заданных в VerticesPerLine, должна равняться количеству вершин в графике.

Graph::plotGridGraph(G, VerticesPerLine=n, VertexOrder=[v1..vn]) возвращает график:: объекту Scene нравится описанный выше за одним исключением. В каждой строке существуют точно вершины n. Они появляются в отсортированном порядке в зависимости от порядка, который был задан в VertexOrder. vi может состоять из любой заданной вершины, а также замена None. Тем не менее, количество вершин в G не должно превышать количество VerticesPerLine. Если последние синхронизации строчной развертки только одна вершина, это будет сосредоточено.

Примеры

Пример 1

Во-первых, маленький график создан и построен со значениями по умолчанию:

G := Graph([a, b, c, d], [[a, b], [b, c], [c, d], [d, a]]):
plot(Graph::plotGridGraph(G))

Теперь, мы обмениваемся этими двумя вершинами c и d. Распоряжением, данным выше, был [a, b, c, d]:

plot(Graph::plotGridGraph(G, VertexOrder = [a, b, d, c]))

Если только одна вершина будет помещена в последнюю строку, она будет сосредоточена:

plot(Graph::plotGridGraph(G, VertexOrder = [a, b, d, c],
                          VerticesPerLine = 3))

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

plot(Graph::plotGridGraph(G, VertexOrder = [a, b, d, c],
                          VerticesPerLine = [3, 1]))

Теперь мы переходим к сути дела, почему стандартная программа графика получила имя Сетка. None замены может использоваться каждый раз, когда место должно быть пропущено. Думайте о небольшом количестве чертежной бумаги со шкатулками. Размещение является точно тем же самым. В этом случае это состояло бы из 3 шкатулок в каждой строке. Ни один не оставляет его незаполненный, в то время как вершина из Графика чертится. Поскольку первая шкатулка пуста, первый цвет не использован, также. Вершина a, который помещается во вторую шкатулку, чертится, как предопределено в Vertex2Color (RGB::Green):

plot(Graph::plotGridGraph(G, 
       VertexOrder = [None, a,    None, 
                      b,    None, c,
                      None, d,    None], 
       VerticesPerLine = 3))

Пример 2

Со знанием, полученным до сих пор, возможно стать более глубоким в искусство создания объектов. Одни из самых полезных выходных параметров являются одним дерева. Таким образом График создается, чтобы использоваться для древовидного вывода:

TreeGraph := Graph([a, b, c, d, e, f, g, h, i, j, k, l],
             [[a, b], [a, c], [b, d], [b, e], [c, f], [c, g],
              [d, h], [e, i], [e, j], [f, k], [g, l]], Directed):

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

vOrder := 
[None, None, None, None, None, None,
 a,    None, None, None, None, None,
 None, None, b,    None, None, None,
 None, None, None, c,    None, None,
 None, d,    None, None, e,    None,
 None, f,    None, None, g,    None,
 h,    None, None, i,    None, j,   
 None, None, k,    None, None, l    ]:

Теперь пора взглянуть на то, как дерево смотрит:

plot(Graph::plotGridGraph(TreeGraph,
              VerticesPerLine = 12, VertexOrder = vOrder))

Теперь мы хотим видеть путь от вершины a к Vertexb. Для этого примера это будет дано явным образом. Для больших графиков рекомендуется одна из процедур shortestPath:

specialPath := [[a, c], [c, f], [f, k]]:

Наконец мы чертим путь в Графике и имеем хороший обзор о пути, который это берет:

plot(Graph::plotGridGraph(TreeGraph,
         VerticesPerLine = 12, VertexOrder = vOrder, 
         SpecialEdges = specialPath, SpecialEdgeColor = RGB::Blue))

Пример 3

Чтобы показать, что может быть сделано с более подробными и комплексными примерами, маленькая внешняя поверхность чертится (внимательно рассмотрели ath Вершины, которые не чертятся, потому что цвет выбран к RBG:: Белый и таким образом равняется цвету фона). Additionaly, “глаза” были окрашены по-другому, таким образом, использование SpecialVertexColor могло быть представлено:

Smile := Graph([1,2,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
               21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],
         [[1,4],[2,5],[4,5],[7,4],[5,8],[7,10],[9,10],[10,14],[9,13],
          [13,19],[19,20],[20,14],[14,15],[15,16],[16,17],[17,11],
          [ 8,11],[11,12],[12,18],[18,22],[22,21],[21,17],[21,24],
          [24,28],[28,32],[32,36],[36,35],[35,34],[34,33],[33,29],
          [29,25],[25,23],[23,20],[26,30],[30,31],[31,27]]):
plot(
  Graph::plotGridGraph(Smile, VerticesPerLine = 10, 
     VertexOrder = [
       None,None,None,   1,None,None,   2,None,None,None,
       None,None,None,None,   4,   5,None,None,None,None,
       None,None,None,   7,None,None,   8,None,None,None,
       None,   9,  10,None,None,None,None,  11,  12,None,
         13,None,None,  14,  15,  16,  17,None,None,  18,
       None,  19,  20,None,None,None,None,  21,  22,None,
       None,None,  23,None,None,None,None,  24,None,None,
       None,None,  25,  26,None,None,  27,  28,None,None,
       None,None,  29,None,  30,  31,None,  32,None,None,
       None,None,None,  33,  34,  35,  36,None,None,None],
     SpecialEdges = [[13,9],[9,10],[10,14],[14,20],[20,19],[19,13],
       [14,15],[15,16],[16,17],[17,21],[21,22],[22,18],[18,12],[12,11],
       [11,17]],
     SpecialVertices = [1,2,4,5,7,8,23,24,25,26,27,28,29,30,31,
       32,33,34,35,36], 
     VertexColor = RGB::White, 
     SpecialVertexColor = RGB::Green, EdgeColor = RGB::Green, 
     SpecialEdgeColor = RGB::Black)
)

Пример 4

Следующим примером является полный график, чертивший с вершинами, упорядоченными в квадрате так, чтобы все вершины могли быть соединены в квадрате:

CG := Graph::createCompleteGraph(30):
plot(Graph::plotGridGraph(CG,
       VerticesPerLine = [8, 2, 2, 2, 2, 2, 2, 2, 8], 
       Vertex1Color = RGB::Red, Vertex2Color = RGB::Red))

Используя значения по умолчанию в каждой строке вершины чертятся и взгляды графика, не столь “плотные” как выше одного:

plot(Graph::plotGridGraph(CG, Vertex1Color = RGB::Red, 
                          Vertex2Color = RGB::Red))

Пример 5

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

Shield := Graph([1, 2, 3, 4, 5, 6, 7, 8, 9],
          [[1, 2], [1, 8], [2, 9], [8, 9], [3, 5], [4, 5],
           [5, 6], [5, 7], [3, 6], [6, 7], [3, 4], [4, 7]]):
plot(Graph::plotGridGraph(Shield, Vertex1Color = RGB::White, 
       Vertex2Color = RGB::White, VertexColor = RGB::White,
       VerticesPerLine = 7, 
       VertexOrder = [
           1,None,None,None,None,None,   2,
        None,None,None,   3,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,   4,None,   5,None,   6,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,None,None,None,None,
        None,None,None,   7,None,None,None,
           8,None,None,None,None,None,   9],
       SpecialVertices = [3, 4, 5, 6, 7], 
       SpecialVertexColor = RGB::Blue,
       SpecialEdges = [[3, 5], [4, 5], [5, 6], [5, 7],
                       [3, 6], [6, 7], [3, 4], [4, 7]],
       SpecialEdgeColor = RGB::Blue))

Параметры

G

Graph

n

a positive integer

[n1, …,nm]

a list of positive integers

[v1, …,vn]

a list of vertices

[e1, …,en]

a list of edges

Опции

PointSize

Задает толщину, в которой чертятся точки. Значение по умолчанию равняется 40.

VerticesPerLine

Если задано как один номер, это много вершин помещаются в каждую строку. Если задано как список, количество вершин на строку читается из списка. Если вершины заданы как список, количество вершин должно совпадать или с количеством вершин, заданных в графике, или, если задано, номером, заданным в VertexOrder.

VertexOrder

Задает порядок, в который должны быть помещены вершины. Это запускается в верхнем левом углу и концах в нижнем правом углу. Количество заданных вершин должно совпадать с количеством вершин, заданных в графике или сумме вершин, заданных в VerticesPerLine.

SpecialVertices

Задает набор вершин. Эта опция имеет только смысл, если используется с опцией SpecialVertexColor.

SpecialEdges

Задает набор ребер. Эта опция имеет только смысл, если используется с опцией SpecialEdgeColor.

EdgeColor

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

SpecialEdgeColor

Задает цвет, который будет использоваться, чтобы чертить набор заданных ребер. Эта опция имеет только смысл, если используется с опцией SpecialEdges

VertexColor

Задает цвет, с которым можно чертить вершины. Если эта опция задана, первые две вершины установлены в этот цвет, также. Они должны быть заданы через Vertex1Color и Vertex2Color к отличному их снова. Значением по умолчанию является RGB:: Красный

SpecialVertexColor

Задает цвет, который будет использоваться, чтобы чертить набор заданных вершин. Эта опция имеет только смысл, если используется с опцией SpecialVertices

Vertex1Color

Задает цвет, с которым можно чертить верхнюю левую (первую) вершину с (стартовая вершина). Если VertexOrder будет содержать None для этой вершины, он будет пропущен. Значением по умолчанию является RGB:: Синий

Vertex2Color

Задает цвет, с которым можно чертить вторую вершину с. Если VertexOrder будет содержать None для этой вершины, он будет пропущен. Значением по умолчанию является RGB:: Зеленый

Возвращаемые значения

График::.