본문 바로가기
엔트리메뉴/엔트리코딩시험-알고리즘

엔트리 도형그리기-다각형

by flycoding 2022. 8. 22.
반응형

엔트리 도형그리기-다각형

 

이제 우리는 보다 효율적이고 효과적인 프로그램을 작성할 시기가 왔다.

만일 여러분이 엔트리의 삼각형, 사각형, 오각형, 육각형 그리기 프로그램을 작성하지 않았다면, 최소한 하나의 프로그램과 하나의 글을 읽고 본 글을 읽기를 추천한다.

 

이전에 작성한 사각형 프로그램을 작성하지 않았다면 사각형 그리기 프로그램을 읽는 것을 추천한다.

엔트리 도형그리기-사각형

 

 

이전에 작성한 엔트리블럭영역에 붓블럭 관련 글을 참고해서 읽어보시고 오는 것을 추천한다.

 

 

1-3-4 엔트리 블록 영역-붓 블록

 

1-3-4 엔트리 블록 영역-붓 블록

엔트리 블록 영역-붓 블록에 대해 알아봐요 3. 블록 영역-붓 블록 블록 영역은 코딩에 필요한 다양한 블록들이 있다. 이번 장에서는 블록 영역에서 붓 블록들에 대해 개략적으로 알아보고자 한다

flycoding.tistory.com

 

 

여기서는 다시 한번 복습하며 도형그리기 심화학습을 할 것이다.

심화하는 내용은 변수와 반복문을 활용하여 도형을 그리는 방법을 심화시켜 볼 것이다.

 

분석 및 설계

삼각형, 사각형, 오각형, 육각형 도형을 그리면서 계속 반복되며 변화하는 값에 주목을 해야 한다.

삼각형,  사각형, 오각형 등의 도형을 그릴 때 변화하는 값은 변의 개수와 각도이다. 삼각형인 경우에는 3변을 그려야 하며 사각형의 경우에는 4변을, 오각형은 5변을, 육각형은 여섯개의 변을 그려야 한다. 또한 각 도형에 따라 각도도 달라지게 된다. 각도의 산술식은 360/변의개수 이다. 이런 규칙을 도출하게 되면 우리는 이제 좀더 효율적인 프로그램을 작성할 수 있게 된다. 

 

반복문의 활용

. 변의 개수만큼 이동하고 회전하는 블럭이 반복이 된다. 

  - 삼각형의 경우에는 

     - 이동하기

     - 120도 회전하기

    ==> 상기의 2개의 블럭을 3회 반복하면 삼각형이 그려진다.

 

  - 사각형의 경우에는

    - 이동하기

    - 90도 회전하기

    ==> 상기의 2개의 블럭을 4회 반복하면 사각형이 그려진다.

 

이처럼 변의 개수만큼 '이동하기', '회전하기'  블럭을 반복해야 함을 알 수 있다.

 

이제 기본적인 분석은 완료됐다.

 

 

. 내 맘대로 다각형을 그려보자

  - 변의 길이를 키보드로 입력받아 정한다.

  - 변의 개수를 키보드로 입력받아 정한다. 

  - 각도는 360/변의개수로 계산하여 변수에 저장한다.

 

. 다각형을 그리는 방법

  - 초기화 : 스프라이트 X, Y 위치값 설정, 방향보기(90도-오른쪽방향보기)

  

  - 삼각형 그리는 방법

    - 3번 반복하기

    - 변의 길이만큼 움직이기

    - 시계방향으로 120도 돌기

  - 사각형 그리는 방법

    - 4번 반복하기

    - 변의 길이만큼 움직이기

    - 시계방향으로 90도 돌기

    

.....

 

이를 변수로 변환하여 작성해볼 것이다.

 

    - '변의개수' 번 반복하기

      - '길이'만큼 움직이기

      - '각도'로 회전하기

 

. 이 방법은 가장 단순한 방법이다.

 

블럭코딩

. 변수 선언하기, 스프라이트 초기화
  - len : 변의 길이를 저장한다.
  - num : 변의 개수를 저장한다.
  - angle : 360/변의개수 산술을 통해 계산된 값을 저장한다.

. 변수에 '변수 만들기'에서 len, num, angle을 만든다.

 

엔트리 도형그리기-다각형 변수만들기

 

. 길이에 초기값 0을 지정한다.

. X, Y에 0값 초기화

 

엔트리-도형그리기-다각형 길이변수 초기화

 

 

* 펜 관련초기화

