1 #ifndef DRAW_REDDIAL_H
2 #define DRAW_REDDIAL_H
3 #define PI 3.1415926535897932384626433832795
cairo_code_draw_redDial_get_width()4 inline int cairo_code_draw_redDial_get_width() { return 50; }
cairo_code_draw_redDial_get_height()5 inline int cairo_code_draw_redDial_get_height() { return 50; }
cairo_code_draw_redDial_render(cairo_t * cr,float val)6 inline void cairo_code_draw_redDial_render(cairo_t *cr, float val) {
7 cairo_pattern_t *pattern;
8 cairo_matrix_t matrix;
9 
10 cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
11 pattern = cairo_pattern_create_radial(78.743378, 172.53114, 0, 78.743378, 172.53114, 20.063856);
12 cairo_pattern_add_color_stop_rgba(pattern, 0,0.407843,0,0,1);
13 cairo_pattern_add_color_stop_rgba(pattern, 1,0.984314,0,0,1);
14 cairo_matrix_init(&matrix, 0.702016,0.656977,-0.649072,0.710566,77.456404,132.417971);
15 cairo_pattern_set_matrix(pattern, &matrix);
16 cairo_pattern_set_extend(pattern, CAIRO_EXTEND_PAD);
17 cairo_pattern_set_filter(pattern, CAIRO_FILTER_GOOD);
18 cairo_set_source(cr, pattern);
19 cairo_pattern_destroy(pattern);
20 cairo_new_path(cr);
21 cairo_move_to(cr, 37.734375, 25);
22 cairo_curve_to(cr, 37.734375, 32.035156, 32.035156, 37.734375, 25, 37.734375);
23 cairo_curve_to(cr, 17.964844, 37.734375, 12.265625, 32.035156, 12.265625, 25);
24 cairo_curve_to(cr, 12.265625, 17.964844, 17.964844, 12.265625, 25, 12.265625);
25 cairo_curve_to(cr, 32.035156, 12.265625, 37.734375, 17.964844, 37.734375, 25);
26 cairo_close_path(cr);
27 cairo_move_to(cr, 37.734375, 25);
28 cairo_set_tolerance(cr, 0.1);
29 cairo_set_antialias(cr, CAIRO_ANTIALIAS_DEFAULT);
30 cairo_set_fill_rule(cr, CAIRO_FILL_RULE_WINDING);
31 cairo_fill_preserve(cr);
32  /********************/
33 cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
34 cairo_set_line_width(cr, 1.697789);
35 cairo_set_miter_limit(cr, 4);
36 cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
37 cairo_set_line_join(cr, CAIRO_LINE_JOIN_MITER);
38 pattern = cairo_pattern_create_rgba(0.603922,0,0,1);
39 cairo_set_source(cr, pattern);
40 cairo_pattern_destroy(pattern);
41 cairo_new_path(cr);
42 cairo_move_to(cr, 37.734375, 25);
43 cairo_curve_to(cr, 37.734375, 32.035156, 32.035156, 37.734375, 25, 37.734375);
44 cairo_curve_to(cr, 17.964844, 37.734375, 12.265625, 32.035156, 12.265625, 25);
45 cairo_curve_to(cr, 12.265625, 17.964844, 17.964844, 12.265625, 25, 12.265625);
46 cairo_curve_to(cr, 32.035156, 12.265625, 37.734375, 17.964844, 37.734375, 25);
47 cairo_close_path(cr);
48 cairo_move_to(cr, 37.734375, 25);
49 cairo_set_tolerance(cr, 0.1);
50 cairo_set_antialias(cr, CAIRO_ANTIALIAS_DEFAULT);
51 cairo_matrix_init(&matrix, 0.648375,0,0,0.648375,-26.638418,-85.597409);
52 cairo_pattern_set_matrix(pattern, &matrix);
53 cairo_stroke_preserve(cr);
54 /********************/
55 
56     cairo_translate(cr,25,25);
57     cairo_rotate(cr,3*PI/2*val - 3*PI/4);
58     cairo_translate(cr,-25,-25);
59 
60 cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
61 pattern = cairo_pattern_create_linear(52.458691, 825.30457, 40.941853, 782.5293);
62 cairo_pattern_add_color_stop_rgba(pattern, 0,0.407843,0,0,1);
63 cairo_pattern_add_color_stop_rgba(pattern, 1,0.984314,0,0,1);
64 cairo_matrix_init(&matrix, 3.176871,2.981963,-0.764305,0.814261,-12.61461,698.060098);
65 cairo_pattern_set_matrix(pattern, &matrix);
66 cairo_pattern_set_extend(pattern, CAIRO_EXTEND_PAD);
67 cairo_pattern_set_filter(pattern, CAIRO_FILTER_GOOD);
68 cairo_set_source(cr, pattern);
69 cairo_pattern_destroy(pattern);
70 
71 //    cairo_translate(cr,25,25);
72 //    cairo_rotate(cr,3*PI/2*val - 3*PI/4);
73 //    cairo_translate(cr,-25,-25);
74 
75 cairo_new_path(cr);
76 cairo_move_to(cr, 31.828125, 46.628906);
77 cairo_curve_to(cr, 31.28125, 50.324219, 18.722656, 50.421875, 18.175781, 46.734375);
78 cairo_curve_to(cr, 17.625, 43.046875, 23.882812, 0.558594, 24.976562, 0.550781);
79 cairo_curve_to(cr, 26.070312, 0.542969, 32.371094, 42.933594, 31.828125, 46.628906);
80 cairo_close_path(cr);
81 cairo_move_to(cr, 31.828125, 46.628906);
82 cairo_set_tolerance(cr, 0.1);
83 cairo_set_antialias(cr, CAIRO_ANTIALIAS_DEFAULT);
84 cairo_set_fill_rule(cr, CAIRO_FILL_RULE_WINDING);
85 cairo_fill_preserve(cr);
86  /********************/
87 cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
88 cairo_set_line_width(cr, 2.428246);
89 cairo_set_miter_limit(cr, 4);
90 cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);
91 cairo_set_line_join(cr, CAIRO_LINE_JOIN_MITER);
92 pattern = cairo_pattern_create_rgba(0.603922,0,0,1);
93 cairo_set_source(cr, pattern);
94 cairo_pattern_destroy(pattern);
95 cairo_new_path(cr);
96 cairo_move_to(cr, 31.828125, 46.628906);
97 cairo_curve_to(cr, 31.28125, 50.324219, 18.722656, 50.421875, 18.175781, 46.734375);
98 cairo_curve_to(cr, 17.625, 43.046875, 23.882812, 0.558594, 24.976562, 0.550781);
99 cairo_curve_to(cr, 26.070312, 0.542969, 32.371094, 42.933594, 31.828125, 46.628906);
100 cairo_close_path(cr);
101 cairo_move_to(cr, 31.828125, 46.628906);
102 cairo_set_tolerance(cr, 0.1);
103 cairo_set_antialias(cr, CAIRO_ANTIALIAS_DEFAULT);
104 cairo_matrix_init(&matrix, 0.167339,-0.612825,0.157073,0.65288,-107.535205,-463.480282);
105 cairo_pattern_set_matrix(pattern, &matrix);
106 cairo_stroke_preserve(cr);
107 /********************/
108 cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
109 cairo_set_line_width(cr, 1.543);
110 cairo_set_miter_limit(cr, 4);
111 cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);
112 cairo_set_line_join(cr, CAIRO_LINE_JOIN_MITER);
113 pattern = cairo_pattern_create_rgba(0,0,0,1);
114 cairo_set_source(cr, pattern);
115 cairo_pattern_destroy(pattern);
116 cairo_new_path(cr);
117 cairo_move_to(cr, 25, 1.542969);
118 cairo_line_to(cr, 25, 12.464844);
119 cairo_set_tolerance(cr, 0.1);
120 cairo_set_antialias(cr, CAIRO_ANTIALIAS_DEFAULT);
121 cairo_matrix_init(&matrix, 0.550402,0,0,0.550402,-236.833886,127.48988);
122 cairo_pattern_set_matrix(pattern, &matrix);
123 cairo_stroke_preserve(cr);
124 /********************/
125 }
126 #endif
127