2009-05-20 3 views
4

Sin (720) 또는 Cos (1440) (각도)? 컴퓨터 프로그래밍이든 다른 상황이든간에? 일반적으로 어떤 각도의 Sin/Cosine/Tan을 사용합니까? 360 이상입니까? 물리학에서각도가 360 °보다 높은 경우의 삼각법 비율

우리는 내적 및 교차 제품 많이 사용 할 수 있지만, 심지어는 각도를 180도 미만으로 항상 필요합니다.

안녕하세요. 나는 계산 방법을 알고 있습니다 .... 그들이 유용 할 지 알고 싶습니다. ???? 언제 상황이 발생합니까? 예를 들어 Sin (440)을 계산해야합니까?

+2

예, 각도가 360 ° 이상이어야합니다. – aib

답변

4

미만 0보다 큰 각도에서 나는 각 연산 할 때와 같은 상황이 올 보았다 :이 (인위적인)의 예에서

float angleOne = 150; 
float angleTwo = 250; 

//... 

float result = Sin(angleOne + angleTwo); // Sin(400) 
float result = Sin(angleOne - angleTwo); // Sin(-100) 

를, 그것은 분명한 것 같다,하지만 당신은 계산하는 경우 여러 객체의 임의의 회전을 기준으로 한 각도라면 어떤 종류의 숫자를 얻을 수 있는지 항상 알 수는 없습니다. 그가 예를 들어 회전 플랫폼 위에 서있는 동안 3D 게임에서 플레이어의 위치를 ​​계산한다고 상상해보십시오.

0

어떤 종류의 계산 때문에 360도를 초과하는 각도 측정이 될 수있는 시간은 분명히있을 수 있지만 그 중 하나가 무한히 많은 다른 각도 측정과 동일합니다. 하지만 0에서 360 사이의 값을 가질 수 있습니다. 그러나 함수를 코딩하는 경우이 계산을 직접 처리 할 수 ​​있어야합니다. 사용자 대신 mod를 사용하지 않아야합니다.

즉 sin (370) == sin (10)이고 사용자가이 변환 자체를 할 수는 있지만 한 가지 이유 또는 다른 이유로 원하지 않을 수 있습니다 (주석의 "볼트"예 참조). 최고 정격 응답), 함수는 모든 값을 처리 할 수 ​​있어야합니다.

+0

마지막 편집을 참조하십시오. – dharm0us

+0

downvote있어 ...? 이유를 분명히하지 마십시오. – Beska

10

수학 및 프로그래밍에 모두 : 다른 답변이 지적한 바와 같이

Sin(x) = Sin(x % 360) 

는 360 원을 더한 모듈 부분을 통해 하나 이상의 전체 회전을 표현보다 더 큰 각도. 이것은 어떤 경우에는 물리적 의미를 가질 수 있습니다.

또한 삼각 함수 계산을 할 때이 사실을 고려해야합니다. 예를 들어 : A> 180

sin(a)*cos(a) = (1/2)*sin(2a) 

당신은 각도 그런데 이상 360

의 죄를 얻을 살펴 here있을 것이다.

+0

알고 싶습니다. 사용법은 무엇입니까? 나는 그것을 계산하는 방법을 안다. ... – dharm0us

+6

순전히 합성적인 예로서, 나사 또는 볼트를 가져라. 360 ° 이상의 회전은 매우 구체적이고 중요한 의미를 지닙니다. 헤드가 향하는 방향은 여전히 ​​모듈로 360으로 계산되지만 회전이 그렇게 저장되면 중요한 정보가 손실됩니다. –

3

원 주위 한 회전은 360도 또는 2pi 라디안입니다.

Trigonometric functions (예 : 사인 및 코사인)은 360도에 도달하면 "랩 어라운드"하고 0도에서와 같은 방식으로 작동합니다. 기본적으로는, 다음이 발생

angle_in_unit_circle = angle mod 360 

또한, 이러한 접선 일부 삼각 함수는, 특정 각도로 정의되어 있지 않은 등의 각도의 탄젠트는 양 또는 음의 무한대를 반환한다 (90)와 270도 등. 주위에 표시하여 볼 수 있습니다

이 "포장"사인, 코사인, 그들은 또 다시 자신의 패턴을 반복 할 것이다 때문에 unit circle에 새겨 직각 삼각형, 그리고이 동작 makes those functions periodic을 사용하여 탄젠트 함수.

위키 피 디아에는 Trigonometric functions에 대한 광범위한 기사가 있으므로 살펴볼 가치가 있습니다.

사용의 측면에서

, 나는 꽤 어쩌면 아마도에서 특정 시간에 입자의 위치를 ​​나타 내기 위해,를 제외하고, 내 머리 위로 떨어져 좋은 예를 생각할 수 없다 사용 각도 θ 시간 t에 의존 polar coordinate system : 다음으로 표현 될 수

