diff --git a/src/main.c b/src/main.c index d7414679e52381259b571d401df3558cc5de1348..1e2e03e669358f7c78997abae75a42f116d7041a 100644 --- a/src/main.c +++ b/src/main.c @@ -21,6 +21,7 @@ #define Y_CHARGE_2 0.5 #define NB_OF_LINES 100 +#define NB_OF_CHARGES 3 #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) @@ -58,14 +59,17 @@ int main() } // ! INIT CHARGES - charge_t *charges = malloc(2 * sizeof(*charges)); + charge_t *charges = malloc(NB_OF_CHARGES * sizeof(*charges)); charges[0].pos = (vec2){X_CHARGE_1, Y_CHARGE_1}; charges[0].q = 1.6E-19; charges[1].pos = (vec2){X_CHARGE_2, Y_CHARGE_2}; charges[1].q = 1.6E-19; + charges[2].pos = (vec2){X_CHARGE_2, Y_CHARGE_2}; + charges[2].q = 1.6E-19; // ! INIT LISTE DE POINTS + // Fait de cette manière pour le live update vec2 *lines = malloc(NB_OF_LINES * sizeof(*lines)); for (int i = 0; i < NB_OF_LINES; i++) { @@ -106,11 +110,10 @@ int main() { SDL_GetMouseState(&mouse_x, &mouse_y); - if (event.button.button == SDL_BUTTON_RIGHT) { choosen_part = -1; - for (int i = 0; i < 2; i++) + for (int i = 0; i < NB_OF_CHARGES; i++) { coordinates_t c = vec2_to_coordinates(charges[i].pos, WIDTH, HEIGHT); @@ -126,7 +129,7 @@ int main() { choosen_part = -1; // ! HARDCODED VALUE - for (int i = 0; i < 2; i++) + for (int i = 0; i < NB_OF_CHARGES; i++) { coordinates_t c = vec2_to_coordinates(charges[i].pos, WIDTH, HEIGHT); @@ -157,13 +160,13 @@ int main() case LIGNES: GFX_ClearScreen(renderer, COLOR_BLACK); draw_lines(renderer, charges, lines, NB_OF_LINES); - draw_charges(renderer, charges, 2, 10); + draw_charges(renderer, charges, NB_OF_CHARGES, 10); SDL_RenderPresent(renderer); state = IDLE; break; case HEATMAP: draw_heatmap(renderer, charges); - draw_charges(renderer, charges, 2, 10); + draw_charges(renderer, charges, NB_OF_CHARGES, 10); SDL_RenderPresent(renderer); state = IDLE; break; @@ -173,7 +176,7 @@ int main() charges[choosen_part].pos.y = (double)mouse_y / HEIGHT; GFX_ClearScreen(renderer, COLOR_BLACK); draw_lines(renderer, charges, lines, NB_OF_LINES); - draw_charges(renderer, charges, 2, 10); + draw_charges(renderer, charges, NB_OF_CHARGES, 10); SDL_RenderPresent(renderer); break; } @@ -221,7 +224,7 @@ void draw_heatmap(SDL_Renderer* renderer, charge_t* charges) { vec2 e = {.x = 0, .y = 0}; vec2 p = {.x = (double)(x) / (double)(WIDTH), .y = (double)(y) / (double)(HEIGHT)}; - if (compute_total_normalized_e(charges, 2, p, 0.05, &e)) + if (compute_total_normalized_e(charges, NB_OF_CHARGES, p, 0.05, &e)) { e = vec2_mul(1E9, e); double tmp = vec2_norm(e); @@ -268,7 +271,7 @@ void draw_lines(SDL_Renderer* renderer, charge_t* charges, vec2* lines, int nb_o while (rendering) { vec2 e = {.x = 0, .y = 0}; - if (compute_total_normalized_e(charges, 2, p, 0.025, &e) == false) + if (compute_total_normalized_e(charges, NB_OF_CHARGES, p, 0.025, &e) == false) { side++; p = og_p;