파이썬/파이썬(python) 중급

[21-1 파이썬] 터틀 shape, shapesize(stretch_len, stretch_wid, outline)

Olivia-BlackCherry 2022. 8. 29. 20:16
shape()

객체의 모양을 변경할 수 있다.

기본값은

classic이다.

turtle.shape("circle")
classic
default값
turtle
거북이
arrow
화살표
circle
square
사각형
triangle
삼각형
from turtle import Turtle, Screen
screen = Screen()

# 터틀의 객체 ninja 생성하고, 모양을 바꾼다
ninja = Turtle(shape = "classic")
ninja.forward(-200)

ninja = Turtle(shape = "turtle")
ninja.forward(-100)

ninja = Turtle(shape = "arrow")

ninja= Turtle(shape = "circle")
ninja.forward(100)

ninja = Turtle(shape = "square")
ninja.forward(200)

ninja = Turtle(shape = "triangle")
ninja.forward(300)

screen.exitonclick()

classic > turtle > arror > circle > square > triangle 순서

 

 

 

shapesize(stretch_wid, stretch_len, outline)

shapesize는 두께, 길이, 경계선의 사이즈를 늘리거나 줄여서 전체적인 객체 모양을 바꾸는 메서드이다. 

기본값은 shapesize(1, 1, 1)이다. 

 

stretch_wid 너비(두께, 세로)

stretch_len 길이(길이, 가로)

outline 외곽선(스케치한 선)

를 뜻한다.

 

유의사항이 있다.

shapesize의 인자로서 stretch_wid, stretch_len이 온다는 것이다.

왜 wid, len이라고 쓰지 않고, 

stretch_wid, stretch_len을 쓸까?

 

여기서는 직접적인 값을 넣는 것이 아니라

비율로 표기한다. 

 

stretch_wid의 기본값은 1이라고 했다. 

그런데 만약 stretch_wid= 0.5로 바꾼다면, 

0.5만큼 줄인다는 것이다. 

 

예를 들어 stretch_wid = 5라고 하면

기본 크기에서 5배 늘인다는 뜻이다! 

 

지금부터

인자값을 조절하면서, 

어떻게 모양이 바뀌는지 알아보자.

 

 

1. 크기가 작아지는 경우

# shapesiz의 wid=0.1 , len=0.1 :크기가 작아짐
ninja = Turtle(shape = "classic")
ninja.forward(-200)

ninja = Turtle(shape = "classic")
ninja.color("blue")
ninja.shapesize(0.1, 0.1)
ninja.forward(-160)

# shapesiz의 wid=1, len=0.5 :가로 길이만 작아짐
ninja = Turtle(shape = "turtle")
ninja.forward(-100)

ninja = Turtle(shape = "turtle")
ninja.color("blue")
ninja.shapesize(1, 0.5)
ninja.forward(-60)

# shapesiz의 wid=0.5 , len=1 : 세로 높이만 작아짐(두께)
ninja = Turtle(shape = "arrow")

ninja = Turtle(shape = "arrow")
ninja.color("blue")
ninja.shapesize(0.5, 1)
ninja.forward(40)

# shapesiz의 wid=3 , len=3 : 크기가 커짐
ninja= Turtle(shape = "circle")
ninja.forward(100)

ninja= Turtle(shape = "circle")
ninja.color("blue")
ninja.shapesize(3, 3)
ninja.forward(140)

 

 

2. 크기가 커지는 경우

# shapesiz의 wid=5 , len=0.1 : 세로 두께가 커짐
ninja = Turtle(shape = "square")
ninja.forward(200)

ninja = Turtle(shape = "square")
ninja.color("blue")
ninja.shapesize(5, 1)
ninja.forward(240)

# shapesiz의 wid=1 , len=5 : 가로 길이만 길어짐
ninja = Turtle(shape = "triangle")
ninja.forward(300)

ninja = Turtle(shape = "triangle")
ninja.color("blue")
ninja.shapesize(1, 5)
ninja.forward(340)

 

3. 외곽선 두께 조절

#outline= 0.2 : 외곽선 얇음
ninja = Turtle(shape = "turtle")
ninja.forward(-300)
ninja.shapesize(outline=0.2)


#outline= 10 : 커짐 : 외곽선 두꺼움
ninja = Turtle(shape = "turtle")
ninja.forward(-250)
ninja.shapesize(outline=10)

<전체 코드>

from turtle import Turtle, Screen

screen = Screen()
screen.setup(height=600, width=800)

#outline= 0.2 : 외곽선 얇음
ninja = Turtle(shape = "turtle")
ninja.forward(-300)
ninja.shapesize(outline=0.2)


#outline= 10 : 커짐 : 외곽선 두꺼움
ninja = Turtle(shape = "turtle")
ninja.forward(-250)
ninja.shapesize(outline=10)


# shapesiz의 wid=0.1 , len=0.1 :크기가 작아짐
ninja = Turtle(shape = "classic")
ninja.forward(-200)

ninja = Turtle(shape = "classic")
ninja.color("blue")
ninja.shapesize(0.1, 0.1)
ninja.forward(-160)


# shapesiz의 wid=1, len=0.5 :가로 길이만 작아짐
ninja = Turtle(shape = "turtle")
ninja.forward(-100)

ninja = Turtle(shape = "turtle")
ninja.color("blue")
ninja.shapesize(1, 0.5)
ninja.forward(-60)


# shapesiz의 wid=0.5 , len=1 : 세로 높이만 작아짐(두께)
ninja = Turtle(shape = "arrow")

ninja = Turtle(shape = "arrow")
ninja.color("blue")
ninja.shapesize(0.5, 1)
ninja.forward(40)


# shapesiz의 wid=3 , len=3 : 크기가 커짐
ninja= Turtle(shape = "circle")
ninja.forward(100)

ninja= Turtle(shape = "circle")
ninja.color("blue")
ninja.shapesize(3, 3)
ninja.forward(140)


# shapesiz의 wid=5 , len=0.1 : 세로 두께가 커짐
ninja = Turtle(shape = "square")
ninja.forward(200)

ninja = Turtle(shape = "square")
ninja.color("blue")
ninja.shapesize(5, 1)
ninja.forward(240)


# shapesiz의 wid=1 , len=5 : 가로 길이만 길어짐
ninja = Turtle(shape = "triangle")
ninja.forward(300)

ninja = Turtle(shape = "triangle")
ninja.color("blue")
ninja.shapesize(1, 5)
ninja.forward(340)


screen.exitonclick()

<실행 화면>