728x90
반응형
SMALL

 

파이썬 turtle 모듈의 setup() 함수는 터틀 그래픽 창의 크기위치를 설정하는 데 사용됩니다. 이를 통해 그래픽 창의 크기를 지정하거나, 화면에서 창이 나타나는 위치를 조절할 수 있습니다.

setup() 함수 기본 구조

turtle.setup(width, height, startx, starty)
  • width: 창의 너비 (기본값은 50%의 화면 너비).
  • height: 창의 높이 (기본값은 75%의 화면 높이).
  • startx: 창의 시작 x 좌표 (화면에서 창이 나타나는 위치).
  • starty: 창의 시작 y 좌표 (화면에서 창이 나타나는 위치).

이제 다양한 setup() 함수의 예제를 살펴보겠습니다.

1. 기본 창(윈도우) 크기 설정

 
import turtle
 
# 창의 크기를 800x600으로 설정
turtle.setup(800, 600)
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.forward(100)
turtle.done()
  • 설명: 창의 너비를 800 픽셀, 높이를 600 픽셀로 설정하여 시작합니다.

 

2. 창의 크기와 위치 설정

 
import turtle
 
# 창의 크기를 800x600으로 설정하고, 화면의 좌측 상단에 배치
turtle.setup(800, 600, 0, 0)
 
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.circle(50)
turtle.done()
  • 설명: 창의 너비는 800, 높이는 600으로 설정하고, 화면의 (0, 0) 위치(왼쪽 상단)에 창을 배치합니다.

3. 화면 중앙에 창 배치

import turtle
 
# 창의 크기를 500x500으로 설정하고 화면 중앙에 배치
turtle.setup(500, 500, None, None)
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.forward(150)
turtle.done()
  • 설명: 창의 크기를 500x500으로 설정한 뒤, startx, starty를 None으로 지정하여 화면 중앙에 창을 배치합니다.

4. 화면 오른쪽 아래에 창 배치

import turtle
 
# 창의 크기를 400x400으로 설정하고, 화면의 오른쪽 아래에 배치
turtle.setup(400, 400, 800, 400)
 
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.right(45)
t.forward(200)
turtle.done()
  • 설명: 화면의 오른쪽 아래(800, 400) 위치에 창을 배치하고, 창의 크기는 400x400으로 설정합니다.

5. 터틀 창 최대화

 
import turtle
 
# 화면의 전체 크기를 사용하여 창을 설정
screen = turtle.Screen()
screen.setup(width=1.0, height=1.0)
# width, height를 1.0으로 설정하면 최대화
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.circle(100)
turtle.done()
  • 설명: 창의 너비와 높이를 1.0으로 설정하면 창이 전체 화면을 차지하게 됩니다.

6. 창을 화면 상단 중앙에 배치

import turtle
 
# 창의 크기를 600x400으로 설정하고 화면 상단 중앙에 배치
 
turtle.setup(600, 400, None, 0)
 
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.goto(-50, 50)
t.goto(50, -50)
turtle.done()
  • 설명: 창의 크기를 600x400으로 설정하고, starty=0을 통해 화면의 상단 중앙에 창을 배치합니다.

7. 창의 크기를 특정 비율로 설정

 
import turtle
 
# 화면의 80% 너비와 50% 높이로 창 크기 설정
screen = turtle.Screen()
screen.setup(width=0.8, height=0.5)
 
# 화면의 비율로 크기를 설정
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.circle(70)
turtle.done()
  • 설명: width=0.8, height=0.5를 설정하여 화면 너비의 80%, 높이의 50%로 창의 크기를 설정합니다.

8. setup() 없이 창 크기 변경하기

import turtle
 
# 창 크기 초기값
turtle.screensize(500, 500)
# 터틀 객체 생성 및 간단한 작업
t = turtle.Turtle()
t.forward(100)
turtle.done()
  • 설명: setup() 함수 대신, screensize()를 사용하여 창의 크기를 조정할 수 있습니다.

요약

  • setup() 함수를 통해 터틀 그래픽 창의 크기와 위치를 자유롭게 설정할 수 있습니다.
  • 절대적인 크기 값이나 비율로 창의 크기를 지정할 수 있으며, 창의 시작 위치도 설정 가능합니다.
  • 다양한 창 설정을 통해 창의 배치나 크기를 원하는 대로 조절할 수 있습니다.
 
 
728x90
반응형
LIST
728x90
반응형
SMALL

 

