diff --git a/src/main.c b/src/main.c
index 7fc6b8b9aee8a7bde34a055671758748b4aaf523..e6124922d96c2104eae3d54ac9b7a6bf430947b9 100644
--- a/src/main.c
+++ b/src/main.c
@@ -22,17 +22,43 @@ int main(int argc, char *argv[]) {
     double x1 = 1;
     double y1 = 1;
 
-    int num_charges = 2, num_points = 100;
+    int num_charges = 4;
     charge_t *charges = (charge_t *)malloc(sizeof(charge_t) * num_charges);
-    charges[0] = charge_create(-ELEMENTARY_CHARGE, vector2_create(.25, .5));
-    charges[1] = charge_create(ELEMENTARY_CHARGE, vector2_create(.75, .5));
+    charges[0] = charge_create(ELEMENTARY_CHARGE * 5, vector2_create(.25, .5));
+    charges[1] = charge_create(-ELEMENTARY_CHARGE, vector2_create(.75, .5));
+    charges[2] = charge_create(-ELEMENTARY_CHARGE * 4, vector2_create(.5, .25));
+    charges[3] = charge_create(ELEMENTARY_CHARGE * 5, vector2_create(.7, .75));
 
     double dx = compute_delta_x(SCREEN_WIDTH, SCREEN_HEIGHT);
 
     gfx_clear(canvas, COLOR_BLACK);
     draw_charges(canvas, charges, num_charges, x0, x1, y0, y1);
-    for (int i = 0; i < num_points; i += 1) {
-        draw_field_lines(canvas, charges, num_charges, dx, vector2_create(rand_one(), rand_one()), x0, x1, y0, y1);
+
+    // Default strategy.
+    // int num_points = 100;
+    // for (int i = 0; i < num_points; i += 1) {
+    //     draw_field_lines(canvas, charges, num_charges, dx, vector2_create(rand_one(), rand_one()), x0, x1, y0, y1);
+    // }
+
+    // Alternative strategy 1.
+    // for (int32_t i = 1; i < SCREEN_HEIGHT; i += 1) {
+    //     for (int32_t j = 1; j < SCREEN_WIDTH; j += 1) {
+    //         double x = 1.0 / (SCREEN_WIDTH * .05) * j;
+    //         double y = 1.0 / (SCREEN_HEIGHT * .05) * i;
+    //         draw_field_lines(canvas, charges, num_charges, dx, vector2_create(x, y), x0, x1, y0, y1);
+    //     }
+    // }
+
+    // Alternative strategy 2.
+    for (int32_t i = 0; i < num_charges; i += 1) {
+        vector2_t pos = charges[i].pos;
+
+        double angle = 0;
+        while (angle < 2 * M_PI) {
+            angle += 2 * M_PI / 64;
+            vector2_t pos0 = vector2_add(pos, vector2_create(cos(angle) * 0.1, sin(angle) * 0.1));
+            draw_field_lines(canvas, charges, num_charges, dx, pos0, x0, x1, y0, y1);
+        }
     }
 
     gfx_present(canvas);