This is excellent, thanks!
On 5/24/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > I wrote this, along with other 3d hacks for Alex's plotting code, about 9 > months ago. It's so horrendously slow, I didn't show it off much. You can > imagine my surprise that the resultant image is the only image in Wikipedia's > SAGE article to this day. > > > def xproj(x,y,z,r): > return (y*r[1] - x*r[3])*r[2] > def yproj(x,y,z,r): > return z*r[2] - (x*r[1] + y*r[2])*r[0] > def rotation_list(tilt,turn): > return [ sin(tilt*pi/180), > sin(turn*pi/180), > cos(tilt*pi/180), > cos(turn*pi/180) ] > > def polygon_3d(points, tilt=30, turn=30, **kwargs): > rot = rotation_list(tilt,turn) > points2 = [(xproj(x,y,z,rot), yproj(x,y,z,rot)) for (x,y,z) in points ] > return polygon(points2, **kwargs) > > def testplot(func,xlist,ylist,colorf): > p = Graphics() > > for n in range(len(xlist)-1): > i = xlist[n] > i1= xlist[n+1] > for m in range(len(ylist)-1): > j = ylist[m] > j1 = ylist[m+1] > f = func(i,j) > fj= func(i1,j) > fi= func(i,j1) > f2= func(i1,j1) > c = colorf(i,j,f) > c2= colorf(i1,j1,f2) > p+= polygon_3d( [(i , f , j ), > (i1, fj , j ), > (i , fi , j1)], > rgbcolor = c) > p+= polygon_3d( [(i1, f2, j1 ), > (i1, fj , j ), > (i , fi , j1)], > rgbcolor = c2) > > > return p > > def f(x,y): > return cos(sqrt(x^2 + y^2)) > def c(x,y,z): > return (abs(z),0,abs(sin(sqrt(x^2+y^2)))) > > testplot(f,srange(-5,5,.1),srange(-5,5,.1),colorf=c).show(axes=False) > > > > > On Thu, 24 May 2007, David Joyner wrote: > > > > > On 5/23/07, William Stein <[EMAIL PROTECTED]> wrote: > >> > >> On 5/23/07, Marshall Hampton <[EMAIL PROTECTED]> wrote: > >>> Surface plots are very important for my sage-teaching plans. > >>> Currently the maxima surface plots don't work for a notebook running > >>> on a different machine (unless there is some way of piping that over > >>> - ?). > >> > >> Currently unfortunately there is no good support for surface plots in the > >> SAGE notebook. This is a major major gap in SAGE, which hasn't been > >> remedied yet. It is possible to draw nice surface plots in the notebok > >> via Tachyon but this is not very good yet. Some of the SAGE developers > >> last year wrote a lot of code necessary for surface plotting, but we > >> still don't have a good rendering system. > > > > I'm not sure what "good rendering" means. Can (for example) a > > square in 3-space with a specified size, position and > > orientation be plotted? If so, what is the command? > > > > > >> > >> NOTE: If you can figure out how to tell maxima to save a plot to a file > >> instead of displaying it, then it will get displayed by the notebook. The > >> notebook has the cool property that it simply automatically displays any > >> .png images that get created as a side-effect of running a command. > >> They have to get created in the working directory of the notebook cell > >> though, and maxima might place the file elsewhere. Anyway, if somebody > >> were to post maxima code that shows how create a graph and save it > >> to a file, then it would probably be easy for me to figure out how to make > >> that plot appear in the notebook. > > > > This can be done using gnuplot (which does not come with SAGE). > > I sent an email to the maxima email list and it seems that openmath (which > > does come with SAGE) cannot save to a file using a plot option. > > Openmath does have the ability save to a ps file, but apparently only > > using the mouse. > > > > > >> > >> William > >> > >>> > >> > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@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-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---