Przeglądaj źródła

Fixing bugs in radian-degree conversion.
Fixing bug in rotate-point.

Sam Jaffe 6 lat temu
rodzic
commit
8ecd4056d5
2 zmienionych plików z 3 dodań i 3 usunięć
  1. 2 2
      math/src/angle.cpp
  2. 1 1
      math/src/common.cpp

+ 2 - 2
math/src/angle.cpp

@@ -13,8 +13,8 @@ namespace math {
   degree::degree(double v) : value(v) {}
 
   radian::radian(double v) : value(v) {}
-  radian::radian(degree d) : value(d.value / M_2_PI) {}
-  radian::operator degree() const { return {value * M_2_PI}; }
+  radian::radian(degree d) : value(d.value * M_PI / 180.f) {}
+  radian::operator degree() const { return {value * M_1_PI * 180.f}; }
 
   double sin(radian r) { return std::sin(r.value); }
   double cos(radian r) { return std::cos(r.value); }

+ 1 - 1
math/src/common.cpp

@@ -17,7 +17,7 @@ namespace math {
   vec2 rotate(vec2 const & point, radian r) {
     vec2 vcos = point * static_cast<float>(cos(r));
     vec2 vsin = point * static_cast<float>(sin(r));
-    return {{vcos[0] - vsin[1], vsin[0] - vcos[1]}};
+    return {{vcos[0] - vsin[1], vsin[0] + vcos[1]}};
   }
 
   vec2 rotate(vec2 const & c, vec2 const & p, radian r) {