. 스프라이트 정하기 : PEN
  - 펜초기화
    - 모두 지우기
    - 펜 스프라이트 위치정하기(X,Y=0),
    - 펜 스프라이트 방향(90)보기
    - 펜 내리기
    - 펜 굵기 정하기

 

엔트리 도형그리기-다각형 붓블럭 초기화

붓 오브젝트의 초기화

- 위치(0,0)

- 방향 0

- 이동방향 72으로 정하기

 

엔트리 도형그리기-다각형 붓오브젝트 초기설정

 

 

* X, Y 변수값은 무엇일까요?  (옆을드래그해보세요)(X=0, Y=0)

 

변의 길이 정하기
- 묻고 기다리기 블럭
  - len 변수에 "대답"을 정한다.

 

엔트리 도형그리기-다각형 변의 길이 설정

 

다각형을 그리기 위해서는 이제 하나의 값을 더 키보드로부터 입력받아 저장할 것이다.

변의 개수를 입력받아 다양한 도형을 그릴 것이다.

 

변의 개수 정하기
- 묻고 기다리기 블럭
  - num 변수에 "대답"을 정한다.

엔트리 도형그리기-다각형 변의개수 설정

 

도형의 각도 계산하기
- 360/num

 

엔트리 도형그리기-다각형 각도 계산

 

이제 본격적으로 다각형을 그려보자

다각형 함수를 정의하고 다각형 함수를 호출할 것이다.

호출하는 부분은 다음과 같다.

 

다각형 함수 호출
- 다각형(len, num)

 

엔트리 도형그리기-다각형 호출

 

. 다각형 함수 정의하기
  - 인자값으로 첫번째는 변의 길이, 두번째는 변의개수를 의미한다.

 

우리는 여기서 함수를 만들어서 다각형을 그려볼 것이다.

함수는 특정한 기능을 반복하는 블럭들을 모아놓은 블럭들의 집합이 함수이다.

다각형 함수에는  2개의 인자값을 전달한다. 하나는 변의 길이, 다른 하나는 변의 개수이다.

 

엔트리 도형그리기-다각형 함수 정의하기

 

. 다각형 그리기 함수 body
  - 변의 개수 번 반복하기
     - 이동방향으로 변의길이 만큼 움직이기
     - 이동방향을 angle만큼 회전하기

. 어렵게 생각할 필요없다.

  - 일단 스크래치의 위치와 방향을 생각한다. (X,Y=0 방향은 오른쪽을 바라본다.)

  - 이 상태에서 "길이"만큼 움직이기를 한다.

  - 사각형은 60도 돌기를 하다.(시계방향, 반대여도 상관없다. 원하는대로 ^^)

 

엔트리 도형그리기-다각형 함수 body

 

 

 

* 실행 결과물이다.

 

변의 길이를 입력받는다. 변의 길이를 50으로 입력받는다.

 

엔트리 도형그리기-변의길이 입력화면

 

변의 개수를 입력받는다. 변의 개수는 6으로 육각형을 그린다.

 

엔트리 도형그리기-변의개수 입력

 

 

다각형 실행 결과 화면이다.

아래 그림처럼 육각형이 그려진다.

 

엔트리 도형그리기-다각형 실행결과 화면

 

엔트리 도형그리기에서 다각형을 그리기 프로그램에서는 다양한 프로그램 기법을 사용하였다.

- 변수의 활용

- 산술 연산

- 함수 정의 및 호출하기

- 반복문

 

사실 어렵지 않은 기술들이지만, 조합해서 다양한 도형을 그리는 프로그램을 한번에 작성하기란 쉽지 않다.

여러번의 시행 착오와 반복 기술되는 내용 등을 분석항 변수를 정의하고 반복되는 부분을 함수로 정의하는 등의 분석을 통해 다각형 프로그램을 작성할 수 있게 된 것이다.

 

 

다시 한번 강조해서 말하지만, 변수의 값이 각 프로그램 단계별 순차적으로 어떻게 변화하는지 추척하는 것이 매우 중요하다. 블럭을 하나씩 쌓으면서 변수 볼륨 값의 변화를 살펴보자. 코딩은 눈으로 보면서 이해하고 학습하지만 직접 블럭을 쌓으며 이해하고 학습하는 것이 더 효과적이며 창의와 이해의 개념이 ~쑥 늘어납니다. 

앞으로의 여러분의 모습을 기대합니다.

 

Just Do it!!!

Just Drag&Drop!!!

 

MagneticFieldSens

 

반응형

댓글