출처: 누구나 쉽게 배우는 파이썬 프로그래밍
(책 내용중 일부 수정 발췌하였습니다. 문제시 비공개로 전환하겠습니다.)
12. 거북이 문제 (삼각형)만들기
정삼가각형 그리기
>>> t.reset()
>>> t = turtle.Pen()
>>> t.forward(100)
>>> t.left(120)
>>> t.forward(100)
>>> t.left(120)
>>> t.forward(100)
>>>
|
직삼각형 만들기
>>> t.reset()
>>> t = turtle.Pen()
>>> t.forward(50)
>>> t.left(104.47751218592992)
>>> t.forward(100)
>>> t.left(151.04497562814015)
>>> t.forward(100)
>>>
|
104.47751218592992 도와 151.04497562814015 도라는 값을 어떻게 찾아냈을까?
삼각형의 한 변의 길이를 결정했다면 파이썬과 약간의 삼각법으로 내각을 계산할 수 있다.
다음의 그림에서 각도 a 를 알고 있다면 거북이가 회전해야 할 각도 b(외각)를 구할 수 있다.
각도 a 와 b의 합은 180도다.
|
올바른 공식을 알고 있다면 내각을 구하는 것은 어려운 일이 아니다.
예를 들어, 밑변의 길이가 50 픽셀(이것을 C 라고 하자) 다른 변인 A와 B의 길이가 각각 100 픽셀인
삼각형을 만든다고 해보자.
|
이 값을 얻기 위해서 파이썬의 math 모듈을 이용하는 간단한 파이썬 프로그램을 다음과 같이 만들 수 있다.
>>> A = 100
>>> B = 100
>>> C = 50
>>> a = math.acos((math.pow(A,2) + math.pow(C,2) - math.pow(B,2)) / (2*A*C)) ①
>>> print(a)
1.318116071652818
>>>
먼저 math 모듈을 임포트한 다음에 각 변에 대한 변수들(A, B, C)을 생성한다.
①에서 우리는 math 함수인 acos(아크 코사인, arc cosine)을 이용하여 그 각을 계산한다.
이 계산식은 1.318116071652818 이라는 라디안(radian) 값을 반환한다.
라디안은 각도를 측정하는 데 사용하는 또 다른 단위다.
라디안 값은 math 함수인 degree로 각도 변환될 수 있으며, 180도에서 이 값을 빼면
외각(거북이가 회전해야 할 값)을 구할 수 있다.
|
|
|
물론 각도를 구하기 위해서 이 방적식을 반드시 사용해야 할 필요는 없다.
그냥 여러분이 보기에 좋을 때까지 각도를 돌려보면서 작업을 할 수 도 있을 것이다.
'Python' 카테고리의 다른 글
11. If-THEN-ELSE 문 (0) | 2016.12.01 |
---|---|
10. 조건문은 비교하는 데 도움을 준다. (0) | 2016.12.01 |
9. IF문 (0) | 2016.12.01 |
8. 거북이(turtle)로 그림 그리기 (0) | 2016.12.01 |
7. 파이썬 맵은 길을 찾는 데 도움을 주지 않는다. (0) | 2016.12.01 |