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
-~----------~----~----~----~------~----~------~--~---

Reply via email to