728x90
반응형

import turtle
import math
def draw_cube(t, x, y, size):
t.penup()
t.goto(x, y)
t.pendown()
for _ in range(2): # 직육면체 그리기
t.forward(size)
t.left(90)
t.forward(size)
t.left(90)
t.left(90) # 좌상으로 이동
t.forward(size)
t.right(45) # 윗면
t.forward(size//2)
t.right(45)
t.forward(size)
t.right(135)
t.forward(size//2)
t.right(180) # 오른쪽 옆면
t.forward(size//2)
t.right(135)
t.forward(size)
t.right(45)
t.forward(size//2)
t.penup() # 원 그리기 시작. goto를 사용하면 좌표가 바뀌기 때문에 forward로 현재 위치와 각도에서 이동하는 것으로 함
r = size//8 # 반지름
t.right(135) # 원 그리기 위해 중간으로 이동
t.forward(size//2)
t.left(90)
t.forward(size//2 - r) # 원을 가운데 위치하기 위해 계산
t.pendown()
t.right(90)
t.begin_fill()
t.fillcolor('black')
t.circle(r)
t.end_fill()
def draw_group(t, x, y, length, angle):
t.penup()
t.goto(x, y)
t.pendown()
t.setheading(angle) # 각도 바꾸기
draw_cube(t, x, y, length)
t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.pencolor('black')
# 그룹으로 그리기
draw_group(t, 0, 0, 60, 0)
draw_group(t, 300, 0, 100, 45)
draw_group(t, 0, 300, 150, 90)
draw_group(t, 300, 300, 200, 135)
turtle.done()
try:
turtle.bye()
except:
print("bye")

728x90
반응형
'프로그램' 카테고리의 다른 글
| [파이썬] 문제 : tkinter에 matplotlib chart 그리기 (0) | 2023.05.07 |
|---|---|
| [파이썬] 문제 : 숙박시설 csv 파일 읽어 bar chart그리기 (0) | 2023.05.06 |
| [파이썬] 문제 : tkinter 가위,바위,보 게임 (1) | 2023.05.06 |
| [파이썬] 문제 : 터틀(turtle) 임의의 크기, 각도, 이동해 5개 거북이 그리기 (0) | 2023.05.05 |
| [파이썬] 문제 : 터틀(turtle) 텍스트 T=삼각형, R=사각형 입력받아 그리기 (1) | 2023.05.05 |
댓글