본문 바로가기
Programming/LOGO

LOGO : 변수(Variables) - 7

by The Programmer 2024. 4. 14.

1. Introduction

 

이번 예제에서는 변수를 활용해서 별 그리기 프로그램의 수정을 좀 더 쉽게 만들어 보겠습니다. 중학 수학에서 다루는 코사인 값 구하기 공식이 적용되었습니다(중3, 2학기 과정 관련 수학 참고서 참고할 것). LOGO는 명령 입력칸에 직접 코사인 값 알아내기 명령을 입력할 수 있습니다.

 

예.

 

cos 72(그리고 엔터)    ;; 코사인 72의 수치값이 출력됩니다.)

 

삼각비와 삼각함수는 중학 수학 이상 수준에서는 매우 중요합니다. ^.^;

 

초등수학 과정에서는 이번 예제에 사용된 cos 72 대신 어림짐작 값을 사용해도 무방합니다만, 직접 이런 저런 값으로 실험해보세요.

 

 

2. Code

 

to main
    setup
    star12
end

to move1
    pu fd :nextto pd
end

to setup
    Home CS PPT PD ST
    make "side 20
    make "r 0.309016994374947   ;; cos 72 = 0.309016994374947
    make "w (:side * :r)   ;; w = 9.27050983124841
    make "x (2 * :w)
    make "margin 5
    make "nextto (2 * :side) + :x + :margin
    pu lt 90 fd 480 rt 90 fd 350 pd rt 90
end

to star1 :side
    repeat 5 [ fd :side lt 72 fd :side rt 144 ]
end

to star12
    repeat 12 [ star1 :side move1 ]
end

 

 

3. Notes

 

중요한 부분만 살펴보겠습니다.

 

[ 그림 7-1. 삼각비, Cos 72 ]

 

make "side 20

;; 한 변의 길이를 20으로 결정합니다.


make "r 0.309016994374947   ;; cos 72 = 0.309016994374947

;; 위 코드는 다음과 같이 해도 결과는 동일합니다.

;; make "r (cos 72)

;; 코사인 72의 값을 r 이라는 변수에 저장합니다.

(;; 매우 여러번 실행할 경우, 표현식보다 값을 직접 입력하는 편이 조금이라도 속도가 빠릅니다.)

;; 코사인 72도의 값은 FMSLogo 명령행에서 직접 구합니다. cos 72(엔터). ^.^;

;; 코사인 72도의 값은 빗변 :side값을 기준으로 밑변 w의 길이값을 의미합니다. 분수로 표현.

;; w/:side. 여기서 슬래시(/)는 나눗셈을 의미합니다.

 

make "w (:side * :r)   ;; w = 9.27050983124841

;; w/20 = 0.309016994374947

;; 정리하면,

;; w = 0.309016994374947 * 20 (여기서 별표*는 곱셈을 의미합니다)

;; w = 9.27050983124841

 

make "x (2 * :w)

;; 별의 양 날개 사이의 간격은 w가 2개 크기입니다. 변수 x에 2w 값을 저장합니다.


make "margin 5

;; 별과 별 사이의 간격, 보통은 20으로 합니다만 여기서는 줄여서 5 정도로만 합니다.

;; 별의 갯수가 많으면 간격도 조정해야 합니다.

 

make "nextto (2 * :side) + :x + :margin

;; 별 하나를 그리고 옆으로 이동할 때의 이동 거리를 계산합니다.

;;  계산 후에 nextto라는 변수에 이동 거리를 저장합니다.

;; :x 값이 어떻게 결정되는지 알아야 합니다.

 

 

4. Result

 

[ 그림 7-2. 별 12 with variables ]

 

 

5. Files

 

Ch_03_Variable_Ex_007_Star12_v1_.lgo
0.00MB

 

 

6. Ref.

 

1) 중학 3학년 수학책.

2) Pass. ^.^;

 

 

Happy Programming!

^.^;

 

 

'Programming > LOGO' 카테고리의 다른 글

LOGO : 변수(Variables) - 9, Coloring (1)  (0) 2024.04.26
LOGO : 변수(Variables) - 8  (0) 2024.04.21
LOGO 변수(Variables) - 6  (0) 2024.03.25
LOGO : 변수(Variables) - 5  (0) 2024.03.17
LOGO : 변수(Variables) - 4  (0) 2024.03.14