Actual source code: ex1.c

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

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

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

 11:   PetscFunctionBeginUser;
 12:   PetscCall(PetscInitialize(&argc, &argv, NULL, help));

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

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

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

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

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

 55: /*TEST

 57:    build:
 58:      requires: x

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

 63: TEST*/