Actual source code: ex1.c


  2: static char help[] = "Demonstrates opening and drawing in a window\n";

  4: #include <petscsys.h>
  5: #include <petscdraw.h>

  7: int main(int argc, char **argv)
  8: {
  9:   PetscDraw draw;
 10:   int       x = 0, y = 0, width = 300, height = 300;

 13:   PetscInitialize(&argc, &argv, NULL, help);

 15:   PetscDrawCreate(PETSC_COMM_WORLD, 0, "Title", x, y, width, height, &draw);
 16:   PetscDrawSetPause(draw, 2.0);
 17:   PetscDrawSetFromOptions(draw);
 18:   PetscDrawSetViewPort(draw, .25, .25, .75, .75);

 20:   PetscDrawLine(draw, 0.0, 0.0, 1.0, 1.0, PETSC_DRAW_BLACK);
 21:   PetscDrawString(draw, .2, .2, PETSC_DRAW_RED, "Some Text");
 22:   PetscDrawString(draw, .5, .5, PETSC_DRAW_GREEN, "Some Text");
 23:   PetscDrawString(draw, .2, .8, PETSC_DRAW_BLUE, "Some Text");
 24:   PetscDrawFlush(draw);
 25:   PetscDrawPause(draw);
 26:   PetscDrawSave(draw);

 28:   PetscDrawClear(draw);
 29:   /* PetscDrawStringSetSize(draw,.5,.5); */
 30:   PetscDrawString(draw, .2, .2, PETSC_DRAW_RED, "Some Text");
 31:   PetscDrawString(draw, .5, .5, PETSC_DRAW_GREEN, "Some Text");
 32:   PetscDrawString(draw, .2, .8, PETSC_DRAW_BLUE, "Some Text");
 33:   PetscDrawFlush(draw);
 34:   PetscDrawPause(draw);
 35:   PetscDrawSave(draw);

 37:   PetscDrawResizeWindow(draw, 600, 600);
 38:   PetscDrawGetWindowSize(draw, &width, &height);
 39:   PetscDrawSetViewPort(draw, 0, 0, 1, 1);
 40:   PetscDrawClear(draw);
 41:   /* PetscDrawLine(draw,0.0,0.0,1.0,1.0,PETSC_DRAW_RED); */
 42:   /* PetscDrawLine(draw,0.0,1.0,1.0,0.0,PETSC_DRAW_BLUE); */
 43:   PetscDrawString(draw, .2, .2, PETSC_DRAW_RED, "Some Text\n  Some Other Text");
 44:   PetscDrawString(draw, .5, .5, PETSC_DRAW_RED, "ABCygj\n()[]F$");
 45:   PetscDrawString(draw, 0, 0, PETSC_DRAW_RED, "Horizontal Text (ABCygj)");
 46:   PetscDrawStringVertical(draw, 0, 1, PETSC_DRAW_RED, "Vertical Text");
 47:   PetscDrawFlush(draw);
 48:   PetscDrawPause(draw);
 49:   PetscDrawSave(draw);

 51:   PetscDrawDestroy(&draw);
 52:   PetscFinalize();
 53:   return 0;
 54: }

 56: /*TEST

 58:    build:
 59:      requires: x

 61:    test:
 62:      output_file: output/ex1_1.out

 64: TEST*/