[ํฐํ๊ทธ๋ํฝ] ๊ทธ๋ฆผํ ํ๋ก๊ทธ๋จ
ํฐํ ๊ทธ๋ํฝ(Turtle Graphics)์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ๊ทธ๋ฆผํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค๋ฅผ ์ด์ฉํ์ฌ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ค์์ ํ์ด์ฌ ์ฝ๋ ์์ ์ ๋๋ค:
import turtle # ๊ฑฐ๋ถ์ด๋ฅผ ์ด์ฉํ ๊ทธ๋ฆผํ ํด๋์ค class DrawingBoard: def __init__(self): self.t = turtle.Turtle() self.t.speed(0) # ๊ฑฐ๋ถ์ด ์๋ ์ค์ (0์ ๊ฐ์ฅ ๋น ๋ฅธ ์๋) self.screen = turtle.Screen() self.screen.listen() self.screen.onkeypress(self.clear_canvas, "c") self.is_drawing = False self.screen.onscreenclick(self.start_drawing) self.screen.onrelease(self.stop_drawing) def start_drawing(self, x, y): self.is_drawing = True self.t.penup() self.t.goto(x, y) self.t.pendown() def stop_drawing(self, x, y): self.is_drawing = False def draw(self, x, y): if self.is_drawing: self.t.goto(x, y) def clear_canvas(self): self.t.clear() # ๊ทธ๋ฆผํ ์คํ board = DrawingBoard() turtle.done() |
์ ์ฝ๋๋ ๊ฑฐ๋ถ์ด๋ฅผ ์ด์ฉํ ๊ทธ๋ฆผํ์ ๊ตฌํํ ์์ ์
๋๋ค. ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค ํด๋ฆญ์ ์์ํ๋ฉด ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ์์ํ๊ณ , ๋ง์ฐ์ค ํด๋ฆญ์ ๋์ผ๋ฉด ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ๋ฉ์ถฅ๋๋ค. c ํค๋ฅผ ๋๋ฅด๋ฉด ์บ๋ฒ์ค๋ฅผ ์ง์๋๋ค.
์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ํฐํ ๊ทธ๋ํฝ ์ฐฝ์ด ์ด๋ฆฌ๊ณ , ์ฌ์ฉ์๋ ๋ง์ฐ์ค๋ก ๊ทธ๋ฆผํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ๊ณ ๋๋๊ทธํ๋ฉด ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง๊ณ , ํด๋ฆญ์ ๋์ผ๋ฉด ๊ทธ๋ฆฌ๊ธฐ๊ฐ ๋ฉ์ถฅ๋๋ค. c ํค๋ฅผ ๋๋ฅด๋ฉด ์บ๋ฒ์ค๊ฐ ์ง์์ง๋๋ค.
์ด ์์ ๋ ๊ฐ๋จํ ๊ทธ๋ฆผํ์ด๋ฉฐ, ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณด์ํ๋ ๊ฒ์ ์ฌ๋ฌ๋ถ์ ์ฐฝ์์ฑ์ ๋ฌ๋ ค์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์, ์ ์ ๊ตต๊ธฐ, ๋ํ ๊ทธ๋ฆฌ๊ธฐ ๋ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ํฐํ ๊ทธ๋ํฝ์ ๋ค์ํ ๊ทธ๋ํฝ ๋ช
๋ น์ ์ ๊ณตํ๋ฏ๋ก, ์ด๋ฅผ ํ์ฉํ์ฌ ๊ทธ๋ฆผํ์ ์ํ๋ ๋๋ก ํ์ฅํ ์ ์์ต๋๋ค.