diff options
Diffstat (limited to 'board.c')
-rw-r--r-- | board.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -52,6 +52,18 @@ void init_board() init_rings(); } +struct ccoords pol_to_cart(struct pcoords c) +{ + double t = c.a * (M_PI / 180); + return (struct ccoords){ .x = c.r * cos(t), .y = c.r * sin(t) }; +} + +struct pcoords cart_to_pol(struct ccoords c) +{ + return (struct pcoords){ .a = atan2(c.y, c.x) * (180 / M_PI), + .r = sqrt(pow(c.x, 2) + pow(c.y, 2)) }; +} + static int sector_from_angle(double angle) { double shifted = angle - 90 - (SECTOR_WIDTH / 2); |