Ilya Zakharevich on Wed, 1 Mar 2000 15:45:39 -0500 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
[PATCH 2.0.18] plothraw with more flags |
Was: If flag is non zero, join points Now: If flag is 1, join points, other non-0 flags should be combinations of bits 8,16,32,64,128,256 meaning the same as for ploth() This change is a first step of a more ambitious plan. For the most harmonic interaction of high-level and low-level plotting functions we need a) a possiblity of high-level plotting functions "plotting to vectors" instead of plotting to rectangles/output-device, *and* b) a possibility to plot these vectors in the same ways as the current high-level functions do. This splitting of plotting into two stages would allow arbitrary transformations inserted in between of these two steps. One possible solution for "b" is to modify plotpoints() to accept a flag (with the default being 64). Another one would be to have an entirely new function which would allow plotting several curves simultaneously, and would accept different formats: those good for several parametric curves or several x-to-y curves. Enjoy, Ilya P.S. Try with plothraw([-2,-1,0,1],[2,4,-3,-1],256) --- ./src/graph/plotport.c~ Wed Jan 19 16:35:10 2000 +++ ./src/graph/plotport.c Wed Mar 1 15:18:28 2000 @@ -1650,7 +1650,7 @@ plothraw0(long stringrect, long drawrect GEN plothraw(GEN listx, GEN listy, long flags) { - flags=(flags)? 0: PLOT_POINTS; + flags = (flags > 1 ? flags : (flags ? 0: PLOT_POINTS)); return plothraw0(STRINGRECT, DRAWRECT, listx, listy, flags); } --- ./src/gp/highlvl.c~ Mon Dec 13 07:42:51 1999 +++ ./src/gp/highlvl.c Wed Mar 1 15:32:25 2000 @@ -260,7 +260,7 @@ char *helpmessages_highlevel[]={ "plotdraw(list, {flag=0}): draw vector of rectwindows list at indicated x,y positions; list is a vector w1,x1,y1,w2,x2,y2,etc. . If flag!=0, x1, y1 etc. express fractions of the size of the current output device", "plotfile(filename): set the output file for plotting output. \"-\" redirects to the same place as PARI output", "ploth(X=a,b,expr,{flags=0},{n=0}): plot of expression expr, X goes from a to b in high resolution. Both flags and n are optional. Binary digits of flags mean : 1 parametric plot, 2 recursive plot, 8 omit x-axis, 16 omit y-axis, 32 omit frame, 64 do not join points, 128 plot both lines and points, 256 use cubic splines. n specifies number of reference points on the graph (0=use default value). Returns a vector for the bounding box", - "plothraw(listx,listy,{flag=0}): plot in high resolution points whose x (resp. y) coordinates are in listx (resp. listy). If flag is non zero, join points", + "plothraw(listx,listy,{flag=0}): plot in high resolution points whose x (resp. y) coordinates are in listx (resp. listy). If flag is 1, join points, other non-0 flags should be combinations of bits 8,16,32,64,128,256 meaning the same as for ploth()", "plothsizes({flag=0}): returns array of 6 elements: terminal width and height, sizes for ticks in horizontal and vertical directions, width and height of characters. If flag=0, sizes of ticks and characters are in pixels, otherwise are fractions of the screen size", "plotinit(w,{x=0},{y=0},{flag=0}): initialize rectwindow w to size x,y. If flag!=0, x and y express fractions of the size of the current output device. x=0 or y=0 means use the full size of the device", "plotkill(w): erase the rectwindow w",