Actual source code: ex3.c

  1: /*$Id: ex3.c,v 1.42 2001/08/07 21:28:44 bsmith Exp $*/

  3: static char help[] = "Plots a simple line graph.n";

 5:  #include petsc.h

  7: int main(int argc,char **argv)
  8: {
  9:   PetscDraw          draw;
 10:   PetscDrawLG        lg;
 11:   PetscDrawAxis      axis;
 12:   int                n = 20,i,ierr,x = 0,y = 0,width = 300,height = 300,nports = 1;
 13:   PetscTruth         flg;
 14:   char               *xlabel,*ylabel,*toplabel;
 15:   PetscReal          xd,yd;
 16:   PetscDrawViewPorts *ports;

 18:   xlabel = "X-axis Label";toplabel = "Top Label";ylabel = "Y-axis Label";

 20:   PetscInitialize(&argc,&argv,(char*)0,help);
 21:   PetscOptionsGetInt(PETSC_NULL,"-width",&width,PETSC_NULL);
 22:   PetscOptionsGetInt(PETSC_NULL,"-height",&height,PETSC_NULL);
 23:   PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
 24:   PetscOptionsHasName(PETSC_NULL,"-nolabels",&flg);
 25:   if (flg) {
 26:     xlabel = (char *)0; toplabel = (char *)0;
 27:   }
 28:   /* PetscDrawOpenX(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);*/
 29:   PetscDrawCreate(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);
 30:   PetscDrawSetFromOptions(draw);
 31: 
 32:   PetscOptionsGetInt(PETSC_NULL,"-nports",&nports,PETSC_NULL);
 33:   PetscDrawViewPortsCreate(draw,nports,&ports);
 34:   PetscDrawViewPortsSet(ports,0);

 36:   PetscDrawLGCreate(draw,1,&lg);
 37:   PetscDrawLGGetAxis(lg,&axis);
 38:   PetscDrawAxisSetColors(axis,PETSC_DRAW_BLACK,PETSC_DRAW_RED,PETSC_DRAW_BLUE);
 39:   PetscDrawAxisSetLabels(axis,toplabel,xlabel,ylabel);

 41:   for (i=0; i<n ; i++) {
 42:     xd = (PetscReal)(i - 5); yd = xd*xd;
 43:     PetscDrawLGAddPoint(lg,&xd,&yd);
 44:   }
 45:   PetscDrawLGIndicateDataPoints(lg);
 46:   PetscDrawLGDraw(lg);
 47:   PetscDrawFlush(draw);
 48:   PetscSleep(2);

 50:   PetscDrawViewPortsDestroy(ports);
 51:   PetscDrawLGDestroy(lg);
 52:   PetscDrawDestroy(draw);
 53:   PetscFinalize();
 54:   return 0;
 55: }
 56: