Bislit Cube Graph

Author

Eric W. Weisstein
September 1, 2022

This notebook downloaded from http://mathworld.wolfram.com/notebooks/GraphTheory/BislitCubeGraph.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/BislitCube.html.

©2022 Wolfram Research, Inc. except for portions noted otherwise

Embeddings

All

GraphData["BislitCube","Graph","All"]//StyleGraphs

Circular

GraphData["BislitCube","Graph","Circular"]//StyleGraphs

Planar

GraphData["BislitCube","Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData["BislitCube",{"RCN","CN"}]

GraphData["BislitCube","Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

GraphPlot@RotateGraph[MinimalCrossingGraph[GraphData["BislitCube"]]]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

RectilinearCrossingCount[g]

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData["BislitCube"]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData["BislitCube"],"OuterFace"->#]&/@faces

gs=Annotate[#,{VertexLabels->None,ImageSize->Tiny}]&/@{}

Tutte embedding construction 3

GraphPlot[RotateGraph[,2Pi/3]]

e[l__]:=Sequence@@Partition[{l},2,1]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},{#,#2+1/8}&@@@{{0,1/4},{-1/4,1/2},{0,1/2},{1/4,1/2},{0,1/2+Sqrt[3]/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[5,1,2,3,1,4,2,7,8,3],e[4,6,8,5,6,7]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

LCF

GraphData["BislitCube","LCF"]

GraphData["BislitCube","Graph","LCF"]//StyleGraphs

Perspective

GraphData["BislitCube","Graph","Perspective"]//StyleGraphs

UnitDistance

GraphData["BislitCube","UnitDistance"]

UnitDistanceGraphQ[GraphData["BislitCube"],Debug->True]//Timing

GraphData["BislitCube","Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData["BislitCube","Graph","Matchstick"]//StyleGraphs

Default embedding

g=Graph@GraphData["BislitCube","Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

3D All

GraphData["BislitCube","Graph",{"3D","All"}]

3D Polyhedron

GraphData["BislitCube","Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData["BislitCube","Polyhedron"]}]

3D Canonical

GraphData["BislitCube","Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData["BislitCube","Polyhedron"],Yellow,Sphere[]}]

3D Polyhedron construction

poly=GraphPolyhedron[GraphData["BislitCube","Graph","Planar"][[1]],-1]

Graphics3D[{FaceForm[Green,Red],poly}]

Graphics3D[poly2=Polyhedron[Normalize/@poly[[1]],poly[[2]]]]

(can=FindCanonicalPolyhedron[poly2,WorkingPrecision->1000,MaxIterations->5000,PrecisionGoal->20])//Timing

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

SimplePolyhedronQ[can]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

Matrices

GraphicsRow[GraphMatrixPlot[GraphData["BislitCube"]]]

Properties

Properties

GraphData["BislitCube",{"VertexCount","EdgeCount"}]

GraphData["BislitCube","Classes"]

(#->GraphData["BislitCube",#])&/@GraphData["Properties"]//ColumnForm

Construction

can=CanonicalForm/@Graphs[8];//Timing

ShowLabeledGraph[g=AddEdges[Graph["CubicalGraph"],{{3,5},{2,8}}]]

g

(g2=ChangeVertices[g,{{0,1},{0,0},{-.5,1.5},{-.5,.5},{1,1},{1,0},{.5,1.5},{.5,.5}}])//ShowGraph

g2//InputForm

RecognizeGraph[g]

Position[can,CanonicalForm[g],1,1]

GraphPlot3D[g,ViewPoint->{2,0,0},ViewVertical->{0,1,-.35}]

v=Rest/@GraphCoordinates3D[g,ViewPoint->{2,0,0},ViewVertical->{0,1,-.35}]

(g3=ChangeVertices[g,RotationMatrix[.335].#&/@v])//ShowGraph

GraphData

Classes

GraphClassString["BislitCube"]

String

GraphDataString[g2,
"Name"->"bislit cube",
"StandardName"->"BislitCube",
"AlternateStandardNames"->{{8,5373}},
"AlternateVertexCoordinates"->Vertices[g3],
TimeConstraint->5,
Debug->True
]