1
$\begingroup$

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?

$\endgroup$
  • $\begingroup$ The syntax of Graph in Combinatorica is Graph[e, v, opts], not Graph[v, e] as with the new built-in Graph. $\endgroup$ – William May 22 '13 at 20:09
5
$\begingroup$

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
| improve this answer | |
$\endgroup$
  • $\begingroup$ same errors as above $\endgroup$ – jnthn May 22 '13 at 20:36
  • $\begingroup$ @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. $\endgroup$ – William May 23 '13 at 1:21
0
$\begingroup$
Needs["Combinatorica`"];
crds = {{1, 10}, {2, 4}, {10, 5}, {20, 10}}
vertices = Range[Length[crds]]; edges = 
Thread[vertices -> RotateLeft[vertices]];
GraphPlot[edges]
| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ In[]:= Head[GraphPlot[e] Out[]:= Graphics, so it is not a graph. I cant use Degrees[] on it. $\endgroup$ – jnthn May 22 '13 at 20:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.