onclick()과 onscreenclick()은 Python의 turtle 모듈에서 화면 클릭 이벤트를 처리하기 위한 함수들이지만, 동작 방식에 약간의 차이점이 있습니다.

  1. onclick(fun, btn=1, add=None)
    • 역할: 터틀 객체에 특정 클릭 이벤트를 연결하는 함수입니다.
    • 적용 대상: 이 함수는 개별 터틀 객체에 사용됩니다. 즉, 화면에서 해당 터틀을 클릭했을 때 특정 동작을 수행하도록 설정하는 함수입니다.
    • 파라미터:
      • fun: 호출할 함수. 함수는 두 개의 인수(x, y 좌표)를 받아야 합니다.
      • btn: 클릭할 버튼 (기본값은 1로, 왼쪽 마우스 버튼).
      • add: None이면 이전 설정을 덮어쓰고, True이면 이벤트를 추가합니다.
    • 사용 예시:
       
      import turtle
      t = turtle.Turtle() t.onclick(lambda x, y: print("터틀이 클릭되었습니다:", x, y))
  2. onscreenclick(fun, btn=1, add=None)
    • 역할: 터틀 객체와 상관없이 전체 화면에서의 클릭 이벤트를 처리하는 함수입니다.
    • 적용 대상: 화면 어디를 클릭하든 작동하며, 특정 터틀이 아닌 화면 전반의 클릭을 처리합니다.
    • 파라미터:
      • fun: 호출할 함수. 마찬가지로 두 개의 인수(x, y 좌표)를 받아야 합니다.
      • btn: 클릭할 버튼 (기본값은 1로, 왼쪽 마우스 버튼).
      • add: None이면 이전 설정을 덮어쓰고, True이면 이벤트를 추가합니다.
    • 사용 예시:
      import turtle
      turtle.onscreenclick(lambda x, y: print("화면이 클릭되었습니다:", x, y))

차이점 요약

  • onclick(): 특정 터틀 객체를 클릭했을 때 발생하는 이벤트 처리.
  • onscreenclick(): 전체 화면에서 클릭할 때 발생하는 이벤트 처리. 특정 터틀 객체에 종속되지 않고, 화면을 클릭하는 모든 경우에 반응.

이 차이를 이해하고 사용하면 터틀 그래픽을 더 유연하게 제어할 수 있습니다.

728x90
반응형
LIST
728x90
반응형
SMALL

이동 관련 함수

  1. turtle.forward(distance): 앞으로 이동
  2. turtle.backward(distance): 뒤로 이동
  3. turtle.right(angle): 시계 방향 회전
  4. turtle.left(angle): 반시계 방향 회전
  5. turtle.goto(x, y): 특정 좌표로 이동
  6. turtle.setx(x): x축 좌표 설정
  7. turtle.sety(y): y축 좌표 설정
  8. turtle.setheading(angle): 거북이의 방향 설정
  9. turtle.home(): 시작점으로 돌아감
  10. turtle.circle(radius, extent=None, steps=None): 원 또는 호 그리기
  11. turtle.setpos(x, y): 좌표 설정 (goto와 동일)
  12. turtle.setposition(x, y): 좌표 설정 (goto와 동일)
  13. turtle.towards(x, y): 특정 좌표로 가는 각도 반환
  14. turtle.xcor(): 현재 x좌표 반환
  15. turtle.ycor(): 현재 y좌표 반환
  16. turtle.distance(x, y): 특정 좌표까지의 거리 반환
  17. turtle.shearfactor(shear=None): 기울기 설정 및 반환
  18. turtle.seth(angle): 방향을 특정 각도로 설정
  19. turtle.get_shapepoly(): 현재 모양의 다각형 좌표 반환
  20. turtle.settiltangle(angle): 거북이 모양의 기울기 각도 설정

그리기 관련 함수

  1. turtle.pendown(): 선 그리기 시작
  2. turtle.penup(): 선 그리기 중지
  3. turtle.pensize(width): 선의 두께 설정
  4. turtle.pencolor(color): 선 색상 설정
  5. turtle.fillcolor(color): 채우기 색상 설정
  6. turtle.begin_fill(): 도형 채우기 시작
  7. turtle.end_fill(): 도형 채우기 끝
  8. turtle.dot(size=None, color=None): 점 그리기
  9. turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal')): 텍스트 쓰기
  10. turtle.stamp(): 현재 거북이 모양을 도장처럼 찍음
  11. turtle.begin_poly(): 다각형 그리기 시작
  12. turtle.end_poly(): 다각형 그리기 끝
  13. turtle.get_poly(): 현재 그려진 다각형 반환
  14. turtle.filling(): 현재 채우기 모드 상태 확인
  15. turtle.clearstamp(stampid): 특정 도장 지우기
  16. turtle.clearstamps(n=None): n개 또는 모든 도장 지우기
  17. turtle.ondrag(fun, btn=1): 드래그 이벤트 처리
  18. turtle.onclick(fun, btn=1): 클릭 이벤트 처리
  19. turtle.onrelease(fun, btn=1): 클릭 해제 이벤트 처리
  20. turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None): 거북이 크기 설정
  21. turtle.resizemode(rmode): 리사이즈 모드 설정
  22. turtle.tilt(angle): 거북이 모양 기울기 설정
  23. turtle.tiltangle(angle=None): 기울기 각도 설정/반환
  24. turtle.getpen(): 현재 펜 객체 반환
  25. turtle.getscreen(): 현재 화면 객체 반환
  26. turtle.colormode(cmode=None): 색상 모드 설정 (1.0 또는 255)
  27. turtle.getcanvas(): Tkinter 캔버스 객체 반환
  28. turtle.fill(True/False): 채우기 여부 설정

