Skip to content
Snippets Groups Projects
Select Git revision
  • 2343770c01c45b31738c9d87d5ef1f740fef70bf
  • main default protected
  • polish
3 results

field.h

Blame
  • user avatar
    2343770c
    History
    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