본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

[스크래치] 펭귄과 고양이가 그리는 1차함수 그래프

by easyfly 2023. 2. 24.
반응형

스크래치와 좌표

우리가 많이 사용하는 좌표는 '나는 생각한다. 고로 존재한다.'라고 말했던 데카르트가 만들었습니다. 그는 2차원 공간에서 어떻게 하면 효과적으로 위치를 나타낼 것인가를 궁리하다가, 세로 선과 가로 선으로 잘게 나눠서 위치를 쉽고 정확하게 표현하는 방법을 찾은 것입니다.
 
그 좌표를 스크래치에 이용하여 움직임을 주기도 하고 그래프를 그릴 수도 있습니다. 좌표는 한가운데 원점을 중심으로 다음과 같이 4개의 사분면으로 나눠서 관리됩니다. 1사분면은 x축, y축 모두 양수로 오늘 표현할 펭귄과 고양이는 음수가 나올 수 없으므로 1사분면에 그래프가 그려질 것입니다.

좌표의 사분면 표시

 
 

좌표와 그래프

좌표의 궤적을 연결하면 선이 만들어지는데 그 선이 그래프가 됩니다. 일차 함수의 일반식은 y=ax+b가 됩니다. 고양이가 시간당 2km를 달린다면 1시간에 가는 거리는 2km, 2시간에는 4km를 이동하게 됩니다.
 
이와같은 좌표값을 쭈욱 연결하는 것이 직선으로 나타나는 일차 함수 그래프가 됩니다. 이 경우는 b는 0이죠.

 
 

코딩으로 1차 함수 그리기

펭귄과 고양이의 경기를 그래프로 나타내 보시게요. 이동이 느린 펭귄은 4km를 앞서 출발하는 것으로 합니다. 고양이는 원점에서 출발하는데 펭귄은 4km 위에서 출발합니다. 고양이 속도는 시간당 2km, 펭귄은 시간당 1km라면 시간과 거리 관계는 다음 식과 같이 됩니다.
고양이: y=2x
펭귄: y=x+4
 
이 두 동물이 경기를 했을 때 앞서가는 펭귄을 속도가 빠른 고양이가 잡게 될 것인가를 그래프로 표현하는 것입니다. 물론 방정식으로 해결하면 간단하지요.
 
 

고양이와 펭귄이 그리는 1차 함수 그래프

일단 깃발을 클릭하면 변수에 값을 정해줍니다. 고양이 속도와 펭귄 속도, 그리고 펭귄 출발점 등이 그것입니다. 고양이는 원점에서 출발하기에 좌표값 (0,0)으로 정합니다. 마지막으로 '달리기' 신호를 보냅니다. 이 신호를 받은 고양이와 펭귄은 달리기를 시작합니다. 그래프가 그려질 수 있도록 펜 팔레트를 이용하여 색을 정하고 굵기도 정합니다. 그리고 방향을 정한 뒤에 펜을 내려서 그리기 시작합니다. 그리는 과정은 '벽에 닿았는가'를 이용한 반복문을 사용해서.

고양이 스프라이트에 적용한 코딩

펭귄도 마찬가지입니다. 방향은 수식을 이용하여 계산해 냅니다. 시간당 속도의 atan 값을 사용하는데, 90도에서 빼주는 이유는 기준점이 다르기 때문입니다. 펭귄이 반복문에 2만큼 움직였으나 펭귄은 1만큼 움직입니다. 사실은 변수를 정했기에 변수를 적용하는 것이 더욱 좋겠네요.

펭귄 코딩

이렇게 코딩된 내용을 깃발을 눌러 실행하면 고양이와 펭귄은 경주가 시작되고 4시간 후 8km 지점에서 펭귄이 고양이한테 잡히게 됩니다.

고양이와 펭귄이 그린 일차 함수

 

정리

일차 함수는 직선으로 표현됩니다. 가로축은 시간, 세로축은 거리입니다. 두 직선이 만나는 지점이 바로 펭귄이 고양이한테 잡히는 지점입니다. 방정식 x+4=2x를 통해 x값, 즉 시간이 4시간이라는 것을 알게 되는데, 그래프로는 다음과 같이 확인이 되는 것이죠. 거리는 y=2x에 대입하면 8km라는 것을 계산할 수 있게 됩니다.
 

그래프로 알아본 펭귄과 고양이의 만나는 지점과 시간

 
스크래치로 일차 함수 그래프를 그리는 방법이었습니다.

 

노년에 즐기는 코딩이었습니다;.

반응형

댓글