*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);
|
||||
}
|
||||
|
||||
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,
|
||||
double x,
|
||||
double y,
|
||||
|
@ -85,7 +106,8 @@ static void draw_tachometer_needle(cairo_t *cr,
|
|||
static void draw_tachometer(cairo_t *cr,
|
||||
double x,
|
||||
double y,
|
||||
double r) {
|
||||
double r,
|
||||
double redline) {
|
||||
int i;
|
||||
|
||||
cairo_select_font_face(cr, "Helvetica",
|
||||
|
@ -112,6 +134,26 @@ static void draw_tachometer(cairo_t *cr,
|
|||
488 * (M_PI/180),
|
||||
i / 80.0,
|
||||
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,
|
||||
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,
|
||||
|
@ -310,7 +370,8 @@ static void cluster_draw_bg(cairo_t *cr,
|
|||
draw_tachometer(cr,
|
||||
width * 0.2,
|
||||
height * 0.5,
|
||||
height * 0.4);
|
||||
height * 0.4,
|
||||
6500);
|
||||
|
||||
draw_speedometer(cr,
|
||||
width * 0.8,
|
||||
|
|
Loading…
Add table
Reference in a new issue