Designate a theta angle
This commit is contained in:
+3
-3
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user