xref: /petsc/src/sys/classes/draw/tests/ex1.c (revision d71ae5a4db6382e7f06317b8d368875286fe9008)
1 
2 static char help[] = "Demonstrates opening and drawing in a window\n";
3 
4 #include <petscsys.h>
5 #include <petscdraw.h>
6 
7 int main(int argc, char **argv)
8 {
9   PetscDraw draw;
10   int       x = 0, y = 0, width = 300, height = 300;
11 
12   PetscFunctionBeginUser;
13   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
14 
15   PetscCall(PetscDrawCreate(PETSC_COMM_WORLD, 0, "Title", x, y, width, height, &draw));
16   PetscCall(PetscDrawSetPause(draw, 2.0));
17   PetscCall(PetscDrawSetFromOptions(draw));
18   PetscCall(PetscDrawSetViewPort(draw, .25, .25, .75, .75));
19 
20   PetscCall(PetscDrawLine(draw, 0.0, 0.0, 1.0, 1.0, PETSC_DRAW_BLACK));
21   PetscCall(PetscDrawString(draw, .2, .2, PETSC_DRAW_RED, "Some Text"));
22   PetscCall(PetscDrawString(draw, .5, .5, PETSC_DRAW_GREEN, "Some Text"));
23   PetscCall(PetscDrawString(draw, .2, .8, PETSC_DRAW_BLUE, "Some Text"));
24   PetscCall(PetscDrawFlush(draw));
25   PetscCall(PetscDrawPause(draw));
26   PetscCall(PetscDrawSave(draw));
27 
28   PetscCall(PetscDrawClear(draw));
29   /* PetscCall(PetscDrawStringSetSize(draw,.5,.5)); */
30   PetscCall(PetscDrawString(draw, .2, .2, PETSC_DRAW_RED, "Some Text"));
31   PetscCall(PetscDrawString(draw, .5, .5, PETSC_DRAW_GREEN, "Some Text"));
32   PetscCall(PetscDrawString(draw, .2, .8, PETSC_DRAW_BLUE, "Some Text"));
33   PetscCall(PetscDrawFlush(draw));
34   PetscCall(PetscDrawPause(draw));
35   PetscCall(PetscDrawSave(draw));
36 
37   PetscCall(PetscDrawResizeWindow(draw, 600, 600));
38   PetscCall(PetscDrawGetWindowSize(draw, &width, &height));
39   PetscCall(PetscDrawSetViewPort(draw, 0, 0, 1, 1));
40   PetscCall(PetscDrawClear(draw));
41   /* PetscCall(PetscDrawLine(draw,0.0,0.0,1.0,1.0,PETSC_DRAW_RED)); */
42   /* PetscCall(PetscDrawLine(draw,0.0,1.0,1.0,0.0,PETSC_DRAW_BLUE)); */
43   PetscCall(PetscDrawString(draw, .2, .2, PETSC_DRAW_RED, "Some Text\n  Some Other Text"));
44   PetscCall(PetscDrawString(draw, .5, .5, PETSC_DRAW_RED, "ABCygj\n()[]F$"));
45   PetscCall(PetscDrawString(draw, 0, 0, PETSC_DRAW_RED, "Horizontal Text (ABCygj)"));
46   PetscCall(PetscDrawStringVertical(draw, 0, 1, PETSC_DRAW_RED, "Vertical Text"));
47   PetscCall(PetscDrawFlush(draw));
48   PetscCall(PetscDrawPause(draw));
49   PetscCall(PetscDrawSave(draw));
50 
51   PetscCall(PetscDrawDestroy(&draw));
52   PetscCall(PetscFinalize());
53   return 0;
54 }
55 
56 /*TEST
57 
58    build:
59      requires: x
60 
61    test:
62      output_file: output/ex1_1.out
63 
64 TEST*/
65