확실히 이것은 당신 중 일부에게는 매우 사소한 수학적 내용입니다.이 회전 문제를 해결하는 방법은 무엇입니까?
하지만보기를 회전 할 때 0도에서 시작하여 0.1, 1, 10, 100, 150, 160, 170, 179, 179,999 앞으로 회전하고 같은 방향으로 회전하면 계속됩니다. , 그것은 큰 소리로 그리고 명백하게 말한다 : BANG !!!! BAAAAAAAANNNNNGGGG !!!! -179,9999, -170, -150, -50, 0, 50, 100, 170, 179,99 및 다시 : BBBBAAAANNNGGG !!! -179,999, -170, -100 등등 ... 내 뜻을 알기 위해
도로에서 운전하면 갑자기 마일 - 오 - 미터가 부정적으로 점프한다고 상상해보십시오. 당신은 괴물을 낳았 지, 그렇지?
그리고 그거 알아? 이것은 내 알고리즘에 매우 나쁜 것입니다. 내가 아니 생각이 내 값을 갑자기 이상 스왑 경우 if-else-blocks 확인 이외의이 문제를 해결할 수 있습니다. 뭔가 내가 부비동 파도와 다른 것들과 같은 수학 함수를 봐야한다는 것을 알 수 있습니다. 그러나 나의 수학 지식은 최고 수준으로 빤다.
어떻게 해결할 수 있습니까? 각도 사이의 거리를 계산하려고합니다. 즉, 하나가 다른 곳에 있고 두 개 모두 회전하는 두 개의 뷰가 있습니다. 그리고 두 뷰의 전반적인 회전을 계산하려고합니다. 이 작은하지만 미친 일은 가치가 갑자기 -179,99999에서 179,99999로 바뀌 자마자 내 계산을 파괴합니다. 또한 180이 존재하는지 또는 물건이 fabsf (179,9999999999999999999)에서 어딘가로 바뀌는 지 알 수 없습니다. 무슨 뜻인지 아시면 알 수 있습니다.
예 : -170도에서 50도까지는 무엇입니까? 글쎄, 나는 -220도라고 생각해. 하지만 대신 -170 ~ 50을 돌릴 때 40 도가됩니다.
안전하지 않은 swapping-if-else 로직을 사용하지 않고 어떻게하면 -220을 40 대신에받을 수 있습니까? 때로는 제 수작업이 작동하지만 때로는 수학의 부정확 함 때문에 그다지 중요하지 않습니다.
편집 :보기의 레이어의 transform.rotation.z 속성에서 각도를 계산합니다.
당신의 각도가 어디에서 왔는지 조금 더 분명해야합니다. 프로그램의 어느 부분에서 계산합니까? –
추가 편집 :보기 레이어의 transform.rotation.z 속성에서 각도를 계산합니다 –