Re: Sorting complex points

*To*: mathgroup at smc.vnet.net*Subject*: [mg55881] Re: Sorting complex points*From*: "news.online.de" <petsie at arcor.de>*Date*: Sat, 9 Apr 2005 03:55:16 -0400 (EDT)*Organization*: 1&1 Internet AG*References*: <d356km$ovn$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

OT wrote: > Hi all, > > I'm trying to sort lists of random complex points on the unit circle > using their angles as criterion to sort them: I mean, if > z=Cos[a]+I*Sin[a] and w=Cos[b]+I*Sin[b]( 0<=a,b<2*Pi ), > I want z<w if a<b; > > how can i do that? > > I tried to define Angle[z] as a piecewise funztion, but I still don't > understand how to use it with Sort... > > Thanks, > > andrea > Have a look at the help for Sort[list,p]. p is a function which takes two arguments and returns True or False. This relation defines the order. You want to compare the Arg[] of two complex numbers, so the following should do what you want: (*lookAt[] visualizes the list of complex numbers*) lookAt[lst_]:=ListPlot[{Re@#,Im@#}&/@lst,PlotJoined->True]; lookAt@(data=Table[Random[Complex,{-1-I,1+I}],{50}]); and now use Sort[] to get an open star-shaped plot lookAt@Sort[data,Arg[#1]<Arg[#2]&]; -- Peter Pein Berlin