12345678910111213141516171819202122232425 |
- #include <math.h>
- #include "geometry.h"
- cartesian_pos_3d_t convert_to_3d_cartesian_pos(
- const polar_pos_3d_t* polar_pos) {
- cartesian_pos_3d_t result;
- result.x = polar_pos->length *
- sin_deg(polar_pos->theta) * cos_deg(polar_pos->phi);
- result.y = polar_pos->length *
- sin_deg(polar_pos->theta) * sin_deg(polar_pos->phi);
- result.z = polar_pos->length * cos_deg(polar_pos->theta);
- return result;
- }
- polar_pos_3d_t convert_to_3d_polar_pos(
- const cartesian_pos_3d_t* cartesian_pos) {
- polar_pos_3d_t result;
- result.length = sqrt(cartesian_pos->x * cartesian_pos->x +
- cartesian_pos->y * cartesian_pos->y +
- cartesian_pos->z * cartesian_pos->z);
- result.theta = to_degree(acos(cartesian_pos->z / result.length));
- result.phi = to_degree(atan(cartesian_pos->y / cartesian_pos->x));
- return result;
- }
|