xref: /petsc/src/sys/classes/draw/tests/ex1.c (revision 66af8762ec03dbef0e079729eb2a1734a35ed7ff)
1 static char help[] = "Demonstrates opening and drawing in a window\n";
2 
3 #include <petscsys.h>
4 #include <petscdraw.h>
5 
6 int main(int argc, char **argv)
7 {
8   PetscDraw draw;
9   int       x = 0, y = 0, width = 300, height = 300;
10 
11   PetscFunctionBeginUser;
12   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
13 
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));
18 
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));
26 
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));
35 
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));
49 
50   PetscCall(PetscDrawDestroy(&draw));
51   PetscCall(PetscFinalize());
52   return 0;
53 }
54 
55 /*TEST
56 
57    build:
58      requires: x
59 
60    test:
61      output_file: output/ex1_1.out
62 
63 TEST*/
64