본문 바로가기
  • Top Genius in the world
거북이 그림

[거북이그림] 일곱번째 <사인 곡선>

by Mr.Algo 2024. 4. 28.
728x90
반응형

[key word] 60분법, 디그리, 라디안, 주기, 위상, 진폭, 삼각함수

파이썬 실습창을 열 수 있습니다.실습창 열기

 

 

사인 곡선

 

1. 사인 곡선 그리기

사인 곡선(sine curve)을 그립시다.

코드를 실행하여 보세요.

from turtle import*
from math import*
up(); goto(-180,0); down()  # 시작 위치를 (-180,0)으로 이동
for d in range(360):        # 한 주기(360도)를 그림
    a=pi*d/180              # 디그리 각도를 라디안으로 변환, a=radians(d)와 같음
    x=d-180                 # 각도 d를 x 좌표로 사용(왼족으로 180만큼 위상 바꿈) 
    y=150*sin(a)            # sin값이 -1에서 1이므로 150배로 증폭시킴
    goto(x,y)               # 바뀐 위치로 선을 그으며 이동
done()

 

 

[참고 1]   사인과 코사인

더보기

사인과 코사인(sin & cos)

위의 그림은 반지름 1인 원을 그리고,

 원의 중심에서 임의의 각도로 직선을 그으면 원과 만나는 점이 생기고(p),

그 점(p)에서x축으로 수직선을 그으면 x축과 만나는 점(q)이 생기고, 

그 점(q)에서 원의 중심(o)으로 직선을 그으서 생긴 직각삼각형입니다.

 

  • 중심각(각poq)이 바뀌면 수직선의 길이(pq)도 바뀌겠지요?
    수직선의 길이를 반지름의 몇 퍼센트(%, 비율)로 얘기합시다. 
    즉, 수직선의 길이를 반지름으로 나눈 값을 생각합시다.
  • 중심각이 0도이면 수직선은 반지름의 몇 %이지요?
    0입니다.
    수직선 길이 0을 1로 나누면 0입니다.
  • 중심각이 90도이면  수직선은 반지름의 몇 %이지요?
    1입니다.
    수직선 길이 1을 1로 나누면 1입니다.(그림을 보고 이해하세요) 
  • 중심각이 0도부터 360도까지 바뀌면 비율은 어떨게 바뀔까요?
    0도일때 0부터 점점 크져서 90도일때 1로서 가장 크고,
    180도까지 점점 줄었다가  다시 음수로 증가 등으로 바뀝니다.
  • 이렇게 바뀌는 값을 사인(sine )값이라 합니다.
  • 코사인(cosine)은 반지름(op)과 밑변의 길이(oq)의 비율입니다.
  • 삼각형의 각도와 변의 길이의 관계를 나타낸 것이 삼각함수입니다.
  • 사인 곡선(sine curve)은 삼각함수의 한 종류인 사인(sin)값의 변화를 나타낸 도형입니다.
    사인값을  -1과 1 사이의 값입니다.
  • 코사인 곡선(cosine curve)도  삼각함수의 한 종류인 코사인(cos)값의 변화를 나타낸 도형입니다.
    코사인값도  -1과 1 사이의 값입니다.

 

[참고 2]  디그리와 라디안

더보기

디그리와 라디안

 

각도를 표시하는 방법은디그리(degree,60분법)와 라디안(radian,호도법)이 있습니다.

디그리는 원의 중심각을 360도 표기하고, 라디안은 2p(2 파이, 약 6.28)로 표기합니다.

컴퓨터에서는 주로 라디안을 사용합니다.

  • 라디안 표기법은 왜 원을 2파이(약 6,28)라고 할까요?
    1라디안은 반지름과 같은 길이의 호(arc, 부체꼴)가 만드는 중심각의 크기입니다.
  • 디그리로 360도를  라디안으로 표기하면?
    원 둘레를 반지름으로 나누면 라디안이 됩니다.
    원주율 파이를 p, 반지름을 r로 표기하면 2pr / r ==> 2p입니다.
    즉, 360도를 라디안으로 나타내면 2파이(2p)입니다.

디그리(60분법)와 라디안의 관계식은?
      d : r = 360 : 2p  
내항의 곱은 외항의 곱과 같으므로 

     360*r=2pd

양변을 360으로 나누면
      r = p * d / 180

 

2. 코사인 곡선

사인 곡선과 코사인 곡선을 연결했습니다.

색깔도 넣고, 속도도 높혔습니다.

from turtle import*
from math import*
color('green')              # 색을 넣고
speed(0)                    # 속도를 빠르게
up(); goto(-180,0); down()
for d in range(360):
    a=pi*d/180
    x=d-180
    ys=150*sin(a)           # 사인값 구하고  
    yc=150*cos(a)           # 코사인값 구하고
    goto(x,ys)              # 사인값으로 가서
    goto(x,yc)              # 코사인값으로 갑니다.
done()

 

 

3. 주기, 위상, 진폭 변화

주기는 변화 속도, 위상은 시작 위치, 진폭은 높낮이입니다.

나도 예측할 수 없는 식들을 넣어보았습니다.

from turtle import*
from math import*
color('green')
speed(0)
up(); goto(-180,0); down()
for d in range(360):
    a=pi*d/180
    x=d-180
    ys=50*sin(a)*sin(3*a)      # 여기와
    yc=150*cos(2*a)*sin(3*a)   # 여기를 마음대로 바꾸었습니다.
    goto(x,ys)
    goto(x,yc)
done()

 

신나게 바꾸어 보세요.

놀라운 그림들이 나오나요?

즐거운 시간 되세요.

안녕!

728x90
반응형