Re: drawing polygon diagonals
- To: mathgroup at smc.vnet.net
- Subject: [mg112315] Re: drawing polygon diagonals
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Thu, 9 Sep 2010 04:22:03 -0400 (EDT)
- References: <i6755n$873$1@smc.vnet.net>
Hi Matthew, I simplified the code somewhat using GraphicsComplex. In this way it is pretty easy to generate all the connecting lines using Subsets. Manipulate[ pts = Table[{Cos[2 Pi*k/n], Sin[2 Pi*k/n]}, {k, 1, n}]; Graphics[ { Black, Thickness[0.005], GraphicsComplex[pts, Line[Subsets[Range[n], {2}]]], Red, PointSize[0.035], GraphicsComplex[pts, Point[Range[n]]] }, PlotRange -> {{-1.2, 1.2}, {-1.2, 1.2}} ], {n, 2, 20, 1} ] Cheers -- Sjoerd On Sep 8, 6:58 am, MH <matthewh... at gmail.com> wrote: > Hi, > > This seems basic but it has me stumped. I'm trying to illustrate the > idea of the "handshake problem", where small circles represent people > and the lines between the circles represent handshakes. With the code > below, I'm able to show (and manipulate) any number of circles, and > I'm also able to show the lines between adjacent circles. This just > generates a polygon whose vertices are all connected, as it should. > But how can I update my code to show the diagonals, too, and not just > the sides of the polygon? I'm not sure what to add. > > Thanks! > > MH > > ================= > > Manipulate[ > Graphics[{ > { > Table[{Black, Thickness[0.005], > Line[{{Cos[2 Pi*k/n], Sin[2 Pi*k/n]}, > {Cos[2 Pi*(k + 1)/n], Sin[2 Pi*(k + 1)/n]}}]}, > {k, 0, n - 1, 1} > ] > }, > { > Table[ > {Red, PointSize[0.035], Point[{Cos[2 Pi*k/n], Sin[2 Pi*k/n]}]}= , > {k, 0, n - 1, 1} > ] > } > }, > PlotRange -> {{-1.2, 1.2}, {-1.2, 1.2}} > ] > , {n, 2, 12, 1}]