Converting polygon to graph in V7

I’ve unsuccessfully tried many ways of converting polygon points into a graph using Mathematica 7, and I am frustrated. I looked at this post, but it doesn’t work:

Needs[“Combinatorica`”];
crds = {{1, 10}, {2, 4}, {10, 5}, {20, 10}};
vertices = Range[Length[crds]];
edges = Thread[vertices \[DirectedEdge] RotateLeft[vertices]];

Graph[vertices, edges]

produces errors:

Syntax::sntxf: “\!\(\*StyleBox[\”\\\”\\\\\\\”\\\”\”, \”MT\”]\)\!\(\*StyleBox[\!
\(vertices\), \”MT\”]\)\!\(\*StyleBox[\”\\\”\\\\\\\” cannot be followed by \\\\\\\”
\\\”\”, \”MT\”]\)\!\(\*StyleBox[\!\(\(\(\\[ DirectedEdge]\)\) \(\(RotateLeft[vertices]
\)\)\), \”MT\”]\)\!\(\*StyleBox[\”\\\”\\\\\\\”.\\\”\”, \”MT\”]\)\!\(\*StyleBox[\!
\(\”\”\), \”MT\”]\)”

Syntax::tsntxi: “\!\(\*StyleBox[\”\\\”\\\\\\\”\\\”\”, \”MT\”]\)\!\(\*StyleBox[\!\(\\[
DirectedEdge]\), \”MT\”]\)\!\(\*StyleBox[\”\\\”\\\\\\\” is incomplete; more input is
needed.\\\”\”, \”MT\”]\)\!\(\*StyleBox[\!\(\”\”\), \”MT\”]\)”

Syntax::sntxi: Incomplete expression; more input is needed.

Any ideas?

=================

  

 

The syntax of Graph in Combinatorica is Graph[e, v, opts], not Graph[v, e] as with the new built-in Graph.
– billisphere
May 22 ’13 at 20:09

=================

2 Answers
2

=================

With Combinatorica, you should usually use MakeGraph rather than Graph directly. Here are some expressions that create the graph you want and which can be easily adapted for use with any graph that you’ve defined appropriate vertices and edges symbols for:

Needs[“Combinatorica`”]
crds = {{1, 10}, {2, 4}, {10, 5}, {20, 10}};
vertices = Range[Length[crds]];
edges = Thread[vertices -> RotateLeft[vertices]];
g = MakeGraph[vertices, MemberQ[edges, #1 -> #2] &]
ShowGraph@g

  

 

same errors as above
– jnthn
May 22 ’13 at 20:36

  

 

I changed [DirectedEdges] to -> and now it works! ty. I’ll edit your answer and accept. Thanks much.
– jnthn
May 22 ’13 at 20:47

  

 

@jnthn: Interesting, I think I missed the errors because I was working in 9.0.1. My apologies, as I did have access to 7.0 for testing. Glad that I was able to help.
– billisphere
May 23 ’13 at 1:21

Needs[“Combinatorica`”];
crds = {{1, 10}, {2, 4}, {10, 5}, {20, 10}}
vertices = Range[Length[crds]]; edges =
Thread[vertices -> RotateLeft[vertices]];
GraphPlot[edges]

1

 

In[]:= Head[GraphPlot[e] Out[]:= Graphics, so it is not a graph. I cant use Degrees[] on it.
– jnthn
May 22 ’13 at 20:42