From c346523d9626a35e8895572907b2f7ceb50c5ecb Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Fri, 7 Aug 2026 22:19:58 -0400 Subject: [PATCH] Designate a theta angle --- src/c/main.c | 6 +++--- src/c/triangles.c | 9 +++++++-- src/c/triangles.h | 3 +++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/c/main.c b/src/c/main.c index f607592..f124fbb 100644 --- a/src/c/main.c +++ b/src/c/main.c @@ -561,7 +561,7 @@ static void alarm_window_load() { uint8_t ignored_side = rand() % 3; switch (ignored_side) { case 0: - APP_LOG(APP_LOG_LEVEL_DEBUG, "b,c"); + // APP_LOG(APP_LOG_LEVEL_DEBUG, "b,c"); snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b); snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c); s_options_over[0] = side_b_buffer; @@ -570,7 +570,7 @@ static void alarm_window_load() { s_options_under[1] = side_c_buffer; break; case 1: - APP_LOG(APP_LOG_LEVEL_DEBUG, "a,c"); + // APP_LOG(APP_LOG_LEVEL_DEBUG, "a,c"); snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a); snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c); s_options_over[0] = side_a_buffer; @@ -579,7 +579,7 @@ static void alarm_window_load() { s_options_under[1] = side_c_buffer; break; case 2: - APP_LOG(APP_LOG_LEVEL_DEBUG, "a,b"); + // APP_LOG(APP_LOG_LEVEL_DEBUG, "a,b"); snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a); snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b); s_options_over[0] = side_a_buffer; diff --git a/src/c/triangles.c b/src/c/triangles.c index 1d86f26..772aed4 100644 --- a/src/c/triangles.c +++ b/src/c/triangles.c @@ -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; diff --git a/src/c/triangles.h b/src/c/triangles.h index 4c276be..659dbff 100644 --- a/src/c/triangles.h +++ b/src/c/triangles.h @@ -14,6 +14,9 @@ typedef struct { uint16_t side_a; uint16_t side_b; uint16_t side_c; + + // determines which angle the user needs to solve for + bool theta_angle_is_left; } __attribute__((__packed__)) RightTriangleLayer; RightTriangleLayer *right_triangle_layer_create(GRect frame, GColor color);