ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python/Turtle] 5. Methods of TurtleScreen/Screen and corresponding functions
    코딩/Python 2022. 12. 20. 01:18
    728x90
    bgcolor / bgpic / clear / clearscreen / reset / resetscreen / screensize / setworldcoordinates / delay / tracer / update / listen / onkey / onkeypress / onclick / ontimer / mainloop / textinput / numinput / mode / colormode / getcanvas / getshapes / register_shape / turtles / window_height / window_width / bye / exitonclick / setup / title

    Methods of TurtleScreen/Screen and corresponding functions

    이 섹션에 있는 대부분의 예제는 screen이라는 TurtleScreen 인스턴스를 참조.

    Window control

    turtle.bgcolor(*args)

    args – a color string or three numbers in the range 0..colormode or a 3-tuple of such numbers

    TurtleScreen의 배경색을 설정하거나 반환.

    screen.bgcolor("orange")
    screen.bgcolor()
    'orange'
    screen.bgcolor("#800080")
    screen.bgcolor()
    (128.0, 0.0, 128.0)

    turtle.bgpic(picname=None)

    picname – a string, name of a gif-file or "nopic", or None

    배경 이미지를 설정하거나 현재 배경 이미지의 이름을 반환. picname이 파일 이름이면 해당 이미지를 배경으로 설정. picname이 "nopic"이면 배경 이미지가 있으면 삭제. picname이 None이면 현재 배경 이미지의 파일 이름을 반환.

    screen.bgpic()
    'nopic'
    screen.bgpic("landscape.gif")
    screen.bgpic()
    "landscape.gif"

    turtle.clear()

    참고
    이 TurtleScreen 메서드는 clearscreen이라는 이름으로만 전역 함수로 사용. 전역 함수 clear는 Turtle 메서드 clear에서 파생된 다른 함수.

    turtle.clearscreen()

    TurtleScreen에서 모든 그림과 모든 거북이를 삭제. 비어 있는 TurtleScreen을 초기 상태(흰색 배경, 배경 이미지 없음, 이벤트 바인딩 및 추적 없음)로 재설정.

    turtle.reset()

    참고
    이 TurtleScreen 메서드는 resetscreen이라는 이름으로만 전역 함수로 사용. 전역 함수 재설정은 Turtle 메서드 재설정에서 파생된 또 다른 함수.

    turtle.resetscreen()

    화면의 모든 거북이를 초기 상태로 재설정.

    turtle.screensize(canvwidth=None, canvheight=None, bg=None)

    canvwidth – positive integer, new width of canvas in pixels
    canvheight – positive integer, new height of canvas in pixels
    bg – colorstring or color-tuple, new background color

    인수가 주어지지 않으면 현재(canvaswidth, canvasheight)를 반환. 그렇지 않으면 거북이가 그리는 캔버스의 크기를 조정. 도면 창을 변경하지 않는다. 캔버스의 숨겨진 부분을 관찰하려면 스크롤 막대를 사용. 이 방법을 사용하면 이전에 캔버스 외부에 있던 드로잉 부분을 볼 수 있다.

    screen.screensize()
    (400, 300)
    screen.screensize(2000,1500)
    screen.screensize()
    (2000, 1500)

    turtle.setworldcoordinates(llx, lly, urx, ury)

    llx – a number, x-coordinate of lower left corner of canvas
    lly – a number, y-coordinate of lower left corner of canvas
    urx – a number, x-coordinate of upper right corner of canvas
    ury – a number, y-coordinate of upper right corner of canvas

    사용자 정의 좌표계를 설정하고 필요한 경우 "세계" 모드로 전환. screen.reset()을 수행. "세계" 모드가 이미 활성화되어 있으면 모든 도면이 새 좌표에 따라 다시 그린다.

    주의: 사용자 정의 좌표계에서 각도가 왜곡되어 나타날 수 있다.

    screen.reset()
    screen.setworldcoordinates(-50,-7.5,50,7.5)
    for _ in range(72):
        left(10)
    
    for _ in range(8):
        left(45); fd(2)   # a regular octagon

    Animation control

    turtle.delay(delay=None)

    delay – positive integer

    그리기 지연을 밀리초 단위로 설정하거나 반환. (이는 두 번의 연속 캔버스 업데이트 사이의 대략적인 시간 간격.) 그리기 지연이 길수록 애니메이션이 느려진다.

    Optional argument:

    screen.delay()
    10
    screen.delay(5)
    screen.delay()
    5

    turtle.tracer(n=None, delay=None)

    n – nonnegative integer
    delay – nonnegative integer

    거북이 애니메이션을 켜거나 끄고 도면 업데이트 지연을 설정. n이 주어지면 각 n번째 정기 화면 업데이트만 실제로 수행. (복잡한 그래픽 그리기를 가속화하는 데 사용할 수 있다.) 인수 없이 호출하면 현재 저장된 n 값을 반환. 두 번째 인수는 지연 값을 설정(delay() 참조).

    screen.tracer(8, 25)
    dist = 2
    for i in range(200):
        fd(dist)
        rt(90)
        dist += 2

    turtle.update()

    TurtleScreen 업데이트를 수행. 트레이서가 꺼져 있을 때 사용.
    RawTurtle/Turtle 메서드 speed() 참조.

    Using screen events

    turtle.listen(xdummy=None, ydummy=None)

    TurtleScreen에 포커스를 설정(키 이벤트 수집을 위해). onclick 메서드에 listen()을 전달할 수 있도록 더미 인수가 제공.

    turtle.onkey(fun, key) / turtle.onkeyrelease(fun, key)

    fun – a function with no arguments or None
    key – a string: key (e.g. “a”) or key-symbol (e.g. “space”)

    키의 키 해제 이벤트에 fun을 바인딩. fun이 None이면 이벤트 바인딩이 제거. 비고: 키 이벤트를 등록하려면 TurtleScreen에 포커스가 있어야 한다. (listen() 메서드를 참조.)

    def f():
        fd(50)
        lt(60)
    
    screen.onkey(f, "Up")
    screen.listen()

    turtle.onkeypress(fun, key=None)

    fun – a function with no arguments or None
    key – a string: key (e.g. “a”) or key-symbol (e.g. “space”)

    키가 주어지면 키의 키 누르기 이벤트에, 키가 주어지지 않으면 키 누르기 이벤트에 fun을 바인딩. 비고: 키 이벤트를 등록하려면 TurtleScreen에 포커스가 있어야 한다. (listen() 메서드를 참조.)

    def f():
        fd(50)
    
    screen.onkey(f, "Up")
    screen.listen()

    turtle.onclick(fun, btn=1, add=None) / turtle.onscreenclick(fun, btn=1, add=None)

    fun – a function with two arguments which will be called with the coordinates of the clicked point on the canvas
    btn – number of the mouse-button, defaults to 1 (left mouse button)
    add – True or False – if True, a new binding will be added, otherwise it will replace a former binding

    fun이 None이면 기존 바인딩이 제거됩니다.

    screen.onclick(turtle.goto) # Subsequently clicking into the TurtleScreen will
                                # make the turtle move to the clicked point.
    screen.onclick(None)        # remove event binding again

    참고
    이 TurtleScreen 메서드는 onscreenclick이라는 이름으로만 전역 함수로 사용. 전역 함수 onclick은 Turtle 메서드 onclick에서 파생된 또 다른 함수.

    turtle.ontimer(fun, t=0)

    fun – a function with no arguments
    t – a number >= 0

    t밀리초 후에 fun을 호출하는 타이머를 설치

    running = True
    def f():
        if running:
            fd(50)
            lt(60)
            screen.ontimer(f, 250)
    f()   ### makes the turtle march around
    running = False

    turtle.mainloop() / turtle.done()

    이벤트 루프를 시작 - Tkinter의 mainloop 함수를 호출. 터틀 그래픽 프로그램의 마지막 문. 터틀 그래픽의 대화식 사용을 위해 -n 모드(하위 프로세스 없음)의 IDLE 내에서 스크립트를 실행하는 경우 사용하지 않아야 한다.

    screen.mainloop()

    Input methods

    turtle.textinput(title, prompt)

    title – string
    prompt – string

    문자열 입력을 위한 대화창. 매개변수 제목은 대화창의 제목, 프롬프트는 주로 입력할 정보를 설명하는 텍스트. 문자열 입력을 반환. 대화 상자가 취소되면 None을 반환.

    screen.textinput("NIM", "Name of first player:")

    turtle.numinput(title, prompt, default=None, minval=None, maxval=None)

    title – string
    prompt – string
    default – number (optional)
    minval – number (optional)
    maxval – number (optional)

    숫자 입력을 위한 대화창. title은 대화창의 제목, prompt는 주로 입력할 숫자 정보를 설명하는 텍스트. default: 기본값, minval: 입력 최소값, maxval: 입력 최대값. 숫자 입력은 minval .. maxval 범위. 그렇지 않은 경우 힌트가 표시되고 수정을 위해 대화 상자가 열린 상태로 유지. 숫자 입력을 반환. 대화 상자가 취소되면 None을 반환.

    screen.numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)

    Settings and special methods

    turtle.mode(mode=None)

    mode – one of the strings “standard”, “logo” or “world”

    거북이 모드("표준", "로고" 또는 "세계")를 설정하고 재설정을 수행. mode가 주어지지 않으면 현재 모드가 반환.

    "세계" 모드는 사용자 정의 "세계 좌표"를 사용. 주의: 이 모드에서 x/y 단위 비율이 1이 아니면 각도가 왜곡되어 나타난다.

    Mode Initial turtle heading positive angles
    “standard” to the right (east) counterclockwise
    “logo” upward (north) clockwise
    mode("logo")   # resets turtle heading to north
    mode()
    'logo'

    turtle.colormode(cmode=None)

    cmode – one of the values 1.0 or 255

    colormode를 반환하거나 1.0 또는 255로 설정. 결과적으로 색상 삼중의 r, g, b 값은 0..cmode 범위에 있어야 한다.

    screen.colormode(1)
    turtle.pencolor(240, 160, 80)
    Traceback (most recent call last):
         ...
    TurtleGraphicsError: bad color sequence: (240, 160, 80)
    screen.colormode()
    1.0
    screen.colormode(255)
    screen.colormode()
    255
    turtle.pencolor(240,160,80)

    turtle.getcanvas()

    TurtleScreen의 캔버스를 반환. Tkinter 캔버스로 무엇을 해야 하는지 알고 있는 내부자에게 유용.

    cv = screen.getcanvas()
    cv
    <turtle.ScrolledCanvas object ...>

    turtle.getshapes()

    현재 사용 가능한 모든 거북이 모양의 이름 목록을 반환.

    screen.getshapes()
    ['arrow', 'blank', 'circle', ..., 'turtle']

    turtle.register_shape(name, shape=None) / turtle.addshape(name, shape=None)

    이 함수를 호출하는 방법에는 세 가지.

    1 name은 gif 파일의 이름 shape는 None: 해당 이미지 모양을 설치.

    screen.register_shape("turtle.gif")

    참고
    이미지 모양은 거북이를 돌릴 때 회전하지 않으므로 거북이의 방향을 표시하지 않는다!

    2 이름은 임의의 문자열이고 모양은 좌표 쌍의 튜플. 해당 다각형 모양을 설치.

    screen.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))

    3 name은 임의의 문자열이고 shape는 (복합) Shape 개체: 해당 합성 모양을 설치.

    TurtleScreen의 모양 목록에 거북이 모양을 추가. 이렇게 등록된 도형만 shape(shapename) 명령을 실행하여 사용.

    turtle.turtles()

    화면에 거북이 목록을 반환.

    for turtle in screen.turtles():
        turtle.color("red")

    turtle.window_height()

    거북이 창의 높이를 반환.

    screen.window_height()
    480

    turtle.window_width()

    거북이 창의 너비를 반환.

    screen.window_width()
    640

    Methods specific to Screen, not inherited from TurtleScreen

    turtle.bye()

    터틀 그래픽 창을 닫는다.

    turtle.exitonclick()

    화면에서 마우스 클릭에 bye() 메서드를 바인딩.

    configuration dictionary의 "using_IDLE" 값이 False(기본값)이면 mainloop도 입력. 비고: -n 스위치(하위 프로세스 없음)와 함께 IDLE을 사용하는 경우 이 값은 turtle.cfg에서 True로 설정. 이 경우 IDLE의 자체 메인 루프는 클라이언트 스크립트에 대해서도 활성화.

    turtle.setup(width=_CFG['width'], height=_CFG['height'], startx=_CFG['leftright'], starty=_CFG['topbottom'])

    기본 창의 크기와 위치를 설정. 인수의 기본값은 configuration dictionary에 저장되며 turtle.cfg 파일을 통해 변경.

    width – if an integer, a size in pixels, if a float, a fraction of the screen; default is 50% of screen
    height – if an integer, the height in pixels, if a float, a fraction of the screen; default is 75% of screen
    startx – if positive, starting position in pixels from the left edge of the screen, if negative from the right edge, if None, center window horizontally
    starty – if positive, starting position in pixels from the top edge of the screen, if negative from the bottom edge, if None, center window vertically

    screen.setup (width=200, height=200, startx=0, starty=0)
                 # sets window to 200x200 pixels, in upper left of screen
    screen.setup(width=.75, height=0.5, startx=None, starty=None)
                 # sets window to 75% of screen by 50% of screen and centers

    turtle.title(titlestring)

    titlestring – a string that is shown in the titlebar of the turtle graphics window

    거북이 창의 제목을 제목 문자열로 설정.

    screen.title("Welcome to the turtle zoo!")
    728x90

    댓글

Designed by Tistory.