Select Git revision
field.h 995 B
#ifndef _PHYSIQUE_H_
#define _PHYSIQUE_H_
#include <stdio.h>
#include "../utils/gfx/gfx.h"
#include "../utils/vec2/vec2.h"
#include "../utils/utils.h"
#define SIDE_LEN 1000
#define WID SIDE_LEN
#define HEI WID
/// Compute E*qP/norm(qP)
/// Return false if norm(qP) < eps
/// Compute the vector value of the field generated by a charge at a given point in space.
/// qP = vectoriel(P-q)
bool compute_e(charge_t c, vec2 p, double eps, vec2 *e);
/// Compute the normalized sum of Ei*qiP/norm(qiP)
/// Return false if for some qiP, norm(qiP) < eps
bool compute_total_normalized_e(charge_t *charges, int num_charges, vec2 p, double eps, vec2 *e);
bool line_reach_charge(vec2 pos, charge_t *charges, int num_charges, double dx);
bool is_in_screen(coordinates_t pos);
void force_in_screen(coordinates_t *pos);
void draw_everything(
struct gfx_context_t *ctxt,
charge_t *charges,
int num_charges,
int num_lines,
double dx,
double x0, double x1,
double y0, double y1);
#endif