I am drawing the line in this way: res=100 theta1=38.7598 phi1=-121.294 theta2=40.3503 phi2=-74.6594 myline=[] for i in range(1,100): myline[i] = ((i/res)*theta1 + ((res-i)/res)*theta2, (i/res) *phi1 + ((res-i)/res)*phi2) mydots = [(cos(t*theta)*cos(t*phi), sin(t*theta)*cos(t*phi), sin (t*phi)) for theta, phi in myline] #plotting world + sum([point3d(v, color='red') for v in city_coords]) + sum ([point3d(v, color='green') for v in mydots])
Is there a way to draw the dots in 2D and not in 3D? I tried with just "point" instead of "point3d" but it didn't work. I would prefer to draw the line in 2D and keep the points for the cities in 3D. Thanks On Nov 10, 3:44 pm, Robert Bradshaw <[EMAIL PROTECTED]> wrote: > On Nov 10, 2008, at 12:57 PM, acardh wrote: > > > One more question about this. How can I draw a line between any two > > given points? > > > I am doing this > > world = sphere((0,0,0), size=1, color='blue') > > cities = [(38.7598, -121.294),(40.3503, -74.6594),(27.959, -82.4821)] > > t = RDF(pi/180) > > city_coords = [(cos(t*theta)*cos(t*phi), sin(t*theta)*cos(t*phi), > > sin(t*phi)) for theta, phi in cities] > > world + sum([point3d(v, color='red') for v in city_coords]) > > > How can I draw a line between these cities? I am not sure if there is > > a direct function to do this. One way to do this might be drawing a > > series of dots between any two cities using geocoordinates too. > > Thanks > > There is a line command, but it draws a straight line (as if you were > drilling a tunnel through the earth. The easiest would be your idea > of making a set of dots. > > > > > On Nov 9, 8:53 pm, acardh <[EMAIL PROTECTED]> wrote: > >> Thanks Robert, it's exactly what I needed. It was so easy for you, I > >> guess. > > >> :o) > > >> On Nov 9, 12:28 am, Robert Bradshaw <[EMAIL PROTECTED]> > >> wrote: > > >>> On Nov 8, 2008, at 7:52 PM, acardh wrote: > > >>>> Hi, > >>>> Plotting an sphere is straightforward but I need help in how to > >>>> draw > >>>> points on the sphere. The sphere will represent the Earth and the > >>>> points will be some geo-coordinates . > > >>>> Thanks!!! > > >>> This depends on how your points are given. I'm going to assume you > >>> have latitude/longitude (in degrees), called phi and theta > >>> respectively. Then one would draw the sphere via > > >>> sage: world = sphere((0,0,0), radius=1, color='blue') > > >>> Here I'm making 100 random cities. > >>> sage: cities = [(ZZ.random_element(-180,180), ZZ.random_element > >>> (-90,90)) for _ in range(100)] > > >>> Now I'll convert polar coordinates to regular xyz coordinates. > >>> sage: t = RDF(pi/180) > >>> sage: city_coords = [(cos(t*theta)*cos(t*phi), sin(t*theta)*cos > >>> (t*phi), sin(t*phi)) for theta, phi in cities] > > >>> Now I'll plot them > >>> sage: world + sum([point3d(v, color='red') for v in city_coords]) > > >>> I could have, of course, done something more interesting than > >>> "points" > >>> sage: world + sum([tetrahedron(size=.1, color='yellow').translate(v) > >>> for v in city_coords]) > > >>> - Robert --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---