Normalize the result of the rotation
This commit is contained in:
parent
006ea046e4
commit
aaf335d218
@ -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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user