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
+3 -3
View File
@@ -561,7 +561,7 @@ static void alarm_window_load() {
uint8_t ignored_side = rand() % 3; uint8_t ignored_side = rand() % 3;
switch (ignored_side) { switch (ignored_side) {
case 0: 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_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); snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
s_options_over[0] = side_b_buffer; s_options_over[0] = side_b_buffer;
@@ -570,7 +570,7 @@ static void alarm_window_load() {
s_options_under[1] = side_c_buffer; s_options_under[1] = side_c_buffer;
break; break;
case 1: 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_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); snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
s_options_over[0] = side_a_buffer; s_options_over[0] = side_a_buffer;
@@ -579,7 +579,7 @@ static void alarm_window_load() {
s_options_under[1] = side_c_buffer; s_options_under[1] = side_c_buffer;
break; break;
case 2: 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_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); snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b);
s_options_over[0] = side_a_buffer; s_options_over[0] = side_a_buffer;
+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(end_x, base_y));
graphics_draw_line(ctx, GPoint(start_x, base_y), GPoint(apex_x, apex_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)); 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) { 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; tri->color = color;
// determine angles // determine angles
tri->angle_A = 90; tri->angle_A = 90; // right angle at apex
tri->angle_B = rand() % 86; // acute angle at left base vertex 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->angle_C = 90 - tri->angle_B; // acute angle at right base vertex
tri->theta_angle_is_left = rand() % 2;
// choose hypotenuse length randomly // choose hypotenuse length randomly
uint16_t min_hyp = (frame.size.w < frame.size.h) ? frame.size.w / 2 : frame.size.h / 2; uint16_t min_hyp = (frame.size.w < frame.size.h) ? frame.size.w / 2 : frame.size.h / 2;
+3
View File
@@ -14,6 +14,9 @@ typedef struct {
uint16_t side_a; uint16_t side_a;
uint16_t side_b; uint16_t side_b;
uint16_t side_c; uint16_t side_c;
// determines which angle the user needs to solve for
bool theta_angle_is_left;
} __attribute__((__packed__)) RightTriangleLayer; } __attribute__((__packed__)) RightTriangleLayer;
RightTriangleLayer *right_triangle_layer_create(GRect frame, GColor color); RightTriangleLayer *right_triangle_layer_create(GRect frame, GColor color);