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);
float Polar::Distance(const Polar& v1, const Polar& v2) {
float Polar::Distance(const Polar &v1, const Polar &v2) {
float d =
Angle::CosineRuleSide(v1.distance, v2.distance, v2.angle - v1.angle);
return d;
}
Polar Polar::operator+(const Polar& v2) const {
Polar Polar::operator+(const Polar &v2) const {
if (v2.distance == 0)
return Polar(this->angle, this->distance);
if (this->distance == 0)
@ -58,7 +58,7 @@ Polar Polar::operator-() {
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));
return vector;
}
@ -67,11 +67,11 @@ Polar Polar::operator*(float f) const {
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);
}
Polar Polar::Rotate(Polar v, float angle) {
v.angle += angle;
v.angle = Angle::Normalize(v.angle + angle);
return v;
}