0 내지 720 t의 값
r(θ(t)) = t where θ(t) = t 

하는 Cartesian coordinate system로서 :

x(t) = r sin(θ(t)) == t sin(t) 
y(t) = r cos(θ(t)) == t cos(t) 

파티클은 시간이 t 일 때 나선형으로 움직입니다. 이 경우 360을 넘어서는 각도의 사인과 코사인이 계산됩니다.

sin(x) = sin(x mod 360°) 때문에

+0

죄 (720)를 계산할 필요가 있다면 알고 싶습니다. ??? 나는 그것을 계산하는 방법을 안다. – dharm0us

0

cos(x) = cos(x mod 360°) 당신이 계산의 모든 값을 사용할 수 있지만, 당신은 또한에 정상화 수있다 (그리고 내 수학 위의 수식에 오류가있는 경우,! 알려 주시기 바랍니다 녹슨, 그래서) 범위 [0°,360°) 또는 360°의 다른 모든 범위. 큰 각이 잘 정의 된 의미를 갖는지 여부는 사용법에 달려 있습니다.

프로세서는 계산을 90° 또는 그 이하 범위로 정규화하고이 작은 범위에서 다른 모든 값을 유도합니다.

360°보다 큰 인수는 언제 발생합니까?

자연스러운 현상은주기적인 시간 또는 공간에 의존하는 기능의 시뮬레이션에서 발생합니다.

+0

나의 마지막 편집을 보아라. – dharm0us

1

사인 곡선에서 Sin (720) == Sin (0) (등)이므로 함수의 적절한 구현이 360보다 큰 각도를 처리 할 것으로 기대합니다. 도착 이유는 다양합니다 (360) 또는

+0

덧셈, 뺄셈 및 곱셈 중 3 가지가 있습니다. – aib

1

"주각"[-180,180]의 범위를 벗어나는 각도는 기본적으로 서로의 별칭 (360도 모듈로)이며 물리적 구분이 없습니다.

수학적/공학적 관점에서 회전 수가 중요하며 추적해야하는 프로세스가있는 경우 (예 : 앞뒤로 회전하는 모터) 0도와 720 도가 같은. 사인과 코사인은주기적인 함수이므로 360도마다 동일한 값을 갖습니다. x (t) = A cos (ωt + φ) 및 y (t) = sin (ωt + φ) 인 균일 한 원형 운동을하는 파티클이있는 경우 위상 각 θ = (ωt + φ) 0 또는 720도 또는 82144.33도 또는 무엇이든 상관없이 그것이 될 것입니다.

따라서 θ 값이 무엇이든 관계없이 cos (θ) 및 sin (θ) 함수는 x 및 y 좌표를 계산하는 데 사용됩니다. 이 문제에서 선택의 여지가없는 것 같습니다. θ이 82144.33 도인 경우 그 각도의 사인과 코사인을 계산하려고 할 것입니다.

0

귀하의 질문하지 않습니다 당신이 여기의 차이를 알고 보인다만큼 의미보고합니다

없음 - 당신은 당신이 필요가있는 것보다 더 이상 죄 (720) "계산"필요하지 않습니다에 "계산을 "죄 (0). 당신은 Sinus 함수의 정의를 보면서 무엇이 계속되는지 이해할 필요가 있습니다 - 그리고 그것이 이해 될 때 그것은 Sin (0) = Sin (720)에 대해서 모든 사람들에게 이해가됩니다 - 마술은 계속 일어나지 않습니다 Angle = FullAngle % 360이 (논리적으로) 존재하지 않으며, 함수가 무엇을해야하는지에 대한 정의가 전부입니다.

See wikipedia

3

당신은 사용자 상호 작용 기술을 다루고있는 때마다, 그들이 0도 또는 360도지나를 밀어거야 전적으로 가능하다. 당신이 총을 가지고 게임을하고 있다고 상상해보십시오. 현재 359도를 가리키며 사용자가 조이스틱을 오른쪽으로 잡아 당겼습니다. 이제는 361도를 가리 킵니다. 당신이 각도 표현을 잘못 구현하면, 갑자기 총이 빠르게 왼쪽으로 거의 360도 이동합니다.

나는 사용자가 ... 이 (가) 그 버그와 함께에 실망 할 것이라고 예측합니다.

Euler angle 게임, 시뮬레이션 및 실제 장치 제어에서 중요한 참조 프레임 표현과 관련된 모든 종류의 문제가 있습니다. Gimbal lock은 실제 회전 장치 제어에서 심각한 문제입니다 (내 인생에서 카메라 팬/틸트 장치에 문제가 있음). "급속 로테이션"버그는 한 번에 작은 보트 자동 조종 장치 시스템에서 매우 고약한 문제였습니다. 강철 케이블을 휠 하우스 주위에 매우 단단히 감아 서 (즉, 거기에 서고 싶지 않음) 상상해보십시오.

+0

