ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ํ„ฐํ‹€๊ทธ๋ž˜ํ”ฝ] ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
    ์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ 2023. 6. 12. 09:40

     ํ„ฐํ‹€ ๊ทธ๋ž˜ํ”ฝ(Turtle Graphics)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ„ฐํ‹€ ๊ทธ๋ž˜ํ”ฝ์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํŒŒ์ด์ฌ ์ฝ”๋“œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค:

    import turtle

    # ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ ํ•จ์ˆ˜
    def draw_graph(data):
        t = turtle.Turtle()
        t.speed(0)  # ๊ฑฐ๋ถ์ด ์†๋„ ์„ค์ • (0์€ ๊ฐ€์žฅ ๋น ๋ฅธ ์†๋„)

        x_scale = 30  # x์ถ• ์Šค์ผ€์ผ
        y_scale = 30  # y์ถ• ์Šค์ผ€์ผ

        # x์ถ• ๊ทธ๋ฆฌ๊ธฐ
        t.penup()
        t.goto(-len(data) * x_scale / 2, 0)
        t.pendown()
        t.forward(len(data) * x_scale)

        # y์ถ• ๊ทธ๋ฆฌ๊ธฐ
        t.penup()
        t.goto(-len(data) * x_scale / 2, -max(data) * y_scale)
        t.pendown()
        t.setheading(90)
        t.forward(max(data) * y_scale * 2)

        # ๋ฐ์ดํ„ฐ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
        t.penup()
        t.goto(-len(data) * x_scale / 2, 0)
        t.pendown()
        t.setheading(0)

        for i, value in enumerate(data):
            t.goto(i * x_scale - len(data) * x_scale / 2, value * y_scale)

        turtle.done()

    # ๋ฐ์ดํ„ฐ ์˜ˆ์‹œ
    data = [1, 3, 2, 5, 4]

    # ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
    draw_graph(data)

     ์ด ์ฝ”๋“œ๋Š” ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. draw_graph() ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. x์ถ•๊ณผ y์ถ•์˜ ์Šค์ผ€์ผ์„ ์„ค์ •ํ•˜๊ณ , turtle.Turtle()์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑฐ๋ถ์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค์ฃผ๋Š” ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

     ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฐ์ดํ„ฐ [1, 3, 2, 5, 4]๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ๊ทธ๋ž˜ํ”„๊ฐ€ ํ„ฐํ‹€ ๊ทธ๋ž˜ํ”ฝ ์ฐฝ์—์„œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„์˜ x์ถ•์€ ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค๋ฅผ, y์ถ•์€ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์— ๋”ฐ๋ผ ์Šค์ผ€์ผ๋ง๋˜์–ด ๊ทธ๋ ค์ง‘๋‹ˆ๋‹ค.

    ๋งŒ์•ฝ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด, data ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  draw_graph() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    ๋Œ“๊ธ€

Designed by Tistory.