Polar and 2D cartesian coordinate conversions
Former-commit-id: 0fee2d7c0f9a0f26267887e563ad237efb5be8ed
This commit is contained in:
parent
530270b5af
commit
0719043653
|
@ -35,6 +35,21 @@ static inline double cart2norm(const cart2_t v) {
|
||||||
return sqrt(v.x*v.x + v.y*v.y);
|
return sqrt(v.x*v.x + v.y*v.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline pol_t cart2pol(const cart2_t cart) {
|
||||||
|
pol_t pol;
|
||||||
|
pol.r = cart2norm(cart);
|
||||||
|
pol.phi = atan2(cart.y, cart.x);
|
||||||
|
return pol;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline sph_t pol2sph_equator(const pol_t pol) {
|
||||||
|
sph_t sph;
|
||||||
|
sph.r = pol.r;
|
||||||
|
sph.phi = pol.phi;
|
||||||
|
sph.theta = M_PI_2;
|
||||||
|
return sph;
|
||||||
|
}
|
||||||
|
|
||||||
static inline sph_t cart22sph(const cart2_t cart) {
|
static inline sph_t cart22sph(const cart2_t cart) {
|
||||||
sph_t sph;
|
sph_t sph;
|
||||||
sph.r = cart2norm(cart);
|
sph.r = cart2norm(cart);
|
||||||
|
@ -43,10 +58,19 @@ static inline sph_t cart22sph(const cart2_t cart) {
|
||||||
return sph;
|
return sph;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline cart3_t cart22cart3xy(const cart2_t a) {
|
||||||
|
cart3_t c;
|
||||||
|
c.x = a.x;
|
||||||
|
c.y = a.y;
|
||||||
|
c.z = 0;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
static inline double cart3norm(const cart3_t v) {
|
static inline double cart3norm(const cart3_t v) {
|
||||||
return sqrt(v.x*v.x + v.y*v.y + v.z*v.z);
|
return sqrt(v.x*v.x + v.y*v.y + v.z*v.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline sph_t cart2sph(const cart3_t cart) {
|
static inline sph_t cart2sph(const cart3_t cart) {
|
||||||
sph_t sph;
|
sph_t sph;
|
||||||
sph.r = cart3norm(cart);
|
sph.r = cart3norm(cart);
|
||||||
|
@ -68,6 +92,13 @@ static inline cart3_t sph2cart(const sph_t sph) {
|
||||||
return cart;
|
return cart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline cart2_t pol2cart(const pol_t pol) {
|
||||||
|
cart2_t cart;
|
||||||
|
cart.x = pol.r * cos(pol.phi);
|
||||||
|
cart.y = pol.r * sin(pol.phi);
|
||||||
|
return cart;
|
||||||
|
}
|
||||||
|
|
||||||
static inline cart3_t cart3_add(const cart3_t a, const cart3_t b) {
|
static inline cart3_t cart3_add(const cart3_t a, const cart3_t b) {
|
||||||
cart3_t res = {a.x+b.x, a.y+b.y, a.z+b.z};
|
cart3_t res = {a.x+b.x, a.y+b.y, a.z+b.z};
|
||||||
return res;
|
return res;
|
||||||
|
|
Loading…
Reference in New Issue