상태 관련 함수

  1. turtle.speed(speed): 거북이 속도 설정
  2. turtle.position(): 현재 좌표 반환
  3. turtle.heading(): 현재 방향 반환
  4. turtle.xcor(): x 좌표 반환
  5. turtle.ycor(): y 좌표 반환
  6. turtle.distance(x, y): 특정 좌표까지의 거리 계산
  7. turtle.isdown(): 펜이 내려갔는지 여부 확인
  8. turtle.isvisible(): 거북이가 보이는지 확인
  9. turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None): 거북이 크기 설정
  10. turtle.degrees(): 각도 단위를 도로 설정
  11. turtle.radians(): 각도 단위를 라디안으로 설정
  12. turtle.tiltangle(angle=None): 기울기 각도 설정 및 반환
  13. turtle.write_docstringdict(): 함수의 docstring 사전 저장
  14. turtle.ondrag(fun, btn=1): 드래그 이벤트 설정
  15. turtle.delay(): 터틀 움직임 지연 시간 설정 및 반환

모양 관련 함수

  1. turtle.shape(name): 거북이 모양 설정 ('arrow', 'turtle', 'circle', 'square', 'triangle', 'classic')
  2. turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None): 모양의 크기 조절
  3. turtle.get_shapepoly(): 현재 모양의 다각형 좌표 반환
  4. turtle.fillcolor(color): 도형의 채우기 색상 설정
  5. turtle.shape(name): 거북이의 모양 설정
  6. turtle.stamp(): 거북이 모양을 도장처럼 찍음
  7. turtle.clearstamp(stampid): 특정 도장 지우기
  8. turtle.clearstamps(n=None): n개 또는 모든 도장 지우기
  9. turtle.tilt(angle): 거북이 모양 회전
  10. turtle.tiltangle(angle): 기울기 각도 설정 및 반환
  11. turtle.get_shapepoly(): 현재 모양의 다각형 좌표 반환
  12. turtle.fill(True/False): 도형 채우기 여부 설정

화면 관련 함수

  1. turtle.bgcolor(color): 배경 색상 설정
  2. turtle.bgpic(picname): 배경 이미지 설정
  3. turtle.clear(): 화면의 그림 지우기
  4. turtle.clearscreen(): 화면 전체 초기화
  5. turtle.reset(): 모든 설정 초기화
  6. turtle.hideturtle(): 거북이 숨기기
  7. turtle.showturtle(): 거북이 보이기
  8. turtle.tracer(n=None, delay=None): 애니메이션 속도 조절
  9. turtle.update(): 화면 업데이트
  10. turtle.screensize(canvwidth=None, canvheight=None): 화면 크기 설정
  11. turtle.setup(width=0.5, height=0.75, startx=None, starty=None): 화면 창의 크기 설정
  12. turtle.title(title): 창 제목 설정
  13. turtle.window_width(): 창의 너비 반환
  14. turtle.window_height(): 창의 높이 반환
  15. turtle.delay(): 움직임 지연 설정
  16. turtle.exitonclick(): 클릭 시 창 닫기
  17. turtle.listen(): 이벤트 리스너 활성화
  18. turtle.mainloop(): 이벤트 루프 실행

이벤트 처리 및 기타 함수

  1. turtle.onclick(fun, btn=1): 클릭 이벤트 처리
  2. turtle.ondrag(fun, btn=1): 드래그 이벤트 처리
  3. turtle.onrelease(fun, btn=1): 마우스 버튼 해제 이벤트 처리
  4. turtle.onkey(fun, key): 특정 키보드 이벤트 처리
  5. turtle.listen(): 이벤트 리스너 활성화
  6. turtle.delay(delay=None): 애니메이션 지연 시간 설정
  7. turtle.bye(): 창 닫기
  8. turtle.mode(mode=None): 거북이 모드 설정 ('standard', 'logo')
  9. turtle.colormode(cmode=None): 색상 모드 설정 (1.0 또는 255)
  10. turtle.getcanvas(): Tkinter Canvas 객체 가져오기
  11. turtle.getshapes(): 사용할 수 있는 모든 모양 리스트 가져오기
  12. turtle.shearfactor(shear=None): 기울기 설정 및 반환
728x90
반응형
LIST

+ Recent posts