If you're seeing this message, it means we're having trouble loading external resources on our website.

웹 필터가 올바르게 작동하지 않으면 도메인 *. kastatic.org*.kasandbox.org이 차단되어 있는지 확인하세요.

주요 내용

각도와 단위

벡터와 힘 단원에서는, 객체 지향 구조상에서 백터를 이용하여 자연적인 힘에서 유도되는 위치, 속도 및 가속도를 구현하고 화면상에서 물체를 움직이는 방법을 신중하게 살펴보았습니다. 배운 것을 토대로 바로 입자계, 조항력, 집단행동 등과 같은 주제로 넘어갈 수도 있습니다. 그러나 프로그래밍 수학에서 매우 중요한 삼각함수 와 삼각형, 특히 직각삼각형에 관한 수학을 건너뛸 수는 없습니다.
삼각함수는 프로그래밍을 할 때 유용한 도구가 됩니다. 여기서 각, 각속도, 각가속도에 관해 생각해 볼 겁니다. 삼각함수에서는 사인과 코사인 함수를 배우게 될 것이고, 이 함수를 적절하게 이용하면 파동 규칙을 만들 수 있습니다. 또 진자 운동이나 경사면을 내려가는 박스처럼 같이 각이 있는 복잡한 환경에서 힘을 계산할 수 있습니다.
그래서 이번 단원은 여러 가지 개념이 뒤섞여 있습니다. 우선 ProcessingJS에서 각의 기본적인 개념을 배우고 삼각함수를 배운 다음 배운 모든 것과 힘을 연결지어서 생각해 볼 겁니다. 그리고 여기서 공부하고 나면, 나중에 볼 삼각법을 사용하는 심화 예제를 이해하는데 도움이 될 겁니다.

각도

각을 본격적으로 배우기 전에 ProcessingJS 에서 각이 무엇을 의미하는지 확실히 이해하고 넘어가야 합니다. ProcessingJS 를 다룬 경험이 있다면 rotate() 함수를 이용해서 객체를 회전시키고 빙빙 돌릴 때 한 번쯤은 각 때문에 골머리를 앓았을 겁니다.
가장 먼저 호도법(라디안)60분법(도)을 살펴보겠습니다. 여러분은 아마도 60분법이 가장 익숙할 겁니다. 어떤 물체를 한 바퀴 회전시키면 0도에서 360도까지 돌아갑니다. 아래 두 선이 수직으로 만난 것이 90도(직각) 이고, 이는 360도의 1/4입니다.
각을 도 단위로 생각하는 것은 직관으로 이해가 잘 됩니다. 예를 들어, 아래 그림의 사각형은 중심에서 45도 회전된 것입니다.
그러나 때때로 각을 라디안 단위로 쓰는 것이 더 나을 때가 있습니다. 라디안은 각을 나타내는 또 다른 단위로, 원의 반지름에 대한 호의 길이의 비로 정의합니다. 1 라디안은 비율이 1인 각입니다 (첫 번째 그림을 참조하세요). 180 도 = 파이 라디안, 360 도 = 2*파이 라디안, 90 도 = 파이/2 라디안 등입니다.
도에서 라디안으로 변환하는 공식은 다음과 같습니다:
=2(/360)
다행히 ProcessingJS에서는 sin()이나 atan()과 같이 각을 처리하는 함수를 이용할 때 호도법이나 60분법 중 사용하고자 하는 단위를 쉽게 결정할 수 있습니다. 칸아카데미는 기본적으로 60분법을 채택하고 있지만, 다음과 같이 라디안으로 바꿀 수 있습니다:
angleMode = "radians";
추가적으로 ProcessingJS 에는 두 단위를 쉽게 변환해주는 함수도 있습니다. radians() 함수는 자동으로 60분법 각도에서 라디안으로 값을 변환해주고, 상수 PI 와 TWO_PI 는( 180도와 360도에 해당) 많이 사용되는 각도를 편리하게 접근하도록 해 줍니다.
다음 코드는 도형을 60도 회전시킵니다:
angleMode = "radians";
var angle = radians(60);
rotate(angle);
ProcessingJS에서 도형을 회전하는 방법을 모른다면 회전이나 변환 단원 전체를 살펴보세요 .
PI는 무엇일까요?
상수 ’파이’ (π)는 원주 (원의 둘레) 와 지름 (원의 중심을 관통하여 원의 한쪽 끝에서 반대쪽 끝까지 가로지르는 선) 의 길이의 비를 나타냅니다. 파이의 값은 대략 3.14159이고 ProcessingJS에서는 내장 변수 PI, JavaScript에서는 Math.PI를 이용하여 호출할 수 있습니다.

본 "내추럴 시뮬레이션" 과정은 다니엘 쉬프만(Daniel Shiffman)이 저술한 "The Nature of Code"의 내용을 차용한 것이며, 본 내용물의 저작권은 Creative Commons Attribution-NonCommercial 3.0 Unported License를 적용합니다.