Normalize the result of the rotation

This commit is contained in:
Pascal Serrarens 2023-12-29 12:27:22 +01:00
parent 006ea046e4
commit aaf335d218

View File

@ -21,13 +21,13 @@ Polar::Polar(float newAngle, float newDistance) {
const Polar Polar::zero = Polar(0, 0); const Polar Polar::zero = Polar(0, 0);
float Polar::Distance(const Polar& v1, const Polar& v2) { float Polar::Distance(const Polar &v1, const Polar &v2) {
float d = float d =
Angle::CosineRuleSide(v1.distance, v2.distance, v2.angle - v1.angle); Angle::CosineRuleSide(v1.distance, v2.distance, v2.angle - v1.angle);
return d; return d;
} }
Polar Polar::operator+(const Polar& v2) const { Polar Polar::operator+(const Polar &v2) const {
if (v2.distance == 0) if (v2.distance == 0)
return Polar(this->angle, this->distance); return Polar(this->angle, this->distance);
if (this->distance == 0) if (this->distance == 0)
@ -58,7 +58,7 @@ Polar Polar::operator-() {
return vector; return vector;
} }
Polar Polar::operator-(const Polar& v2) const { Polar Polar::operator-(const Polar &v2) const {
Polar vector = *this + (Polar(v2.angle - 180, v2.distance)); Polar vector = *this + (Polar(v2.angle - 180, v2.distance));
return vector; return vector;
} }
@ -67,11 +67,11 @@ Polar Polar::operator*(float f) const {
return Polar(this->angle, this->distance * f); return Polar(this->angle, this->distance * f);
} }
Polar Polar::operator/(const float& f) { Polar Polar::operator/(const float &f) {
return Polar(this->angle, this->distance / f); return Polar(this->angle, this->distance / f);
} }
Polar Polar::Rotate(Polar v, float angle) { Polar Polar::Rotate(Polar v, float angle) {
v.angle += angle; v.angle = Angle::Normalize(v.angle + angle);
return v; return v;
} }