-
[ํฐํ๊ทธ๋ํฝ] ๊ทธ๋ฆผํ ํ๋ก๊ทธ๋จSW/Python 2023. 6. 12. 09:44
ํฐํ ๊ทธ๋ํฝ(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 ํค๋ฅผ ๋๋ฅด๋ฉด ์บ๋ฒ์ค๊ฐ ์ง์์ง๋๋ค.
์ด ์์ ๋ ๊ฐ๋จํ ๊ทธ๋ฆผํ์ด๋ฉฐ, ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณด์ํ๋ ๊ฒ์ ์ฌ๋ฌ๋ถ์ ์ฐฝ์์ฑ์ ๋ฌ๋ ค์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์, ์ ์ ๊ตต๊ธฐ, ๋ํ ๊ทธ๋ฆฌ๊ธฐ ๋ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ํฐํ ๊ทธ๋ํฝ์ ๋ค์ํ ๊ทธ๋ํฝ ๋ช ๋ น์ ์ ๊ณตํ๋ฏ๋ก, ์ด๋ฅผ ํ์ฉํ์ฌ ๊ทธ๋ฆผํ์ ์ํ๋ ๋๋ก ํ์ฅํ ์ ์์ต๋๋ค.'SW > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํฐํ๊ทธ๋ํฝ] ํ ๊ทธ๋ฆฌ๊ธฐ (0) 2023.06.12 [ํฐํ๊ทธ๋ํฝ] (0) 2023.06.12 NumPy (0) 2023.06.07 Python-AI (0) 2023.06.07