728x90
반응형
이 글은 아래 영상을 참고했다.
https://www.youtube.com/watch?v=g8I10TmueXI&list=PLz2iXe7EqJOMp5LozvYa0qca9E4OBkevW&index=4
이번 시간에는 선, 원, 타원, 다각형 등 여러 도형을 그리는 방법을 배웠다.
선 그리기
pygame.draw.line(화면, 색, 시작 위치, 끝 위치, 선 굵기)
pygame.init()
background = pygame.display.set_mode((480, 360))
pygame.display.set_caption('PYGAME_2')
play = True
while play:
for event in pygame.event.get():
if event.type == pygame.QUIT:
play = False
background.fill((255,255,255)) # 배경 흰색
# 선 그리기
# pygame.draw.line(화면, 색, 시작 위치, 끝 위치, 선 굵기)
pygame.draw.line(background, (0,0,0), (240,0), (240,360))
pygame.draw.line(background, (0,0,0), (0,180), (480,180), 5)
pygame.draw.line(background, (0,0,0), (0,360), (480,0), 3)
pygame.display.update()
pygame.quit()
- 선 굵기 defalut = 1
코드 실행 결과
for 문으로 선 여러개 그리기
pygame.init()
background = pygame.display.set_mode((480, 360))
pygame.display.set_caption('PYGAME_3')
play = True
while play:
for event in pygame.event.get():
if event.type == pygame.QUIT:
play = False
background.fill((255,255,255)) # 배경 흰색
# for문을 통해 선 여러개 그리기
for i in range(0,480,30):
pygame.draw.line(background, (0,0,0), (i,0), (i,360))
for i in range(0,360,30):
pygame.draw.line(background, (0,0,0), (0,i), (480,i))
pygame.display.update()
pygame.quit()
- for문을 활용해 바둑판 배열 등의 선을 그릴 수 있다.
- 한 칸씩 이동하는 게임 / 바둑, 체스 등의 보드게임에 유용하게 활용가능하다.
코드 실행 결과
원 그리기
pygame.draw.circle(화면, 색, 중심 좌표, 반지름, 선 굵기)
pygame.init()
background = pygame.display.set_mode((480, 360))
pygame.display.set_caption('PYGAME_2')
# 중심 좌표
x = background.get_size()[0]//2 # 240
y = background.get_size()[1]//2 # 180
play = True
while play:
for event in pygame.event.get():
if event.type == pygame.QUIT:
play = False
background.fill((255,255,255))
# 원
# pygame.draw.circle(화면, 색, 중심 좌표, 반지름, 선 굵기)
# pygame.draw.circle(background, (255,0,0), (240,180), 50)
pygame.draw.circle(background, (255,0,0), (240,180), 50, 5)
# 중심점 기준으로 선 그려주기
pygame.draw.line(background, (0,0,0), (x,0), (x,y*2))
pygame.draw.line(background, (0,0,0), (0,y), (x*2,y))
pygame.display.update()
pygame.quit()
- 중심점을 미리 설정해두었다. (x, y)
- 중심 좌표를 미리 설정하면 화면 크기가 바뀌어도 중심점 똑같이 유지할 수 있다.
- 선 굵기 defalut : 원 전체 채울 정도
코드 실행 결과
사각형 그리기
pygame.draw.rect(화면, 색, 위치와 크기, 선 굵기)
pygame.init()
background = pygame.display.set_mode((480, 360))
pygame.display.set_caption('PYGAME_2')
# 중심 좌표
x = background.get_size()[0]//2 # 240
y = background.get_size()[1]//2 # 180
play = True
while play:
for event in pygame.event.get():
if event.type == pygame.QUIT:
play = False
background.fill((255,255,255))
# 다각형
# pygame.draw.rect(화면, 색, 위치와 크기, 선 굵기)
# pygame.draw.rect(background, (0,255,0), (240,180,100,50))
pygame.draw.rect(background, (0,255,0), (240,180,100,50), 5)
# 중심점 기준으로 선 그려주기
pygame.draw.line(background, (0,0,0), (x,0), (x,y*2))
pygame.draw.line(background, (0,0,0), (0,y), (x*2,y))
pygame.display.update()
pygame.quit()
- 위치와 크기를 한꺼번에 설정
- ex) (240, 180, 100, 50)
- (240, 180) : 시작 점의 좌표 (왼쪽 상단 가장자리 점)
- 100 : 가로의 길이
- 50 : 세로의 길이
코드 실행 결과
타원 그리기
pygame.draw.ellipse(화면, 색, 위치와 크기, 선 굵기)
pygame.init()
background = pygame.display.set_mode((480, 360))
pygame.display.set_caption('PYGAME_2')
# 중심 좌표
x = background.get_size()[0]//2 # 240
y = background.get_size()[1]//2 # 180
play = True
while play:
for event in pygame.event.get():
if event.type == pygame.QUIT:
play = False
background.fill((255,255,255))
# 타원
# pygame.draw.ellipse(화면, 색, 위치와 크기, 선 굵기)
# pygame.draw.ellipse(background, (0,0,255), (240,180,100,50))
pygame.draw.rect(background, (0,255,0), (240,180,100,50), 5)
pygame.draw.ellipse(background, (0,0,255), (240,180,100,50), 5) # 여러 도형을 같이 그릴 수도 있다.
# 중심점 기준으로 선 그려주기
pygame.draw.line(background, (0,0,0), (x,0), (x,y*2))
pygame.draw.line(background, (0,0,0), (0,y), (x*2,y))
pygame.display.update()
pygame.quit()
- 파라미터 설정은 사각형과 똑같다.
코드 실행 결과
- 여러 개의 도형을 한번에 그릴 수 있다.
다각형 그리기
pygame.draw.polygon(화면, 색, 점들의 위치, 선 굵기)
pygame.init()
background = pygame.display.set_mode((480, 360))
pygame.display.set_caption('PYGAME_2')
# 중심 좌표
x = background.get_size()[0]//2 # 240
y = background.get_size()[1]//2 # 180
play = True
while play:
for event in pygame.event.get():
if event.type == pygame.QUIT:
play = False
background.fill((255,255,255))
# 다각형
# pygame.draw.polygon(화면, 색, 점들의 위치, 선 굵기)
pygame.draw.polygon(background, (0,0,255), [[100,100], [0,200],[200,200]]) # 삼각형
pygame.draw.polygon(background, (255,255,0), ((146,0),(291,106),(236,277),(56,277),(0,106)), 5) # 오각형
# 중심점 기준으로 선 그려주기
pygame.draw.line(background, (0,0,0), (x,0), (x,y*2))
pygame.draw.line(background, (0,0,0), (0,y), (x*2,y))
pygame.display.update()
pygame.quit()
- 원하는 형태의 다각형을 만들 수 있음
- 좌표는 tuple, list등 괄호의 형태로 넣어주면 됨
코드 실행 결과
728x90
'Minding's Programming > Pygame' 카테고리의 다른 글
[Pygame] 06. 키보드와 마우스로 이미지 움직이기 (0) | 2023.02.04 |
---|---|
[Pygame] 05. 이미지 사용하기 (0) | 2023.02.01 |
[Pygame] 03. 마우스로 조종하기 (0) | 2023.01.30 |
[Pygame] 02. 키보드로 조종하기 (0) | 2023.01.27 |
[Pygame] 01. Pygame 설치 및 설치 확인하기 (0) | 2023.01.25 |