#include "mathutils.h" #include "../../gfx/gfx.h" #include point scale_to_screen( double x, double y, double w_meters, double h_meters, double x_off, double y_off) { return (point) { .x = x * ((double) SCREEN_WIDTH / w_meters) + x_off, .y = y * ((double) SCREEN_HEIGHT / h_meters) + y_off, }; } point scale_to_field( double x, double y, double w_meters, double h_meters, double x_off, double y_off) { return (point) { .x = (x - x_off) / ((double) SCREEN_WIDTH / w_meters), .y = (y - y_off) / ((double) SCREEN_HEIGHT / h_meters), }; } bool within_box(point p, rect r) { return p.x >= r.x && p.y >= r.y && p.x <= r.x + r.w && p.y <= r.y + r.h; } point lerp_point(point a, point b, float p) { return (point) { a.x + (b.x - a.x) * p, a.y + (b.y - a.y) * p }; } double get_distance(point a, point b) { return sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)); }