ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ํ„ฐํ‹€๊ทธ๋ž˜ํ”ฝ] ๊ทธ๋ฆผํŒ ํ”„๋กœ๊ทธ๋žจ
    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

    ๋Œ“๊ธ€

Designed by Tistory.