Scratch로 삼각형 그리기

문부성 초등학교 프로그래밍 교육 안내 라고 하는 페이지에 「초등학교 프로그래밍 교육의 안내(제2판)」라는 문서가 있습니다. p.15 에【「프로그래밍적 사고」란】중에서, 컴퓨터로 정삼각형을 물리려고 하는 경우, 를 예로 프로그래밍적 사고를 개설하고 있습니다. 여기에서는, 정삼각형은 아닙니다만, 삼각형을 그리는 프로그램을 Scratch로 만들어 보았습니다.

삼각형을 그리는 Scratch 프로그램



이 프로그램 는 3점을 결정해, 그 사이를 선으로 연결한다고 하는 알고리즘이 되어 있습니다.



사용법


  • 녹색 깃발을 클릭합니다. →클리어됩니다.
  • 화면에서 세 점을 클릭합니다.
  • 삼각형 그리기가 시작됩니다.

  • 변수


  • CNT 몇 점 눈을 클릭했습니까? 를 나타냅니다. 녹색 깃발을 눌렀을 때 세 번 지워지고 클릭 할 때마다 값이 감소합니다.
  • (X1,Y1), (X2,Y2), (X3,Y3) 와 3개의 좌표를 보관 유지하는 변수를 준비합니다.

  • 알고리즘



    마우스를 클릭한다는 이벤트로 프로그램이 불려집니다. C 언어로 작성하면 알고리즘은 다음과 같습니다.
        switch(CNT){
            case 3:
                (X1,Y1) にマウスの位置を代入する
                CNT=CNT-1;
                break;
            case 2:
                (X2,Y2) にマウスの位置を代入する
                CNT=CNT-1;
                break;
            case 1:
                (X3,Y3) にマウスの位置を代入する
                CNT=CNT-1;
                三角形の描画関数
                break;
            default:
        }
    }
    

    Scratch 프로그램





    라고 프로그램했습니다. C로 쓰면 다음과 같습니다.
        if(CNT==1){
            (X3,Y3) にマウスの位置を代入する
            CNT=CNT-1;
            三角形の描画関数
        }
        if(CNT==2){
            (X2,Y2) にマウスの位置を代入する
            CNT=CNT-1;
        }
        if(CNT==3){
            (X1,Y1) にマウスの位置を代入する
            CNT=CNT-1;
        }
    
    

    Scratch에서 switch 문을 작성하려고 할 때 break를 작성하는 방법을 찾지 못했습니다. 그래서 if 문을 나란히 쓰고 있습니다.

    다음과 같이 쓸 수도 있습니다.


        if(CNT==3){
            (X1,Y1) にマウスの位置を代入する
            CNT=CNT-1;
        } else if(CNT==2){
            (X2,Y2) にマウスの位置を代入する
            CNT=CNT-1;
        } else if(CNT==1){
            (X3,Y3) にマウスの位置を代入する
            CNT=CNT-1;
            三角形の描画関数
        }
    
    

    다른 방법도 있을 수 있습니다.
    처음에 제시한 문부성의 문서의 문제 제기와는 다른 점을 문제로 해 버렸습니다.

    그리기



    for 문을 사용하는 것이 좋습니다. Scratch에서 for 문을 만드는 것은 약간 번거롭습니다.
    for문이 길어집니다.
    3점을 지나는 직선을 그릴 뿐이라면, 3개의 블록으로 할 수 있으므로, 이렇게 하고 있습니다.



    추가



    for문 라이크한 쓰는 방법을 해 보았습니다.
    htps : // sc 등 tch. 미 t. 에즈/p로지ぇcts/330729499/

    for문을 사용하기 위해서, 인덱스로 읽어내는 (x, y)의 배열을 사용하고 있습니다.



    이쪽이 복잡한 기재가되어 버렸습니다.

    끝에



    삼각형을 그리는 것만으로도 여러가지 알고리즘을 생각할 수 있다고 생각합니다. 여기에서는, 3점의 좌표를 결정해, 그 점의 사이를 연결한다고 하는 알고리즘이었습니다. 삼각형을 그리려면 1) 삼변의 길이를 결정합니다. 2) 두 변의 길이와 그 사이의 각도를 결정한다. 3) 한 변의 길이와 양단의 각도를 결정한다. 세 가지 방법이 있습니다. 각각, 어떤 알고리즘으로, 어떻게(Scratch로) 프로그래밍 하는지, 생각하는 것도 즐거운 것이라고 생각하고 있습니다.

    좋은 웹페이지 즐겨찾기