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
9: int main(int argc,char **argv)
10: {
11: PetscDraw draw;
12: PetscDrawLG lg;
13: PetscDrawAxis axis;
14: int n = 20,i,ierr,x = 0,y = 0,width = 300,height = 300,nports = 1;
15: PetscTruth flg;
16: char *xlabel,*ylabel,*toplabel;
17: PetscReal xd,yd;
18: PetscDrawViewPorts *ports;
20: xlabel = "X-axis Label";toplabel = "Top Label";ylabel = "Y-axis Label";
22: PetscInitialize(&argc,&argv,(char*)0,help);
23: PetscOptionsGetInt(PETSC_NULL,"-width",&width,PETSC_NULL);
24: PetscOptionsGetInt(PETSC_NULL,"-height",&height,PETSC_NULL);
25: PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
26: PetscOptionsHasName(PETSC_NULL,"-nolabels",&flg);
27: if (flg) {
28: xlabel = (char *)0; toplabel = (char *)0;
29: }
30: /* PetscDrawOpenX(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);*/
31: PetscDrawCreate(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);
32: PetscDrawSetFromOptions(draw);
33:
34: PetscOptionsGetInt(PETSC_NULL,"-nports",&nports,PETSC_NULL);
35: PetscDrawViewPortsCreate(draw,nports,&ports);
36: PetscDrawViewPortsSet(ports,0);
38: PetscDrawLGCreate(draw,1,&lg);
39: PetscDrawLGGetAxis(lg,&axis);
40: PetscDrawAxisSetColors(axis,PETSC_DRAW_BLACK,PETSC_DRAW_RED,PETSC_DRAW_BLUE);
41: PetscDrawAxisSetLabels(axis,toplabel,xlabel,ylabel);
43: for (i=0; i<n ; i++) {
44: xd = (PetscReal)(i - 5); yd = xd*xd;
45: PetscDrawLGAddPoint(lg,&xd,&yd);
46: }
47: PetscDrawLGIndicateDataPoints(lg);
48: PetscDrawLGDraw(lg);
49: PetscDrawFlush(draw);
50: PetscSleep(2);
52: PetscDrawViewPortsDestroy(ports);
53: PetscDrawLGDestroy(lg);
54: PetscDrawDestroy(draw);
55: PetscFinalize();
56: return 0;
57: }
58: