-
[ํฐํ๊ทธ๋ํฝ] ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ์นดํ ๊ณ ๋ฆฌ ์์ 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() ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋ฉ๋๋ค.