예제 #1
0
파일: plot2d.c 프로젝트: gitpan/swig
int main(int argc, char **argv) {

    FrameBuffer *f;
    Plot2D      *p2;
    ColorMap    *cm;
    
    double      x,y;
    double      dx,dy;
    double      z1,z2,z3,z4,za;
    int         c;
    
    /* Create a framebuffer */

    f = new_FrameBuffer(600,600);

    /* Load a colormap */

    cm = new_ColorMap("cm15");

    /* Create a new 2D image */

    FrameBuffer_clear(f,BLACK);
    p2 = new_Plot2D(f,-6.3,-6.3,6.3,6.3);

    /* Set viewing region in 2D plot */
    
    Plot2D_setview(p2,50,50,550,550);

    /* Make a frame */

    FrameBuffer_noclip(f);
    FrameBuffer_box(f,49,49,550,550,WHITE);
    Plot2D_start(p2);   /* Always call this prior to making an image */
    Plot2D_clear(p2,BLACK);
    x = -6.3;
    dx = 0.25;
    while (x < 6.3) {
	y = -6.3;
	dy = 0.25;
	while (y < 6.3) {
	    z1 = func(x,y);
	    z2 = func(x+dx,y);
	    z3 = func(x+dx,y+dy);
	    z4 = func(x,y+dy);
	    za = 0.25*(z1+z2+z3+z4);
	    c = (int) ((za + 1.0)*120) + 16;
	    if (c < 16) c = 16;
	    if (c > 254) c = 254;
	      
	    Plot2D_solidbox(p2,x,y,x+dx,y+dy,c);
	    y = y + dy;
	}
	x = x + dx;
    }
    
    /* Make a GIF file */

    FrameBuffer_writeGIF(f,cm,"plot.gif");

}
예제 #2
0
/* -------------------------------------------------------------------------------
   Plot2D_box(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel Color)

   Plot an outline box on the 2D plot
   ------------------------------------------------------------------------------- */
void
Plot2D_box(Plot2D *p2, double x1, double y1,double x2, double y2, Pixel color) {
  int ix1, ix2,iy1, iy2;

  Plot2D_transform(p2,x1,y1,&ix1,&iy1);
  Plot2D_transform(p2,x2,y2,&ix2,&iy2);
  FrameBuffer_box(p2->frame,ix1,iy1,ix2,iy2,color);
}