improved rounding of discrete angles
This commit is contained in:
parent
536d6cef19
commit
800eb75e28
@ -67,7 +67,7 @@ template <> float AngleOf<float>::InRadians() const {
|
||||
|
||||
template <> AngleOf<signed short> AngleOf<signed short>::Degrees(float angle) {
|
||||
// map float [-180..180) to integer [-32768..32767]
|
||||
signed short value = (signed short)(angle / 360.0F * 65536.0F);
|
||||
signed short value = (signed short)roundf(angle / 360.0F * 65536.0F);
|
||||
return AngleOf<signed short>(value);
|
||||
}
|
||||
|
||||
@ -76,7 +76,7 @@ template <> AngleOf<signed short> AngleOf<signed short>::Radians(float angle) {
|
||||
return AngleOf<signed short>(0);
|
||||
|
||||
// map float [-PI..PI) to integer [-32768..32767]
|
||||
signed short value = (signed short)(angle / pi * 32768.0F);
|
||||
signed short value = (signed short)roundf(angle / pi * 32768.0F);
|
||||
return AngleOf<signed short>(value);
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ template <> float AngleOf<signed short>::InRadians() const {
|
||||
|
||||
template <> AngleOf<signed char> AngleOf<signed char>::Degrees(float angle) {
|
||||
// map float [-180..180) to integer [-128..127)
|
||||
signed char value = (signed char)(angle / 360.0F * 256.0F);
|
||||
signed char value = (signed char)roundf(angle / 360.0F * 256.0F);
|
||||
return AngleOf<signed char>(value);
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ template <> AngleOf<signed char> AngleOf<signed char>::Radians(float angle) {
|
||||
return AngleOf<signed char>(0);
|
||||
|
||||
// map float [-pi..pi) to integer [-128..127)
|
||||
signed char value = (signed char)(angle / pi * 128.0f);
|
||||
signed char value = (signed char)roundf(angle / pi * 128.0f);
|
||||
return AngleOf<signed char>(value);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user