Hemicubical Graph

Author

Eric W. Weisstein
September 2, 2022

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

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

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

Base polyhedron

Graphics3D[{Opacity[.8],PolyhedronData["Hemicube","Polyhedron"]},Boxed->False]

Properties

GraphData["HemicubicalGraph","StandardNames"]

GraphData["HemicubicalGraph",{"V","E","F"}]

GraphData["HemicubicalGraph","DualGraph","Name"]

Definition

Michon

http://nbarth.net/notes/src/notes-calc-raw/others/X-numericana/polyhedra.htm#hexahedra

Wikipedia

https://en.wikipedia.org/wiki/Hexahedron#Convex,_Others

Embeddings

GraphData["HemicubicalGraph","StandardName"]

Primary

GraphData["HemicubicalGraph"]//StyleGraphs[#,ImageSize->Small]&

Default embedding

GraphPlot@GraphData["HemicubicalGraph","Edges"]

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

RecognizeGraph[g]

All

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

Embedding types

GraphDataEmbeddings[GraphData["HemicubicalGraph","EdgeList"]]

Degenerate

GraphData["HemicubicalGraph","Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@%

g=HighlightGraph[GraphData["HemicubicalGraph","Graph",{"Labeled","Degenerate"}][[1]],1\[UndirectedEdge]6]

EdgeList[g]

Planar

GraphData["HemicubicalGraph","Planar"]

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

MinimalCrossing

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

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

RectilinearCrossingCount/@%

MinimalCrossing construction

g=RotateGraph[MinimalCrossingGraph[GraphData["HemicubicalGraph"],"CrossingNumber"->-1]]

RecognizeGraph[g]

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

RecognizeGraph[g]

RectilinearCrossingCount[g]

Tutte embeddings

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

Tally[ReverseSort[Length/@faces]]

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

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

Tutte embedding construction 4 #1

GraphPlot[RotateGraph[,-Pi/4]]

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

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

RecognizeGraph[g]

Tutte embedding construction 4 #2

GraphPlot[RotateGraph[]]

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

RecognizeGraph[g]

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}&@@@{{-1/4,1/4},{1/4,1/4},{-1/4,3/4},{1/4,3/4}}];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,4,5,2],e[4,6,3,7,5],{6,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Circulant

Cases[GraphData["HemicubicalGraph","StandardNames"],{"Circulant",_}]

GraphData["HemicubicalGraph","Graph","Circulant"]//StyleGraphs

Halin

GraphData["HemicubicalGraph","Halin"]

GraphData["HemicubicalGraph","Graph","Halin"]//StyleGraphs

LCF

GraphData["HemicubicalGraph","LCF"]

GraphData["HemicubicalGraph","LCFSignature"]

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

UnitDistance

GraphData["HemicubicalGraph","UnitDistance"]

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

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

Matchstick

GraphData["HemicubicalGraph","Matchstick"]

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

3D default

Graph3D[GraphData["HemicubicalGraph","Edges"]]

3D All

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

3D UnitDistance

GraphData["HemicubicalGraph","Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData["HemicubicalGraph","Polyhedral"]

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

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

3D Canonical

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

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

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData["HemicubicalGraph"],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

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

(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]

Construction

3D from Hemicube

hemicube=Polyhedron[];

Graphics3D[{Opacity[.8],hemicube}]

g=Graph[Range[6],UndirectedEdge@@@PolyhedronEdges[hemicube],VertexCoordinates->PolyhedronCoordinates[hemicube]]

GraphEmbedding[g]

3D

Show[CenterGraph@GraphData["HemicubicalGraph","Graph",{"Labeled","3D"}],Axes->True,AxesOrigin->{0,0,0},AxesLabel->{x,y,z}]

ee=GraphData["HemicubicalGraph","Edges"]

v={{0,-1/2,0},{-x,1/2,z},{x,1/2,z},{-x,-1/2,z},{x,-1/2,z},{0,1/2,0},{0,0,h}};

eqn=FullSimplify[UnitEdgeEquations[v,ee]]//Union

CoplanarQ[v[[{2,7,3,6}]]]

var=Variables[Subtract@@@eqn]

Length/@{eqn,var}

soln=Solve[{(1/4)+(x^2)+(((h-z))^2)==1,(x^2)+(z^2)==1,h==z},{h,x,z},PositiveReals]

Graph[Range[7],ee,VertexCoordinates->(v/.soln[[1]])]

g=

Maximize[{h,And@@{(1/4)+(x^2)+(((h-z))^2)==1,(x^2)+(z^2)==1}},{h,x,z}]

Graph[Range[7],ee,VertexCoordinates->(v/.%127[[2]])]

Maximize[{Abs[h-z],And@@{(1/4)+(x^2)+(((h-z))^2)==1,(x^2)+(z^2)==1}},{h,x,z}]

Graph[Range[7],ee,VertexCoordinates->(v/.%[[2]])]

Degenerate from 3D projection

vv={{-1/2,-1/2},{0,-1/2},{1/2,-1/2},{1/2,1/2},{0,1/2},{-1/2,1/2},{0,0}};
g=Graph[Range[7],UndirectedEdge@@@{{1,2},{2,3},{3,4},{4,5},{5,6},{1,6},{2,5},{6,7},{4,7},{1,7},{3,7}},VertexCoordinates->vv,VertexLabels->Automatic]

RecognizeGraph[g]

Symmetrical 3D projection

GraphData["HemicubicalGraph","Graph","3D"]

vv={#,-#2}&@@@{{-1,0},{0,0},{1,0},{-1,-1},{1,-1},{0,-1},{0,-2}};
g=Graph[Range[Length[vv]],UndirectedEdge@@@{{1,2},{2,3},{3,5},{5,7},{7,4},{4,1},{4,2},{2,5},{1,6},{3,6},{6,7}},VertexCoordinates->vv,VertexLabels->Automatic]

RecognizeGraph[g]

2D projection from hemicube

<<MathWorld`Graphs`

hemicube=Polyhedron[];

Manipulate[PolyhedronProjectionGraph[hemicube,{x,y,z}],{x,-2,2},{y,-2,2},{z,-2,2}]

g=RotateGraph[LabelGraph@,{1,3}]

GraphData

GraphPropertyString

GraphDataClassString["HemicubicalGraph"]