각도를 +/- π로 정규화하는 라이브러리 함수 또는 잘 알려진 Java의 효율적인 효율적인 방법이 있습니까? 두 각도를 추가 할 때?Java에서 +/- π 라디안 각도로 표준화하는 표준 방법
내가 (this answer 기준) 지금 가지고 무엇을 기본적으로 아래의 코드는 ...
private static final double TWO_PI = 2 * Math.PI;
double normalize(double theta) {
double normalized = theta % TWO_PI;
normalized = (normalized + TWO_PI) % TWO_PI;
return normalized <= Math.PI ? normalized : normalized - TWO_PI;
}
...하지만 조금 복잡한 것 같습니다과 성능이 많다는 나는 흥분 아니에요 모듈러스 연산자. (사실 theta
은 비교적 큰 숫자가 아니므로 루핑을하지 않는 순수한 덧셈/뺄셈 해법은 없다고 생각합니다. 실제로 손으로 구부린 루프가 %
)
내가 사용할 수있는 잘 테스트 된 최적화 된 라이브러리 기능이 있습니까? 아니면 더 나은 알고리즘입니까, 아니면 얻은만큼 좋을까요?
가장 가까운 90도 (반원) 또는 가장 가까운 180도 (전체 파이)로 반올림하려하십니까? – Kon
@Kon 180도/풀 파이. –
[-179도에서 180도 사이의 각도를 유지하는 쉬운 방법] 가능한 중복 (http://stackoverflow.com/questions/2320986/easy-way-to-keeping-angles-between-179-and-180-degrees) –