2d.c 644 B

12345678910111213141516171819202122
  1. #include <math.h>
  2. #include "geometry.h"
  3. cartesian_pos_2d_t convert_to_2d_cartesian_pos(
  4. const polar_pos_2d_t* polar_pos) {
  5. cartesian_pos_2d_t result;
  6. result.x = polar_pos->length * cos_deg(polar_pos->theta);
  7. result.y = polar_pos->length * sin_deg(polar_pos->theta);
  8. return result;
  9. }
  10. polar_pos_2d_t convert_to_2d_polar_pos(
  11. const cartesian_pos_2d_t* cartesian_pos) {
  12. polar_pos_2d_t result;
  13. result.length = sqrt(cartesian_pos->x * cartesian_pos->x +
  14. cartesian_pos->y * cartesian_pos->y);
  15. result.theta =
  16. to_degree(atan(cartesian_pos->y / cartesian_pos->x));
  17. return result;
  18. }