Lecture 도형 그리기

Views 198 • Comments 0 • Last Updated at 9 months ago Full screen  
  • 파이게임
  • 파이게임

파이게임에서 지원되는 도형

  • 파이게임에서 지원하는 도형들

    • line

      pygame.draw.line(surface, color, start, end, width=1)
      
      • surface : 도형을 그릴 창
      • color : 색
      • start : 선 시작 점
      • end : 선 끝 점
      • width : 선의 굵기
      import pygame
      from pygame.locals import *
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      #p_img = pygame.image.load('tiger.bmp')
      #p_img = pygame.transform.scale(p_img, (100,100))
      
      white = (255,255,255)
      black = (0,0,0)
      
      running = True
      left_key, right_key, up_key, down_key = False, False, False, False
      
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.line(screen,black,[50,100],[350,300],5)
          #screen.blit(p_img, (x,y))
          pygame.display.update()
      pygame.quit()
      
    • lines

      pygame.draw.lines(surface, color, closed, pointlist, width=1)
      
      • surface : 도형을 그릴 창
      • color : 색
      • closed : 선들이 닫힌 도형을 만들면 True, 아니면 False
      • pointlist : 점들의 리스트 [[ x1, y1] , [x2, y2], ... ]
      • width : 선의 굵기
      \# pg_draw_lines.py
      
      import pygame
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      #p_img = pygame.image.load('tiger.bmp')
      #p_img = pygame.transform.scale(p_img, (100,100))
      
      white = (255,255,255)
      black = (0,0,0)
      
      running = True
      
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.lines(screen,black,False,[[50,100],[150,100],[200,250],[250,150]],5)
          #screen.blit(p_img, (x,y))
          pygame.display.flip()
          #pygame.display.update()
      pygame.quit()
      
    • polygon

      pygame.draw.polygon(surface, color, pointlist, width=1)
      
      • surface : 도형을 그릴 창
      • color : 색
      • pointlist : 선들의 [ 시작점, 끝 점 ] 의 리스트
      • width : 선의 굵기, 0이거나 없으면 닫힌 도형안을 채워준다.
      import pygame
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      #p_img = pygame.image.load('tiger.bmp')
      #p_img = pygame.transform.scale(p_img, (100,100))
      
      white = (255,255,255)
      black = (0,0,0)
      
      running = True
      
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.polygon(screen,black,[[50,50],[100,300],[150,350],[200,200],[180,30]],5)
          #screen.blit(p_img, (x,y))
          pygame.display.flip()
          #pygame.display.update()
      pygame.quit()
      
    • rect

      pygame.draw.rect(surface, color, rect, width=0)
      
      • surface : 도형을 그릴 창
      • color : 색
      • rect : [ x, y, width, height ] 의 리스트
      • width : 선의 굵기, 0이면 닫힌 도형안을 채워준다.
      import pygame
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      #p_img = pygame.image.load('tiger.bmp')
      #p_img = pygame.transform.scale(p_img, (100,100))
      
      white = (255,255,255)
      black = (0,0,0)
      
      running = True
      
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.rect(screen,black,[10, 10, 100, 150], 10)
          pygame.display.flip()
          #pygame.display.update()
      pygame.quit()
      
    • circle

      pygame.draw.circle(surface, color, pos, radius, width=0)
      
      • surface : 도형을 그릴 창
      • color : 색
      • pos : 원의 중심점
      • radius : 원의 반지름
      • width : 선의 굵기, 0이면 닫힌 도형안을 채워준다.
      import pygame
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      white = (255,255,255)
      black = (0,0,0)
      
      running = True
      
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.circle(screen,black,[50, 50], 50, 5)
          pygame.display.flip()
      pygame.quit()
      
    • ellipse

      pygame.draw.ellipse(surface, color, rect, width=0)
      
      • surface : 도형을 그릴 창
      • color : 색
      • rect : [ x, y, width, height ] 의 사각형 안에 타원을 그려준다.
      • width : 선의 굵기, 0이면 닫힌 도형안을 채워준다.
      import pygame
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      white = (255,255,255)
      black = (0,0,0)
      
      running = True
      rect = [50,50,200,100]
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.ellipse(screen,black, rect, 0)
          pygame.display.update()
      pygame.quit()
      
    • arc

      pygame.draw.rect(surface, color, rect, start, end, width=1)
      
      • surface : 도형을 그릴 창
      • color : 색
      • rect : [ x, y, width, height ] 의 리스트
      • start : 시작 각도
      • end : 끝 각도
      • width : 선의 굵기
      import pygame
      import numpy as np
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      white = (255,255,255)
      black = (0,0,0)
      pi = np.pi
      
      running = True
      rect  = [50,50,250,300]
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.rect(screen,black,rect,1)
          pygame.draw.arc(screen,black,rect, 0, 3*pi/2,3)
          pygame.display.update()
      pygame.quit()
      
    • aaline

      pygame.draw.aaline(surface, color, start, end, blend = True)
      
      • surface : 도형을 그릴 창
      • color : 색
      • start : 시작 점
      • end : 끝 점
      • blend : True, pygame 2.2부터는 True만 존재함.
      import pygame
      import numpy as np
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      white = (255,255,255)
      black = (0,0,0)
      pi = np.pi
      
      running = True
      
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.line(screen,black,(50,50),(300,300))
          pygame.draw.aaline(screen,black,(60,40),(350,250))
          pygame.display.update()
      pygame.quit()
      
    • aalines

      pygame.draw.aalines(surface, color, closed, [start, end] )
      
      • surface : 도형을 그릴 창
      • color : 색
      • closed :
      • start : 시작 점
      • end : 끝 점
      import pygame
      import numpy as np
      
      pygame.init()
      screen = pygame.display.set_mode((500,400))
      clock = pygame.time.Clock()
      
      white = (255,255,255)
      black = (0,0,0)
      pi = np.pi
      
      running = True
      
      while running:
          clock.tick(120)
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
      
          screen.fill(white)
          pygame.draw.line(screen,black,(50,50),(300,300))
          pygame.draw.aalines(screen,black,True, [(60,40),(350,250)])
          pygame.display.update()
      pygame.quit()
      
      
previous article
next article
Comments
Feel free to ask a question, answer or comment, etc.