Designate a theta angle

This commit is contained in:
2026-08-07 22:19:58 -04:00
parent d32f7f1b4b
commit c346523d96
3 changed files with 13 additions and 5 deletions
+7 -2
View File
@@ -30,6 +30,10 @@ static void right_triangle_layer_update_proc(Layer *layer, GContext *ctx) {
graphics_draw_line(ctx, GPoint(start_x, base_y), GPoint(end_x, base_y));
graphics_draw_line(ctx, GPoint(start_x, base_y), GPoint(apex_x, apex_y));
graphics_draw_line(ctx, GPoint(end_x, base_y), GPoint(apex_x, apex_y));
// circle theta angle
graphics_context_set_stroke_color(ctx, GColorRed);
graphics_draw_circle(ctx, GPoint(tri->theta_angle_is_left ? start_x : end_x, base_y), 3);
}
RightTriangleLayer *right_triangle_layer_create(GRect frame, GColor color) {
@@ -41,9 +45,10 @@ RightTriangleLayer *right_triangle_layer_create(GRect frame, GColor color) {
tri->color = color;
// determine angles
tri->angle_A = 90;
tri->angle_B = rand() % 86; // acute angle at left base vertex
tri->angle_A = 90; // right angle at apex
tri->angle_B = 5 + rand() % 81; // acute angle at left base vertex
tri->angle_C = 90 - tri->angle_B; // acute angle at right base vertex
tri->theta_angle_is_left = rand() % 2;
// choose hypotenuse length randomly
uint16_t min_hyp = (frame.size.w < frame.size.h) ? frame.size.w / 2 : frame.size.h / 2;