짐발 잠금 장치를 참조 해 주셔서 감사합니다. 나는 오늘 무언가를 배웠다 :) –

0

@dta, 나는 사람들이 조금 혼란 스럽다고 생각합니다. 그것이 "유용"한 것인지 묻습니다. "계산을 수행 할 때 각도를 적절한 범위로 이동하기 때문에 문제가되지 않습니다."라고 말하고 싶습니다. 객체가 0도에서 얼마나 멀리 떨어져 있는지 알 필요가있는 경우가 여러 번 있습니다. 그러나 이러한 경우를 제외하고는 보통 0-360 범위의 각도를 해석하는 것이 더 편리합니다. 대부분의 사람들은 어느 방향이 정상 범위의 각도에 해당하는지에 대해 직관적 인 느낌을 갖습니다. 어떤 방향으로 170,234도 가리 킵니까? 314도 같아.

3

정상적인 수학을 통해 한 번 이상 "원을 가로 지르며"결국 수학을 단순하게 유지하면 각도가 360보다 커질 수 있습니다. 개인적으로 각도를 정상화하는 것이 좋습니다. 0에서 360 또는 -180에서 180까지의 연산을 수행하지만 실제로는별로 중요하지 않습니다.

때때로 더 큰 숫자가 실제로 무엇인가를 나타낼 수도 있습니다. 간단한 예를 들자면, 고전적인 다이얼 조합을 안전하게 여는 방법을 상상해보십시오. 당신은 몇 번 주위에 다이얼을 회전 할 필요가 있기 때문에 지침이 될 수 : 죄를 가지고, 그 맥락에서

turn(800); // Twice around plus another 20 degrees 
    turn(-500); // Once around the other direction plus 140 degrees 
    turn(40); // Dial in the last digit 

또는 왜냐하면 당신에게 다이얼의 궁극적 인 위치에 대해 뭔가를 말할 것입니다,하지만 당신은 잃을 것 얼마나 많은 턴이 관련되었는지에 관한 정보.

0

@Chris Arguin과 다른 사람들에 따르면 360 °보다 큰 각도의 죄 (또는 -360 ° 미만의 문제)가 유용할지 여부는 회전에 관한 정보 (또는 그 부분) 이는 각도와 각도 % 360 °의 차이로 나타냅니다.

또한 동일한 답변을 얻었으므로 특히 죄에서 많은 각도의 계산 (예 : 각도 360)을 호출하면 처리 시간이 절약됩니다.

OTOH, @Scottie T는 누군가가 원을 중심으로 어디에 있는지를 아는 것이 중요하다면 사람들은 일반적으로 절대 값 360도 이하의 각도 위치를 쉽게 파악할 수 있다는 점을 잘 알고 있습니다 더 큰 각을 위해.

0

[0,360] 이외의 각도가 필요한 경우가 많습니다. 나는 조합 자물쇠의 아이디어를 좋아한다. 여기에서 종종 단순한 [0,360]도 범위 밖에서 양수 및 음수 각도를 볼 수 있습니다.

여러 각도 수식은 종종 수학에서 중요합니다. 삼각 함수는 삼각형 이외의 장소에서 사용됩니다. 다양한 장소, 예를 들어 푸리에 (Fourier) 시리즈 또는 이미지 압축 방식 또는 미분 방정식의 솔루션에 나타납니다. 계산적으로, mod를 사용하여 trig 함수의 범위를 기본값으로 줄일 수 있다는 것은 사실입니다. 그러나 각도가 항상 그 공칭 범위에서 제공된다는 것은 거의 사실이 아닙니다.

1

저는 Garry 's Mod라고 불리는 PC 게임을합니다. 프로그래밍 할 때 객체가 계속해서 일정한 원으로 움직 이도록하는 간단한 해결책을 원할 때가 있습니다. 이를 위해 나는 사인과 코사인을 영원히 증가하는 타이머를 사용하여 게임이 시작된 이후의 시간을 측정합니다.

T (시간)의 사인은 궤도 경로 X 값과 같지만 T의 코사인은 궤도 경로 Y 값과 동일합니다 (X 및 Y는 3 차원 좌표 평면에 있으며 Z는 사용하지 않습니다). 순간)

예 :. = 1000

T 틱 X = 죄 (T) Y = COS (T)

그래서 X는 시간 순간 동안 0.8268795405320025이고 Y가 0.15466840618074712이다.

이제 시간이 1500 시간으로 늘어났다면 X는 -0.9939019569066535이고 Y는 -0.11026740251372914가됩니다.

간단히 말하자면,이 값은 1에서 -1로 끊임없이 변하고, 그 값을 100으로 곱하고, 좌표 평면을 내 문자 위치에 국한 시키며, 프로그래밍 된 표현식이 그 좌표에 기반을 둔 물체는 내 주변의 일정한 원형 경로로 움직일 것입니다.

타다. 누가 비디오 게임에서 배울 수 없다고 말하는가?