*Strong Bad and The Cheat sit at a cardboard box*
This commit is contained in:
parent
fcde71a902
commit
09d33177ce
1 changed files with 63 additions and 2 deletions
|
@ -60,6 +60,27 @@ static void draw_face_number(cairo_t *cr,
|
||||||
cairo_restore(cr);
|
cairo_restore(cr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void draw_face_mark(cairo_t *cr,
|
||||||
|
double x,
|
||||||
|
double y,
|
||||||
|
double min_r,
|
||||||
|
double max_r,
|
||||||
|
double min_angle,
|
||||||
|
double max_angle,
|
||||||
|
double value) {
|
||||||
|
double angle = min_angle + ((max_angle - min_angle) * value) - (M_PI/2);
|
||||||
|
|
||||||
|
cairo_move_to(cr,
|
||||||
|
x + min_r * cos(angle),
|
||||||
|
y + min_r * sin(angle));
|
||||||
|
|
||||||
|
cairo_line_to(cr,
|
||||||
|
x + max_r * cos(angle),
|
||||||
|
y + max_r * sin(angle));
|
||||||
|
|
||||||
|
cairo_stroke(cr);
|
||||||
|
}
|
||||||
|
|
||||||
static void draw_tachometer_needle(cairo_t *cr,
|
static void draw_tachometer_needle(cairo_t *cr,
|
||||||
double x,
|
double x,
|
||||||
double y,
|
double y,
|
||||||
|
@ -85,7 +106,8 @@ static void draw_tachometer_needle(cairo_t *cr,
|
||||||
static void draw_tachometer(cairo_t *cr,
|
static void draw_tachometer(cairo_t *cr,
|
||||||
double x,
|
double x,
|
||||||
double y,
|
double y,
|
||||||
double r) {
|
double r,
|
||||||
|
double redline) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
cairo_select_font_face(cr, "Helvetica",
|
cairo_select_font_face(cr, "Helvetica",
|
||||||
|
@ -112,6 +134,26 @@ static void draw_tachometer(cairo_t *cr,
|
||||||
488 * (M_PI/180),
|
488 * (M_PI/180),
|
||||||
i / 80.0,
|
i / 80.0,
|
||||||
text);
|
text);
|
||||||
|
|
||||||
|
draw_face_mark(cr, x, y,
|
||||||
|
0.7 * r,
|
||||||
|
0.8 * r,
|
||||||
|
232 * (M_PI/180),
|
||||||
|
488 * (M_PI/180),
|
||||||
|
i / 80.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i=0; i<=80; i++) {
|
||||||
|
if (i * 100 >= redline) {
|
||||||
|
cairo_set_source_rgb(cr, 1, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_face_mark(cr, x, y,
|
||||||
|
0.75 * r,
|
||||||
|
0.8 * r,
|
||||||
|
232 * (M_PI/180),
|
||||||
|
488 * (M_PI/180),
|
||||||
|
i / 80.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,6 +188,24 @@ static void draw_speedometer(cairo_t *cr,
|
||||||
i / 180.0,
|
i / 180.0,
|
||||||
text);
|
text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i=0; i<=180; i+=10) {
|
||||||
|
draw_face_mark(cr, x, y,
|
||||||
|
0.7 * r,
|
||||||
|
0.8 * r,
|
||||||
|
232 * (M_PI/180),
|
||||||
|
488 * (M_PI/180),
|
||||||
|
i / 180.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i=0; i<=180; i+=2) {
|
||||||
|
draw_face_mark(cr, x, y,
|
||||||
|
0.75 * r,
|
||||||
|
0.8 * r,
|
||||||
|
232 * (M_PI/180),
|
||||||
|
488 * (M_PI/180),
|
||||||
|
i / 180.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void draw_speedometer_needle(cairo_t *cr,
|
static void draw_speedometer_needle(cairo_t *cr,
|
||||||
|
@ -310,7 +370,8 @@ static void cluster_draw_bg(cairo_t *cr,
|
||||||
draw_tachometer(cr,
|
draw_tachometer(cr,
|
||||||
width * 0.2,
|
width * 0.2,
|
||||||
height * 0.5,
|
height * 0.5,
|
||||||
height * 0.4);
|
height * 0.4,
|
||||||
|
6500);
|
||||||
|
|
||||||
draw_speedometer(cr,
|
draw_speedometer(cr,
|
||||||
width * 0.8,
|
width * 0.8,
|
||||||
|
|
Loading…
Add table
Reference in a new issue