Skip to content
Snippets Groups Projects
Commit 5b006cbf authored by tanguy.cavagna's avatar tanguy.cavagna :desktop:
Browse files

Added left click for + charge and right click for - charge & better random q

parent 95eb3773
Branches
No related tags found
No related merge requests found
...@@ -69,4 +69,8 @@ bool compute_p_next(charge_t *charges, int num_charges, double eps, ...@@ -69,4 +69,8 @@ bool compute_p_next(charge_t *charges, int num_charges, double eps,
charge_t charge_create(double q, vec2 pos) { charge_t charge_create(double q, vec2 pos) {
charge_t c = {.q = q, .pos = pos}; charge_t c = {.q = q, .pos = pos};
return c; return c;
}
double random_charge_q(bool positive) {
return rand_one() * (positive ? 1 : -1);
} }
\ No newline at end of file
...@@ -109,4 +109,12 @@ bool compute_p_next(charge_t *charges, int num_charges, double eps, ...@@ -109,4 +109,12 @@ bool compute_p_next(charge_t *charges, int num_charges, double eps,
*/ */
charge_t charge_create(double q, vec2 pos); charge_t charge_create(double q, vec2 pos);
/**
* @brief Return a random charge q
*
* @param positive
* @return double
*/
double random_charge_q(bool positive);
#endif #endif
\ No newline at end of file
...@@ -84,13 +84,18 @@ void handle_mouse_input(int button, int state, int x, int y) { ...@@ -84,13 +84,18 @@ void handle_mouse_input(int button, int state, int x, int y) {
if (state == GLUT_UP) if (state == GLUT_UP)
return; return;
if (button == GLUT_LEFT_BUTTON) { if (button == GLUT_LEFT_BUTTON || button == GLUT_RIGHT_BUTTON) {
charge_count += 1; charge_count += 1;
default_charges_pos[charge_count - 1] = default_charges_pos[charge_count - 1] =
vec2_create((double)x / WINDOW_WIDTH, (double)y / WINDOW_HEIGHT); vec2_create((double)x / WINDOW_WIDTH, (double)y / WINDOW_HEIGHT);
default_charges[charge_count - 1] = rand_one() / (rand_one() * 10 - 5);
} }
if (button == GLUT_LEFT_BUTTON)
default_charges[charge_count - 1] = random_charge_q(true);
if (button == GLUT_RIGHT_BUTTON)
default_charges[charge_count - 1] = random_charge_q(false);
glutPostRedisplay(); glutPostRedisplay();
} }
...@@ -106,7 +111,7 @@ int main(int argc, char **argv) { ...@@ -106,7 +111,7 @@ int main(int argc, char **argv) {
// Generate all default charges // Generate all default charges
for (int i = 0; i < charge_count; i++) { for (int i = 0; i < charge_count; i++) {
default_charges[i] = rand_one() / (rand_one() * 10 - 5); default_charges[i] = random_charge_q((bool)(rand() % 2 == 0));
default_charges_pos[i] = vec2_create(rand_one(), rand_one()); default_charges_pos[i] = vec2_create(rand_one(), rand_one());
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment