나는 게임을하고 있는데 기본 클래스 Entity
을 쓰고 있습니다. 많은 엔티티가 입자처럼 동작 할 것이므로 (2D로 회전) 각도 대신 회전을 사용하고 싶습니다. 그러나 OpenGL을 사용하고 있기 때문에 나는 회전의 법선을 가질 필요가 있습니다. 법선에서 각도로 변환하는 가장 빠른 방법은 무엇이며 그 반대도 마찬가지입니다. 나는 atan2
sin
cos
등과 같은 삼각 함수를 사용할 수 있다는 것을 알고 있지만 더 빠른 방법이 있다고 확신합니다. 어떤 도움이나 방향을 주시면 감사하겠습니다.법선을도로 변환하는 방법은 무엇입니까?
1
A
답변
8
하면 2 개 차원으로 제한하고 당신은 x 축에서 각도로 방향 벡터 (X, Y)를 변환하려는 경우, 다음 atan2(y, x)
거의 확실히 당신의 가장 빠른 될 것입니다 x와 y의 가능한 값을 꽤 사소한 경우로 제한하지 않는 한, 물론 Y 축에서 각도를 얻으려면 atan2(x, y)
을 사용하십시오. 이 각도는 라디안 단위입니다. 각도로 변환하려면 180/pi를 곱합니다. 이 작업에는 사소한 시간이 필요합니다.
드로잉하는 그림은 atan2(x, y) * 180/Math.PI
이 원하는 결과를 제공함을 나타냅니다.
코드를 프로파일 링하고이 계산에서 병목 현상이있는 것으로 판단되지 않는 한 속도와 관련이 없습니다 (가능성이 낮음).
+0
최종 단락을 위해 Upvoted, 많은 사람들이 그 실수를합니다. – SHiRKiT
관련 문제
- 1. 메쉬를 변환하는 방법은 무엇입니까?
- 2. ViewModel로 변환하는 방법은 무엇입니까?
- 3. 검색어를 변환하는 방법은 무엇입니까?
- 4. PHP를 .NET으로 변환하는 방법은 무엇입니까?
- 5. 개체를 int로 변환하는 방법은 무엇입니까?
- 6. .mts를 .mcode로 변환하는 방법은 무엇입니까?
- 7. 표현식을 cps로 변환하는 방법은 무엇입니까?
- 8. LF를 CRLF로 변환하는 방법은 무엇입니까?
- 9. String을 Long으로 변환하는 방법은 무엇입니까?
- 10. 숫자를 바이트로 변환하는 방법은 무엇입니까?
- 11. MemoryStream을 FileStream으로 변환하는 방법은 무엇입니까?
- 12. NSString을 NSDate로 변환하는 방법은 무엇입니까?
- 13. nsdata를 이미지로 변환하는 방법은 무엇입니까?
- 14. string을 uniqueidentifier로 변환하는 방법은 무엇입니까?
- 15. NSString을 NSString으로 변환하는 방법은 무엇입니까?
- 16. 플래시를 HTML5로 변환하는 방법은 무엇입니까?
- 17. Bitmap을 Drawable으로 변환하는 방법은 무엇입니까?
- 18. OutputStream을 File로 변환하는 방법은 무엇입니까?
- 19. 배열을 튜플로 변환하는 방법은 무엇입니까?
- 20. NSString을 NSString으로 변환하는 방법은 무엇입니까?
- 21. OutputStream을 문자열로 변환하는 방법은 무엇입니까?
- 22. sortedDictionary를 사전으로 변환하는 방법은 무엇입니까?
- 23. 유형을 제네릭으로 변환하는 방법은 무엇입니까?
- 24. 변수를 json으로 변환하는 방법은 무엇입니까?
- 25. xsl을 html로 변환하는 방법은 무엇입니까?
- 26. datatable을 xml로 변환하는 방법은 무엇입니까?
- 27. .load에서 .ajax로 변환하는 방법은 무엇입니까?
- 28. 바이트를 십진수로 변환하는 방법은 무엇입니까?
- 29. 숫자를 문자열로 변환하는 방법은 무엇입니까?
- 30. char를 binary로 변환하는 방법은 무엇입니까?
법선은 항상 표면에서 90도입니다. 내가 뭘했는지 모르겠다. – MichaelHouse
아니 이차원 적으로. 다이어그램 만들기. –
알아낼 수없는 경우 단순히 조회 테이블을 만들 수도 있습니다. ': P –